Après plusieurs mois de préparation, deux jours intenses d'examen et trois semaines d'attente, les résultats viennent de tomber.
Merci à tous ceux qui de près ou de loin ont contribué à la réussite de cet examen.
Voici le courriel que j'ai reçu ce matin de la part du programme de certification d'oracle:
********************************************************************************************
Dear Yapo
Herve,
Congratulations! on the
successful completion of the Oracle DBA 11g Certified Master
practicum.
You are now a member
of an elite group of Oracle professionals. You will receive your Oracle DBA
11g Certified Master fulfillment kit that includes a congratulations
letter, OCM certificate, OCM ID card, and denim OCM shirt to the mailing address
mentioned in your Oracle DBA 11g OCM Hands-on course requirement
Form.
We request you to
please submit your complete postal address in below format and the shirt size
through our Fulfillment Kit Request form in Pearson Vue website. Kindly
note you have to enter the Authentication code 'xxxxx' to submit your
Fulfillment Form. We will process your Oracle DBA 11g OCM success kit once this
form is submitted.
·
Address Line1 ( Building No or House number or Apartment No or Room No )
:
·
Address Line2 ( Street name or Street number ) :
·
Address Line3 ( Locality or Area Name ) :
·
City:
·
State:
·
Zip code / Postal code:
·
Country:
·
Phone No:
Please feel free to
contact the OCP team at ocpreq_ww@oracle.com if you have questions.
Kind regards,
Oracle Certification
Program
Par Herve Etche, MBA
- Oracle Database 11g Administrator Certified Master (OCM)
- Oracle Certified Expert, RAC 11g and Grid Infrastructure Administrator
- Oracle Database 11g Performance Tuning Certified Expert
- Oracle Exadata 11g Certified Implementation Specialist
- Oracle Database 11g, 10g & 9i Certified Professional
- Oracle Application Server 10g Certified Professional
jeudi 12 février 2015
mardi 9 décembre 2014
"Health check" de bases de données pour problèmes relatifs au dictionnaire
Il y a certains problèmes de la base de données oracle pour lesquels l'on est tenté de vérifier s'il n'y a pas de corruption au niveau du dictionnaire de données.
Se réferer au document Doc ID 136697.1 et télécharger le fichier hcheck3.sql pour les versions supérieures ou égales à 9i.
Voici les étapes à suivre:
1. Dans sqlplus, se connecter en tant que SYS
2. Créer le package hOut. Voir le document Note:101468.1. Copier le script du document ID cité et créer un fichier hOut.sql qui sera lancé pour créer le package.
3. Créer le package hcheck à l'aide du script hcheck3.sql téléchargé à partir du document Doc ID 136697.1
4. spool outputfile
5. execute hcheck.full
6. spool off
Exemple:
[oracle@host01 ]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 9 10:54:09 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, Oracle Label Security, OLAP,
Data Mining and Real Application Testing options
SYS@orcl> @hOut.sql
Package created.
No errors.
Package body created.
SYS@orcl> @hcheck3.sql
Package created.
Package body created.
H.Check Version 9i+/hc3.50
---------------------------------------
Catalog Version 11.2.0.4.0 (1102000400)
---------------------------------------
Catalog Fixed
Procedure Name Version Vs Release Run
------------------------------ ... ---------- -- ---------- ---
.- SynLastDDLTim ... 1102000400 > 1001000200 : n/a
.- LobNotInObj ... 1102000400 > 1000000200 : n/a
.- MissingOIDOnObjCol ... 1102000400 <= *All Rel* : Ok
.- SourceNotInObj ... 1102000400 > 1002000100 : n/a
.- IndIndparMismatch ... 1102000400 > 1102000100 : n/a
.- InvCorrAudit ... 1102000400 > 1102000100 : n/a
.- OversizedFiles ... 1102000400 <= *All Rel* : Ok
.- TinyFiles ... 1102000400 > 900010000 : n/a
.- PoorDefaultStorage ... 1102000400 <= *All Rel* : Ok
.- PoorStorage ... 1102000400 <= *All Rel* : Ok
.- MissTabSubPart ... 1102000400 > 900010000 : n/a
.- PartSubPartMismatch ... 1102000400 > 1102000100 : n/a
.- TabPartCountMismatch ... 1102000400 <= *All Rel* : Ok
.- OrphanedTabComPart ... 1102000400 > 900010000 : n/a
.- ZeroTabSubPart ... 1102000400 > 902000100 : n/a
.- MissingSum$ ... 1102000400 <= *All Rel* : Ok
.- MissingDir$ ... 1102000400 <= *All Rel* : Ok
.- DuplicateDataobj ... 1102000400 <= *All Rel* : Ok
.- ObjSynMissing ... 1102000400 <= *All Rel* : Ok
.- ObjSeqMissing ... 1102000400 <= *All Rel* : Ok
.- OrphanedUndo ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndex ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTable ... 1102000400 <= *All Rel* : Ok
.- OrphanedTablePartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTableSubPartition ... 1102000400 <= *All Rel* : Ok
.- MissingPartCol ... 1102000400 <= *All Rel* : Ok
.- OrphanedSeg$ ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndPartObj# ... 1102000400 > 1101000600 : n/a
.- DuplicateBlockUse ... 1102000400 <= *All Rel* : Ok
.- HighObjectIds ... 1102000400 > 801060000 : n/a
.- PQsequence ... 1102000400 > 800060000 : n/a
.- TruncatedCluster ... 1102000400 > 801070000 : n/a
.- FetUet ... 1102000400 <= *All Rel* : Ok
.- Uet0Check ... 1102000400 <= *All Rel* : Ok
.- ExtentlessSeg ... 1102000400 <= *All Rel* : Ok
.- SeglessUET ... 1102000400 <= *All Rel* : Ok
.- BadInd$ ... 1102000400 <= *All Rel* : Ok
.- BadTab$ ... 1102000400 <= *All Rel* : Ok
.- BadIcolDepCnt ... 1102000400 > 1101000700 : n/a
.- WarnIcolDep ... 1102000400 > 1101000700 : n/a
.- OnlineRebuild$ ... 1102000400 <= *All Rel* : Ok
.- DropForceType ... 1102000400 > 1001000200 : n/a
.- TrgAfterUpgrade ... 1102000400 <= *All Rel* : Ok
.- FailedInitJVMRun ... 1102000400 <= *All Rel* : Ok
.- TypeReusedAfterDrop ... 1102000400 > 900010000 : n/a
.- Idgen1$TTS ... 1102000400 > 900010000 : n/a
.- DroppedFuncIdx ... 1102000400 > 902000100 : n/a
.- BadOwner ... 1102000400 > 900010000 : n/a
.- UpgCheckc0801070 ... 1102000400 <= *All Rel* : Ok
.- BadPublicObjects ... 1102000400 <= *All Rel* : Ok
.- BadSegFreelist ... 1102000400 <= *All Rel* : Ok
.- BadCol# ... 1102000400 > 1001000200 : n/a
.- BadDepends ... 1102000400 <= *All Rel* : Ok
.- CheckDual ... 1102000400 <= *All Rel* : Ok
.- ObjectNames ... 1102000400 <= *All Rel* : Ok
.- BadCboHiLo ... 1102000400 <= *All Rel* : Ok
.- ChkIotTs ... 1102000400 <= *All Rel* : Ok
.- NoSegmentIndex ... 1102000400 <= *All Rel* : Ok
.- BadNextObject ... 1102000400 <= *All Rel* : Ok
.- OrphanIndopt ... 1102000400 > 902000800 : n/a
.- UpgFlgBitTmp ... 1102000400 > 1001000100 : n/a
.- RenCharView ... 1102000400 > 1001000100 : n/a
.- Upg9iTab$ ... 1102000400 > 902000400 : n/a
.- Upg9iTsInd ... 1102000400 > 902000500 : n/a
.- Upg10gInd$ ... 1102000400 > 1002000000 : n/a
.- DroppedROTS ... 1102000400 <= *All Rel* : Ok
.- ChrLenSmtcs ... 1102000400 > 1101000600 : n/a
.- FilBlkZero ... 1102000400 <= *All Rel* : Ok
.- DbmsSchemaCopy ... 1102000400 <= *All Rel* : Ok
Found 0 potential problem(s) and 0 warning(s)
PL/SQL procedure successfully completed.
SYS@orcl> spool outputfile
SYS@orcl> execute hcheck.full
H.Check Version 9i+/hc3.50
---------------------------------------
Catalog Version 11.2.0.4.0 (1102000400)
---------------------------------------
Catalog Fixed
Procedure Name Version Vs Release Run
------------------------------ ... ---------- -- ---------- ---
.- SynLastDDLTim ... 1102000400 > 1001000200 : n/a
.- LobNotInObj ... 1102000400 > 1000000200 : n/a
.- MissingOIDOnObjCol ... 1102000400 <= *All Rel* : Ok
.- SourceNotInObj ... 1102000400 > 1002000100 : n/a
.- IndIndparMismatch ... 1102000400 > 1102000100 : n/a
.- InvCorrAudit ... 1102000400 > 1102000100 : n/a
.- OversizedFiles ... 1102000400 <= *All Rel* : Ok
.- TinyFiles ... 1102000400 > 900010000 : n/a
.- PoorDefaultStorage ... 1102000400 <= *All Rel* : Ok
.- PoorStorage ... 1102000400 <= *All Rel* : Ok
.- MissTabSubPart ... 1102000400 > 900010000 : n/a
.- PartSubPartMismatch ... 1102000400 > 1102000100 : n/a
.- TabPartCountMismatch ... 1102000400 <= *All Rel* : Ok
.- OrphanedTabComPart ... 1102000400 > 900010000 : n/a
.- ZeroTabSubPart ... 1102000400 > 902000100 : n/a
.- MissingSum$ ... 1102000400 <= *All Rel* : Ok
.- MissingDir$ ... 1102000400 <= *All Rel* : Ok
.- DuplicateDataobj ... 1102000400 <= *All Rel* : Ok
.- ObjSynMissing ... 1102000400 <= *All Rel* : Ok
.- ObjSeqMissing ... 1102000400 <= *All Rel* : Ok
.- OrphanedUndo ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndex ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTable ... 1102000400 <= *All Rel* : Ok
.- OrphanedTablePartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTableSubPartition ... 1102000400 <= *All Rel* : Ok
.- MissingPartCol ... 1102000400 <= *All Rel* : Ok
.- OrphanedSeg$ ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndPartObj# ... 1102000400 > 1101000600 : n/a
.- DuplicateBlockUse ... 1102000400 <= *All Rel* : Ok
.- HighObjectIds ... 1102000400 > 801060000 : n/a
.- PQsequence ... 1102000400 > 800060000 : n/a
.- TruncatedCluster ... 1102000400 > 801070000 : n/a
.- FetUet ... 1102000400 <= *All Rel* : Ok
.- Uet0Check ... 1102000400 <= *All Rel* : Ok
.- ExtentlessSeg ... 1102000400 <= *All Rel* : Ok
.- SeglessUET ... 1102000400 <= *All Rel* : Ok
.- BadInd$ ... 1102000400 <= *All Rel* : Ok
.- BadTab$ ... 1102000400 <= *All Rel* : Ok
.- BadIcolDepCnt ... 1102000400 > 1101000700 : n/a
.- WarnIcolDep ... 1102000400 > 1101000700 : n/a
.- OnlineRebuild$ ... 1102000400 <= *All Rel* : Ok
.- DropForceType ... 1102000400 > 1001000200 : n/a
.- TrgAfterUpgrade ... 1102000400 <= *All Rel* : Ok
.- FailedInitJVMRun ... 1102000400 <= *All Rel* : Ok
.- TypeReusedAfterDrop ... 1102000400 > 900010000 : n/a
.- Idgen1$TTS ... 1102000400 > 900010000 : n/a
.- DroppedFuncIdx ... 1102000400 > 902000100 : n/a
.- BadOwner ... 1102000400 > 900010000 : n/a
.- UpgCheckc0801070 ... 1102000400 <= *All Rel* : Ok
.- BadPublicObjects ... 1102000400 <= *All Rel* : Ok
.- BadSegFreelist ... 1102000400 <= *All Rel* : Ok
.- BadCol# ... 1102000400 > 1001000200 : n/a
.- BadDepends ... 1102000400 <= *All Rel* : Ok
.- CheckDual ... 1102000400 <= *All Rel* : Ok
.- ObjectNames ... 1102000400 <= *All Rel* : Ok
.- BadCboHiLo ... 1102000400 <= *All Rel* : Ok
.- ChkIotTs ... 1102000400 <= *All Rel* : Ok
.- NoSegmentIndex ... 1102000400 <= *All Rel* : Ok
.- BadNextObject ... 1102000400 <= *All Rel* : Ok
.- OrphanIndopt ... 1102000400 > 902000800 : n/a
.- UpgFlgBitTmp ... 1102000400 > 1001000100 : n/a
.- RenCharView ... 1102000400 > 1001000100 : n/a
.- Upg9iTab$ ... 1102000400 > 902000400 : n/a
.- Upg9iTsInd ... 1102000400 > 902000500 : n/a
.- Upg10gInd$ ... 1102000400 > 1002000000 : n/a
.- DroppedROTS ... 1102000400 <= *All Rel* : Ok
.- ChrLenSmtcs ... 1102000400 > 1101000600 : n/a
.- FilBlkZero ... 1102000400 <= *All Rel* : Ok
.- DbmsSchemaCopy ... 1102000400 <= *All Rel* : Ok
Found 0 potential problem(s) and 0 warning(s)
PL/SQL procedure successfully completed.
SYS@orcl> SYS@orcl> spool off
En cas de problème, transmettre le fichier outputfile.lst obtenu à Oracle Support pour analyse.
Hope it helps...
Se réferer au document Doc ID 136697.1 et télécharger le fichier hcheck3.sql pour les versions supérieures ou égales à 9i.
Voici les étapes à suivre:
1. Dans sqlplus, se connecter en tant que SYS
2. Créer le package hOut. Voir le document Note:101468.1. Copier le script du document ID cité et créer un fichier hOut.sql qui sera lancé pour créer le package.
3. Créer le package hcheck à l'aide du script hcheck3.sql téléchargé à partir du document Doc ID 136697.1
4. spool outputfile
5. execute hcheck.full
6. spool off
Exemple:
[oracle@host01 ]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 9 10:54:09 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, Oracle Label Security, OLAP,
Data Mining and Real Application Testing options
SYS@orcl> @hOut.sql
Package created.
No errors.
Package body created.
SYS@orcl> @hcheck3.sql
Package created.
Package body created.
H.Check Version 9i+/hc3.50
---------------------------------------
Catalog Version 11.2.0.4.0 (1102000400)
---------------------------------------
Catalog Fixed
Procedure Name Version Vs Release Run
------------------------------ ... ---------- -- ---------- ---
.- SynLastDDLTim ... 1102000400 > 1001000200 : n/a
.- LobNotInObj ... 1102000400 > 1000000200 : n/a
.- MissingOIDOnObjCol ... 1102000400 <= *All Rel* : Ok
.- SourceNotInObj ... 1102000400 > 1002000100 : n/a
.- IndIndparMismatch ... 1102000400 > 1102000100 : n/a
.- InvCorrAudit ... 1102000400 > 1102000100 : n/a
.- OversizedFiles ... 1102000400 <= *All Rel* : Ok
.- TinyFiles ... 1102000400 > 900010000 : n/a
.- PoorDefaultStorage ... 1102000400 <= *All Rel* : Ok
.- PoorStorage ... 1102000400 <= *All Rel* : Ok
.- MissTabSubPart ... 1102000400 > 900010000 : n/a
.- PartSubPartMismatch ... 1102000400 > 1102000100 : n/a
.- TabPartCountMismatch ... 1102000400 <= *All Rel* : Ok
.- OrphanedTabComPart ... 1102000400 > 900010000 : n/a
.- ZeroTabSubPart ... 1102000400 > 902000100 : n/a
.- MissingSum$ ... 1102000400 <= *All Rel* : Ok
.- MissingDir$ ... 1102000400 <= *All Rel* : Ok
.- DuplicateDataobj ... 1102000400 <= *All Rel* : Ok
.- ObjSynMissing ... 1102000400 <= *All Rel* : Ok
.- ObjSeqMissing ... 1102000400 <= *All Rel* : Ok
.- OrphanedUndo ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndex ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTable ... 1102000400 <= *All Rel* : Ok
.- OrphanedTablePartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTableSubPartition ... 1102000400 <= *All Rel* : Ok
.- MissingPartCol ... 1102000400 <= *All Rel* : Ok
.- OrphanedSeg$ ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndPartObj# ... 1102000400 > 1101000600 : n/a
.- DuplicateBlockUse ... 1102000400 <= *All Rel* : Ok
.- HighObjectIds ... 1102000400 > 801060000 : n/a
.- PQsequence ... 1102000400 > 800060000 : n/a
.- TruncatedCluster ... 1102000400 > 801070000 : n/a
.- FetUet ... 1102000400 <= *All Rel* : Ok
.- Uet0Check ... 1102000400 <= *All Rel* : Ok
.- ExtentlessSeg ... 1102000400 <= *All Rel* : Ok
.- SeglessUET ... 1102000400 <= *All Rel* : Ok
.- BadInd$ ... 1102000400 <= *All Rel* : Ok
.- BadTab$ ... 1102000400 <= *All Rel* : Ok
.- BadIcolDepCnt ... 1102000400 > 1101000700 : n/a
.- WarnIcolDep ... 1102000400 > 1101000700 : n/a
.- OnlineRebuild$ ... 1102000400 <= *All Rel* : Ok
.- DropForceType ... 1102000400 > 1001000200 : n/a
.- TrgAfterUpgrade ... 1102000400 <= *All Rel* : Ok
.- FailedInitJVMRun ... 1102000400 <= *All Rel* : Ok
.- TypeReusedAfterDrop ... 1102000400 > 900010000 : n/a
.- Idgen1$TTS ... 1102000400 > 900010000 : n/a
.- DroppedFuncIdx ... 1102000400 > 902000100 : n/a
.- BadOwner ... 1102000400 > 900010000 : n/a
.- UpgCheckc0801070 ... 1102000400 <= *All Rel* : Ok
.- BadPublicObjects ... 1102000400 <= *All Rel* : Ok
.- BadSegFreelist ... 1102000400 <= *All Rel* : Ok
.- BadCol# ... 1102000400 > 1001000200 : n/a
.- BadDepends ... 1102000400 <= *All Rel* : Ok
.- CheckDual ... 1102000400 <= *All Rel* : Ok
.- ObjectNames ... 1102000400 <= *All Rel* : Ok
.- BadCboHiLo ... 1102000400 <= *All Rel* : Ok
.- ChkIotTs ... 1102000400 <= *All Rel* : Ok
.- NoSegmentIndex ... 1102000400 <= *All Rel* : Ok
.- BadNextObject ... 1102000400 <= *All Rel* : Ok
.- OrphanIndopt ... 1102000400 > 902000800 : n/a
.- UpgFlgBitTmp ... 1102000400 > 1001000100 : n/a
.- RenCharView ... 1102000400 > 1001000100 : n/a
.- Upg9iTab$ ... 1102000400 > 902000400 : n/a
.- Upg9iTsInd ... 1102000400 > 902000500 : n/a
.- Upg10gInd$ ... 1102000400 > 1002000000 : n/a
.- DroppedROTS ... 1102000400 <= *All Rel* : Ok
.- ChrLenSmtcs ... 1102000400 > 1101000600 : n/a
.- FilBlkZero ... 1102000400 <= *All Rel* : Ok
.- DbmsSchemaCopy ... 1102000400 <= *All Rel* : Ok
Found 0 potential problem(s) and 0 warning(s)
PL/SQL procedure successfully completed.
SYS@orcl> spool outputfile
SYS@orcl> execute hcheck.full
H.Check Version 9i+/hc3.50
---------------------------------------
Catalog Version 11.2.0.4.0 (1102000400)
---------------------------------------
Catalog Fixed
Procedure Name Version Vs Release Run
------------------------------ ... ---------- -- ---------- ---
.- SynLastDDLTim ... 1102000400 > 1001000200 : n/a
.- LobNotInObj ... 1102000400 > 1000000200 : n/a
.- MissingOIDOnObjCol ... 1102000400 <= *All Rel* : Ok
.- SourceNotInObj ... 1102000400 > 1002000100 : n/a
.- IndIndparMismatch ... 1102000400 > 1102000100 : n/a
.- InvCorrAudit ... 1102000400 > 1102000100 : n/a
.- OversizedFiles ... 1102000400 <= *All Rel* : Ok
.- TinyFiles ... 1102000400 > 900010000 : n/a
.- PoorDefaultStorage ... 1102000400 <= *All Rel* : Ok
.- PoorStorage ... 1102000400 <= *All Rel* : Ok
.- MissTabSubPart ... 1102000400 > 900010000 : n/a
.- PartSubPartMismatch ... 1102000400 > 1102000100 : n/a
.- TabPartCountMismatch ... 1102000400 <= *All Rel* : Ok
.- OrphanedTabComPart ... 1102000400 > 900010000 : n/a
.- ZeroTabSubPart ... 1102000400 > 902000100 : n/a
.- MissingSum$ ... 1102000400 <= *All Rel* : Ok
.- MissingDir$ ... 1102000400 <= *All Rel* : Ok
.- DuplicateDataobj ... 1102000400 <= *All Rel* : Ok
.- ObjSynMissing ... 1102000400 <= *All Rel* : Ok
.- ObjSeqMissing ... 1102000400 <= *All Rel* : Ok
.- OrphanedUndo ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndex ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTable ... 1102000400 <= *All Rel* : Ok
.- OrphanedTablePartition ... 1102000400 <= *All Rel* : Ok
.- OrphanedTableSubPartition ... 1102000400 <= *All Rel* : Ok
.- MissingPartCol ... 1102000400 <= *All Rel* : Ok
.- OrphanedSeg$ ... 1102000400 <= *All Rel* : Ok
.- OrphanedIndPartObj# ... 1102000400 > 1101000600 : n/a
.- DuplicateBlockUse ... 1102000400 <= *All Rel* : Ok
.- HighObjectIds ... 1102000400 > 801060000 : n/a
.- PQsequence ... 1102000400 > 800060000 : n/a
.- TruncatedCluster ... 1102000400 > 801070000 : n/a
.- FetUet ... 1102000400 <= *All Rel* : Ok
.- Uet0Check ... 1102000400 <= *All Rel* : Ok
.- ExtentlessSeg ... 1102000400 <= *All Rel* : Ok
.- SeglessUET ... 1102000400 <= *All Rel* : Ok
.- BadInd$ ... 1102000400 <= *All Rel* : Ok
.- BadTab$ ... 1102000400 <= *All Rel* : Ok
.- BadIcolDepCnt ... 1102000400 > 1101000700 : n/a
.- WarnIcolDep ... 1102000400 > 1101000700 : n/a
.- OnlineRebuild$ ... 1102000400 <= *All Rel* : Ok
.- DropForceType ... 1102000400 > 1001000200 : n/a
.- TrgAfterUpgrade ... 1102000400 <= *All Rel* : Ok
.- FailedInitJVMRun ... 1102000400 <= *All Rel* : Ok
.- TypeReusedAfterDrop ... 1102000400 > 900010000 : n/a
.- Idgen1$TTS ... 1102000400 > 900010000 : n/a
.- DroppedFuncIdx ... 1102000400 > 902000100 : n/a
.- BadOwner ... 1102000400 > 900010000 : n/a
.- UpgCheckc0801070 ... 1102000400 <= *All Rel* : Ok
.- BadPublicObjects ... 1102000400 <= *All Rel* : Ok
.- BadSegFreelist ... 1102000400 <= *All Rel* : Ok
.- BadCol# ... 1102000400 > 1001000200 : n/a
.- BadDepends ... 1102000400 <= *All Rel* : Ok
.- CheckDual ... 1102000400 <= *All Rel* : Ok
.- ObjectNames ... 1102000400 <= *All Rel* : Ok
.- BadCboHiLo ... 1102000400 <= *All Rel* : Ok
.- ChkIotTs ... 1102000400 <= *All Rel* : Ok
.- NoSegmentIndex ... 1102000400 <= *All Rel* : Ok
.- BadNextObject ... 1102000400 <= *All Rel* : Ok
.- OrphanIndopt ... 1102000400 > 902000800 : n/a
.- UpgFlgBitTmp ... 1102000400 > 1001000100 : n/a
.- RenCharView ... 1102000400 > 1001000100 : n/a
.- Upg9iTab$ ... 1102000400 > 902000400 : n/a
.- Upg9iTsInd ... 1102000400 > 902000500 : n/a
.- Upg10gInd$ ... 1102000400 > 1002000000 : n/a
.- DroppedROTS ... 1102000400 <= *All Rel* : Ok
.- ChrLenSmtcs ... 1102000400 > 1101000600 : n/a
.- FilBlkZero ... 1102000400 <= *All Rel* : Ok
.- DbmsSchemaCopy ... 1102000400 <= *All Rel* : Ok
Found 0 potential problem(s) and 0 warning(s)
PL/SQL procedure successfully completed.
SYS@orcl> SYS@orcl> spool off
En cas de problème, transmettre le fichier outputfile.lst obtenu à Oracle Support pour analyse.
Hope it helps...
mercredi 22 octobre 2014
ORA-20011: Approximate NDV failed: ORA-00600 internal error code, arguments: [1350], [3], [23], [60], [AMERICAN], [0], [], [], [], [], [], []
Je viens de migrer une base de données de la version 11.2.0.4 à la version 12.1.0.2.
En voulant regénérer les statistiques sur les "fixed objects" je rencontre l'erreur suivante:
SYS@orcl> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
BEGIN DBMS_STATS.GATHER_FIXED_OBJECTS_STATS; END;
*
ERROR at line 1:
ORA-20011: Approximate NDV failed: ORA-00600: internal error code, arguments:
[1350], [3], [23], [60], [AMERICAN], [0], [], [], [], [], [], []
ORA-06512: at "SYS.DBMS_STATS", line 36888
ORA-06512: at line 1
SYS@orcl>
Après quelques vérifications je me rends compte que le problème est lié au paramètre ORA_NLS10 que j'avais dans mon environnement.
[oracle@srvhost ~]$ env|grep ORA
ORA_NLS10=/u01/app/oracle/product/11.2.0/dbhome_1/nls/data/
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@srvhost ~]$
En enlevant ce paramètre le problème est résolu.
[oracle@srvhost ~]$ unset ORA_NLS10
[oracle@srvhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Oct 15 10:25:02 2014
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SYS@orcl> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
PL/SQL procedure successfully completed.
SYS@orcl>
Hope it helps...
En voulant regénérer les statistiques sur les "fixed objects" je rencontre l'erreur suivante:
SYS@orcl> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
BEGIN DBMS_STATS.GATHER_FIXED_OBJECTS_STATS; END;
*
ERROR at line 1:
ORA-20011: Approximate NDV failed: ORA-00600: internal error code, arguments:
[1350], [3], [23], [60], [AMERICAN], [0], [], [], [], [], [], []
ORA-06512: at "SYS.DBMS_STATS", line 36888
ORA-06512: at line 1
SYS@orcl>
Après quelques vérifications je me rends compte que le problème est lié au paramètre ORA_NLS10 que j'avais dans mon environnement.
[oracle@srvhost ~]$ env|grep ORA
ORA_NLS10=/u01/app/oracle/product/11.2.0/dbhome_1/nls/data/
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@srvhost ~]$
En enlevant ce paramètre le problème est résolu.
[oracle@srvhost ~]$ unset ORA_NLS10
[oracle@srvhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Oct 15 10:25:02 2014
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SYS@orcl> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
PL/SQL procedure successfully completed.
SYS@orcl>
Hope it helps...
lundi 22 septembre 2014
cksum en environnement windows
Lorsqu'on veut télécharger les produits oracle sur OTN (otn.oracle.com) , il y a un cksum inscrit en face du fichier zip à télécharger.
Après le téléchargement on peut vérifier le cksum sur notre serveur (ou notre pc) et comparer avec celui qui est sur OTN. S'ils sont différents c'est qu'il y a une corruption quelque part et qu'il y a de forte chances que vous rencontriez des problèmes pendant votre installation.
Exemple:

En environnement linux, la commande "cksum" vient avec la plupart des distributions.
Mais que faire en environnement Windows?
Pour arriver à faire cela sous Windows, j'ai téléchargé l'outil "win-bash" (shell-w32-ix86.zip).
Voici le lien pour télécharger: http://sourceforge.net/projects/win-bash/?source=typ_redirect
Décompresser le fichier shell-w32-ix86.zip dans un répertoire, par exemple "c:\win-bash"
On obtient le répertoire "c:\win-bash\shell-w32-ix86"
Ouvrir une fenêtre DOS et ajouter ce répertoire dans le path:
set Path=%Path%;c:\win-bash\shell-w32-ix86
Vérifier le cksum comme suit:
cksum.exe <Fichier_zip_telechargé>
Exemple:
C:\Users\Herve Etche>cksum.exe c:\downloads\winx64_12c_database_1of2.zip
4181069701 1337085275 c:\downloads\winx64_12c_database_1of2.zip
C:\Users\Herve Etche>cksum.exe c:\downloads\winx64_12c_database_2of2.zip
847151935 1373044868 c:\downloads\winx64_12c_database_2of2.zip
On voit bien que les valeurs obtenues sont identiques à celles qu'on avait sur OTN.
La première valeur qu'on obtient ici étant le cksum et la seconde étant la taille du fichier en bytes.
Note:
Cet outil peut être utilisé pour valider le cksum de n'importe quel fichier téléchargé d'OTN (Linux, Solaris, Windows, etc...).
Exemple:
C:\Users\Herve Etche>cksum.exe c:\downloads\linuxamd64_12c_database_1of2.zip
3389130601 1361028723 c:\downloads\linuxamd64_12c_database_1of2.zip
C:\Users\Herve Etche>cksum.exe c:\downloads\linuxamd64_12c_database_2of2.zip
273248753 1116527103 c:\downloads\linuxamd64_12c_database_2of2.zip
Hope it helps...
Après le téléchargement on peut vérifier le cksum sur notre serveur (ou notre pc) et comparer avec celui qui est sur OTN. S'ils sont différents c'est qu'il y a une corruption quelque part et qu'il y a de forte chances que vous rencontriez des problèmes pendant votre installation.
Exemple:
En environnement linux, la commande "cksum" vient avec la plupart des distributions.
Mais que faire en environnement Windows?
Pour arriver à faire cela sous Windows, j'ai téléchargé l'outil "win-bash" (shell-w32-ix86.zip).
Voici le lien pour télécharger: http://sourceforge.net/projects/win-bash/?source=typ_redirect
Décompresser le fichier shell-w32-ix86.zip dans un répertoire, par exemple "c:\win-bash"
On obtient le répertoire "c:\win-bash\shell-w32-ix86"
Ouvrir une fenêtre DOS et ajouter ce répertoire dans le path:
set Path=%Path%;c:\win-bash\shell-w32-ix86
Vérifier le cksum comme suit:
cksum.exe <Fichier_zip_telechargé>
Exemple:
C:\Users\Herve Etche>cksum.exe c:\downloads\winx64_12c_database_1of2.zip
4181069701 1337085275 c:\downloads\winx64_12c_database_1of2.zip
C:\Users\Herve Etche>cksum.exe c:\downloads\winx64_12c_database_2of2.zip
847151935 1373044868 c:\downloads\winx64_12c_database_2of2.zip
On voit bien que les valeurs obtenues sont identiques à celles qu'on avait sur OTN.
La première valeur qu'on obtient ici étant le cksum et la seconde étant la taille du fichier en bytes.
Note:
Cet outil peut être utilisé pour valider le cksum de n'importe quel fichier téléchargé d'OTN (Linux, Solaris, Windows, etc...).
Exemple:
C:\Users\Herve Etche>cksum.exe c:\downloads\linuxamd64_12c_database_1of2.zip
3389130601 1361028723 c:\downloads\linuxamd64_12c_database_1of2.zip
C:\Users\Herve Etche>cksum.exe c:\downloads\linuxamd64_12c_database_2of2.zip
273248753 1116527103 c:\downloads\linuxamd64_12c_database_2of2.zip
Hope it helps...
jeudi 18 septembre 2014
Comment créer des utilisateurs communs (common users) sans le préfixe C##
Avec Oracle database 12c, lorsqu'on veut créer un utilisateur commun (common user) avec un nom ordinaire (un nom tel qu'on utilisait dans les versions antérieures), on reçoit le message d'erreur suivant:
ERREUR à la ligne 1 :
ORA-65096: nom utilisateur ou de role commun non valide
Exemple:
C:\Users\Herve Hetche>sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Jeu. Sept. 11 14:27:20 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ConnectÚ Ó :
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SYS@oracdb> show con_name
CON_NAME
------------------------------
CDB$ROOT
SYS@oracdb> create user hetche identified by hetche;
create user hetche identified by hetche
*
ERREUR à la ligne 1 :
ORA-65096: nom utilisateur ou de role commun non valide
SYS@oracdb>
Cela est causé par le paramètre caché "_common_user_prefix".
SYS@oracdb> select value from v$parameter
2 where name='_common_user_prefix';
VALUE
--------------------------------------------------------------------------------
C##
SYS@oracdb>
OU
SYS@oracdb> select a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value", a.ksppdesc "Description"
from x$ksppi a,
x$ksppcv b,
x$ksppsv c
where a.indx = b.indx and a.indx = c.indx
and substr(ksppinm,1,1)=’_’ and lower(a.ksppinm) like ‘%common_user_prefix%’;
Parameter
--------------------------------------------------------------------------------
Session Value
--------------------------------------------------------------------------------
Instance Value
--------------------------------------------------------------------------------
Description
--------------------------------------------------------------------------------
_common_user_prefix
C##
C##
Enforce restriction on a prefix of a Common User/Role/Profile name
SYS@oracdb>
Modifier le paramètre comme suit:
SYS@oracdb> alter system set "_common_user_prefix"='' scope=both;
alter system set "_common_user_prefix"='' scope=both
*
ERREUR à la ligne 1 :
ORA-02095: Le paramètre d'initialisation indiqué ne peut pas être modifié
SYS@oracdb> alter system set "_common_user_prefix"='' scope=spfile;
Système modifié.
SYS@oracdb>
Et redémarrer la BD:
SYS@oracdb> shutdown immediate
Base de donnÚes fermÚe.
Base de donnÚes dÚmontÚe.
Instance ORACLE arrÛtÚe.
SYS@oracdb> startup
Instance ORACLE lancÚe.
Total System Global Area 730714112 bytes
Fixed Size 2443824 bytes
Variable Size 545261008 bytes
Database Buffers 176160768 bytes
Redo Buffers 6848512 bytes
Base de donnÚes montÚe.
Base de donnÚes ouverte.SYS@oracdb>
Vérifier la valeur du paramètre (on vient bien qu'elle est nulle):
SYS@oracdb> select value from v$parameter
2 where name='_common_user_prefix';
VALUE
--------------------------------------------------------------------------------
SYS@oracdb> select a.ksppinm "Parameter",
2 b.ksppstvl "Session Value",
3 c.ksppstvl "Instance Value", a.ksppdesc "Description"
4 from x$ksppi a,
5 x$ksppcv b,
6 x$ksppsv c
7 where a.indx = b.indx and a.indx = c.indx
8 and substr(ksppinm,1,1)='_' and lower(a.ksppinm) like '%common_user_prefix%';
Parameter
--------------------------------------------------------------------------------
Session Value
--------------------------------------------------------------------------------
Instance Value
--------------------------------------------------------------------------------
Description
--------------------------------------------------------------------------------
_common_user_prefix
Enforce restriction on a prefix of a Common User/Role/Profile name
Reprendre la création de l'utilisateur:
SYS@oracdb> create user hetche identified by hetche;
Utilisateur créé.
SYS@oracdb> grant dba to hetche;
Autorisation de privilèges (GRANT) acceptée.
SYS@oracdb> column username format a20
SYS@oracdb> select username, common from dba_users where username='HETCHE';
USERNAME COM
--------------------- ---
HETCHE YES
SYS@oracdb>
Si vous voulez remettre la valeur par défaut, à vous de décider !
Hope it helps....
ERREUR à la ligne 1 :
ORA-65096: nom utilisateur ou de role commun non valide
Exemple:
C:\Users\Herve Hetche>sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Jeu. Sept. 11 14:27:20 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ConnectÚ Ó :
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SYS@oracdb> show con_name
CON_NAME
------------------------------
CDB$ROOT
SYS@oracdb> create user hetche identified by hetche;
create user hetche identified by hetche
*
ERREUR à la ligne 1 :
ORA-65096: nom utilisateur ou de role commun non valide
SYS@oracdb>
Cela est causé par le paramètre caché "_common_user_prefix".
SYS@oracdb> select value from v$parameter
2 where name='_common_user_prefix';
VALUE
--------------------------------------------------------------------------------
C##
SYS@oracdb>
OU
SYS@oracdb> select a.ksppinm "Parameter",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value", a.ksppdesc "Description"
from x$ksppi a,
x$ksppcv b,
x$ksppsv c
where a.indx = b.indx and a.indx = c.indx
and substr(ksppinm,1,1)=’_’ and lower(a.ksppinm) like ‘%common_user_prefix%’;
Parameter
--------------------------------------------------------------------------------
Session Value
--------------------------------------------------------------------------------
Instance Value
--------------------------------------------------------------------------------
Description
--------------------------------------------------------------------------------
_common_user_prefix
C##
C##
Enforce restriction on a prefix of a Common User/Role/Profile name
SYS@oracdb>
Modifier le paramètre comme suit:
SYS@oracdb> alter system set "_common_user_prefix"='' scope=both;
alter system set "_common_user_prefix"='' scope=both
*
ERREUR à la ligne 1 :
ORA-02095: Le paramètre d'initialisation indiqué ne peut pas être modifié
SYS@oracdb> alter system set "_common_user_prefix"='' scope=spfile;
Système modifié.
SYS@oracdb>
Et redémarrer la BD:
SYS@oracdb> shutdown immediate
Base de donnÚes fermÚe.
Base de donnÚes dÚmontÚe.
Instance ORACLE arrÛtÚe.
SYS@oracdb> startup
Instance ORACLE lancÚe.
Total System Global Area 730714112 bytes
Fixed Size 2443824 bytes
Variable Size 545261008 bytes
Database Buffers 176160768 bytes
Redo Buffers 6848512 bytes
Base de donnÚes montÚe.
Base de donnÚes ouverte.SYS@oracdb>
Vérifier la valeur du paramètre (on vient bien qu'elle est nulle):
SYS@oracdb> select value from v$parameter
2 where name='_common_user_prefix';
VALUE
--------------------------------------------------------------------------------
SYS@oracdb> select a.ksppinm "Parameter",
2 b.ksppstvl "Session Value",
3 c.ksppstvl "Instance Value", a.ksppdesc "Description"
4 from x$ksppi a,
5 x$ksppcv b,
6 x$ksppsv c
7 where a.indx = b.indx and a.indx = c.indx
8 and substr(ksppinm,1,1)='_' and lower(a.ksppinm) like '%common_user_prefix%';
Parameter
--------------------------------------------------------------------------------
Session Value
--------------------------------------------------------------------------------
Instance Value
--------------------------------------------------------------------------------
Description
--------------------------------------------------------------------------------
_common_user_prefix
Enforce restriction on a prefix of a Common User/Role/Profile name
Reprendre la création de l'utilisateur:
SYS@oracdb> create user hetche identified by hetche;
Utilisateur créé.
SYS@oracdb> grant dba to hetche;
Autorisation de privilèges (GRANT) acceptée.
SYS@oracdb> column username format a20
SYS@oracdb> select username, common from dba_users where username='HETCHE';
USERNAME COM
--------------------- ---
HETCHE YES
SYS@oracdb>
Si vous voulez remettre la valeur par défaut, à vous de décider !
Hope it helps....
mardi 9 septembre 2014
Oracle 12c - Architecture Multitenant
Les documents de "My Oracle Support" suivants contiennent des informations intéressantes sur l'architecture Multitenant d'oracle 12c.
Je vous les partage, qui sait? Ils peuvent peut-être vous servir un jour...
Master Note for the Oracle Multitenant Option (Doc ID 1519699.1)
Oracle Multitenant Option - 12c : Frequently Asked Questions (Doc ID 1511619.1)
Removal of Database Options in a Multitenant Setup (Doc ID 1616554.1)
Oracle Multitenant: Configuration and Customization Fundamentals (Doc ID 1633071.1)
Hope it helps...
Je vous les partage, qui sait? Ils peuvent peut-être vous servir un jour...
Master Note for the Oracle Multitenant Option (Doc ID 1519699.1)
Oracle Multitenant Option - 12c : Frequently Asked Questions (Doc ID 1511619.1)
Removal of Database Options in a Multitenant Setup (Doc ID 1616554.1)
Oracle Multitenant: Configuration and Customization Fundamentals (Doc ID 1633071.1)
Hope it helps...
Oracle Database 12c - Configuration Single Tenant
Avec Oracle Database 12c, si l'on utilise une PDB par CDB l'on ne paie pas
d'option supplémentaire? C'est cette configuration qu'on appelle "Single
Tenant". Cette configuration est disponible dans toutes les éditions sans frais supplémentaires
contrairement au Multitenant qui n'est disponible que dans l'Enterprise
Edition et qui n'est pas gratuit.
Pour plus de détails, voir:
https://blogs.oracle.com/Multitenant/entry/single_tenant_configuration
http://docs.oracle.com/database/121/DBLIC/editions.htm#CIHBAEID
Hope it helps...
Pour plus de détails, voir:
https://blogs.oracle.com/Multitenant/entry/single_tenant_configuration
http://docs.oracle.com/database/121/DBLIC/editions.htm#CIHBAEID
Hope it helps...
mercredi 16 avril 2014
Bug de sécurité OpenSSL - Heartbleed CVE-2014-0160
Depuis le mois d'avril 2014 il y a un bug de sécurité au niveau d'OpenSSL qui affecte plusieurs produits. Oracle n'est pas en reste car plusieurs produits d'oracle utilisent OpenSSL.
Ce bug s'appelle Heartbleed. Vous en avez sûrement entendu parler.
Pour savoir si les produits oracle que vous utilisez sont affectés ou pas, et s'il existe des correctifs, consultez la page suivante:
http://www.oracle.com/technetwork/topics/security/opensslheartbleedcve-2014-0160-2188454.html
Ce site classe les produits oracle en quatre (4) catégories:
1- Les produits oracle qui n'utilisent pas les versions d'OpenSSL affectées.
2- Les produits oracle qui pourraient être vulnérables, mais toujours sous investigation.
3- Les produits oracle vulnérables mais qui ont des correctifs.
4- Et les produits oracle vulnérables, mais pour lesquels il n'existe pas de correctif à ce jour.
Hope it helps...
Ce bug s'appelle Heartbleed. Vous en avez sûrement entendu parler.
Pour savoir si les produits oracle que vous utilisez sont affectés ou pas, et s'il existe des correctifs, consultez la page suivante:
http://www.oracle.com/technetwork/topics/security/opensslheartbleedcve-2014-0160-2188454.html
Ce site classe les produits oracle en quatre (4) catégories:
1- Les produits oracle qui n'utilisent pas les versions d'OpenSSL affectées.
2- Les produits oracle qui pourraient être vulnérables, mais toujours sous investigation.
3- Les produits oracle vulnérables mais qui ont des correctifs.
4- Et les produits oracle vulnérables, mais pour lesquels il n'existe pas de correctif à ce jour.
Hope it helps...
samedi 12 avril 2014
Comment utiliser le script "mkplug.sql" pour créer les "sample" schemas?
Pré requis:
Il faut installer le fichier numéro 6 (p13390677_112040_Linux-x86-64_6of7 pour la version 11.2.0.4 de linux) qui représente "Oracle Database Examples".
Pour créer les schémas "example", habituellement on utilise le script "mksample.sql" qui se trouve dans le répertoire $ORACLE_HOME/demo/schema.
Cependant on peut aussi utiliser le script "mkplug.sql" pour "plugger" le transportable tablespace EXAMPLE dans la base de données.
Voici comment s'utilise ce script:
[oracle@Db11gLinux6-4 ~]$ cd $ORACLE_HOME/demo/schema
[oracle@Db11gLinux6-4 schema]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Apr 12 18:57:42 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options
SYS@db11gr2> @mkplug.sql
specify password for SYS as parameter 1:
Enter value for 1: Welcome1
specify password for HR as parameter 2:
Enter value for 2: Welcome1
specify password for OE as parameter 3:
Enter value for 3: Welcome1
specify password for PM as parameter 4:
Enter value for 4: Welcome1
specify password for IX as parameter 5:
Enter value for 5: Welcome1
specify password for SH as parameter 6:
Enter value for 6: Welcome1
specify password for BI as parameter 7:
Enter value for 7: Welcome1
specify INPUT metadata import file as parameter 8:
Enter value for 8: example.dmp
specify INPUT database backup file for tablespace EXAMPLE as parameter 9:
Enter value for 9: example01.dfb
specify OUTPUT database file for tablespace EXAMPLE as parameter 10:
Enter value for 10: /u01/app/oracle/oradata/db11gr2/example01.dbf
specify OUTPUT log directory as parameter 11:
Enter value for 11: /u01/app/oracle/product/11.2.0/dbhome_1/demo/schema/
specify OUTPUT dump file directory as parameter 12:
Enter value for 12: /u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates/
Voici quelques explications concernant les paramètres:
Hope it helps...
Il faut installer le fichier numéro 6 (p13390677_112040_Linux-x86-64_6of7 pour la version 11.2.0.4 de linux) qui représente "Oracle Database Examples".
Pour créer les schémas "example", habituellement on utilise le script "mksample.sql" qui se trouve dans le répertoire $ORACLE_HOME/demo/schema.
Cependant on peut aussi utiliser le script "mkplug.sql" pour "plugger" le transportable tablespace EXAMPLE dans la base de données.
Voici comment s'utilise ce script:
[oracle@Db11gLinux6-4 ~]$ cd $ORACLE_HOME/demo/schema
[oracle@Db11gLinux6-4 schema]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Apr 12 18:57:42 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options
SYS@db11gr2> @mkplug.sql
specify password for SYS as parameter 1:
Enter value for 1: Welcome1
specify password for HR as parameter 2:
Enter value for 2: Welcome1
specify password for OE as parameter 3:
Enter value for 3: Welcome1
specify password for PM as parameter 4:
Enter value for 4: Welcome1
specify password for IX as parameter 5:
Enter value for 5: Welcome1
specify password for SH as parameter 6:
Enter value for 6: Welcome1
specify password for BI as parameter 7:
Enter value for 7: Welcome1
specify INPUT metadata import file as parameter 8:
Enter value for 8: example.dmp
specify INPUT database backup file for tablespace EXAMPLE as parameter 9:
Enter value for 9: example01.dfb
specify OUTPUT database file for tablespace EXAMPLE as parameter 10:
Enter value for 10: /u01/app/oracle/oradata/db11gr2/example01.dbf
specify OUTPUT log directory as parameter 11:
Enter value for 11: /u01/app/oracle/product/11.2.0/dbhome_1/demo/schema/
specify OUTPUT dump file directory as parameter 12:
Enter value for 12: /u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates/
Voici quelques explications concernant les paramètres:
- Pour les paramètres 1 à 7, j'ai choisi d'utiliser comme mot de passe "Welcome1" pour tous les schémas examples à créer.
- Paramètre 8: Fichier dump à utiliser pour plugger le transportable tablespace EXAMPLE. Ce fichier se trouve dans le répertoire $ORACLE_HOME/assistants/dbca/templates, d'où l'utilisation de ce répertoire plus tard pour le paramètre 12.
- Paramètre 9: Fichier utilisé aussi pour le transportable tabalespace. Il se trouve dans le même répertoire que celui du paramètre 8. Pour ce qui concerne l'extension du fichier, ce n'est pas une erreur, c'est bien "dfb".
- Paramètre 10: le datafile à créer dans notre base de données. Faire un "select file_name from dba_data_files;" pour voir l'emplacement des autres fichiers de votre BD.
- Paramètre 11: Répertoire dans lequel les logs seront créés.
- Paramètre 12: Répertoire dans lequel se trouvent les templates (example.dmp, example01.dfb), c'est à dire $ORACLE_HOME/assistants/dbca/templates.
Hope it helps...
Comment rappeler les commandes dans SQLPLUS ou RMAN dans un environnement linux?
L'utilitaire "rlwrap" permet de rappeler les anciennes commandes dans SQLPLUS ou RMAN.
Pour installer rlwrap :
Télécharger rlwrap ici :
http://utopia.knoware.nl/~hlub/uck/rlwrap/
Une fois téléchargé, copier le fichier "rlwrap-0.37.tar.gz" (c'est la version que j'ai utilisée) dans un répertoire sur le serveur, exemple /tmp
Se connecter sur le serveur linux en tant que root.
Décompresser le fichier:
cd /tmp
gunzip rlwrap-0.37.tar.gz
tar -xvf rlwrap-0.37.tar
Se positionner dans le répertoire obtenu:
cd rlwrap-0.37
Installer comme suit :
./configure
Si vous rencontrez l’erreur :
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
Installer gcc et readline-devel comme suit, en utilisant "yum":
yum install gcc
yum install readline-devel
Reprendre l’installation de rlwrap:
./configure
make
make check
make install
Pour utiliser rlwrap avec sqlplus ou rman,
1- Lancer la commande en utilisant rlwrap en avant:
rlwrap sqlplus system/mdp@alias
2- Ou créer un alias sqlplus et rman avec rlwrap en avant, comme suit:
alias sqlplus=’rlwrap $ORACLE_HOME/bin/sqlplus’
alias rman=’rlwrap $ORACLE_HOME/bin/rman’
Avec les alias on n'a plus besoin de préciser rlwrap en avant, on lance juste la commande:
sqlplus system/mdp@alias
Une fois connecté à SQLPLUS ou RMAN en utilisant rlwrap, on peut rappeler les anciennes commandes utilisées à l'aide des flèches du clavier.
Hope it helps...
Pour installer rlwrap :
Télécharger rlwrap ici :
http://utopia.knoware.nl/~hlub/uck/rlwrap/
Une fois téléchargé, copier le fichier "rlwrap-0.37.tar.gz" (c'est la version que j'ai utilisée) dans un répertoire sur le serveur, exemple /tmp
Se connecter sur le serveur linux en tant que root.
Décompresser le fichier:
cd /tmp
gunzip rlwrap-0.37.tar.gz
tar -xvf rlwrap-0.37.tar
Se positionner dans le répertoire obtenu:
cd rlwrap-0.37
Installer comme suit :
./configure
Si vous rencontrez l’erreur :
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
Installer gcc et readline-devel comme suit, en utilisant "yum":
yum install gcc
yum install readline-devel
Reprendre l’installation de rlwrap:
./configure
make
make check
make install
Pour utiliser rlwrap avec sqlplus ou rman,
1- Lancer la commande en utilisant rlwrap en avant:
rlwrap sqlplus system/mdp@alias
2- Ou créer un alias sqlplus et rman avec rlwrap en avant, comme suit:
alias sqlplus=’rlwrap $ORACLE_HOME/bin/sqlplus’
alias rman=’rlwrap $ORACLE_HOME/bin/rman’
Avec les alias on n'a plus besoin de préciser rlwrap en avant, on lance juste la commande:
sqlplus system/mdp@alias
Une fois connecté à SQLPLUS ou RMAN en utilisant rlwrap, on peut rappeler les anciennes commandes utilisées à l'aide des flèches du clavier.
Hope it helps...
mardi 8 avril 2014
Oracle Database 12c Interactive Quick Reference
Voici un petit guide concernant la version 12c d'oracle database que j'ai trouve interessant.
Il contient plusieurs onglets dont l'architecture de la base de donnees 12c, l'architecture multitenant, les vues de performance, etc...
Ce qui est interessant c'est qu'on peut cliquer sur les images pour les agrandir, on peut voir les commentaires a droite de l'ecran, etc...
On peut y acceder a partir de otn.oracle.com en allant au niveau de la page de documentation d'oracle database 12c. Mais voici le lien direct:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTPUT_poster/poster.html#tab_1
Hope it helps...
Il contient plusieurs onglets dont l'architecture de la base de donnees 12c, l'architecture multitenant, les vues de performance, etc...
Ce qui est interessant c'est qu'on peut cliquer sur les images pour les agrandir, on peut voir les commentaires a droite de l'ecran, etc...
On peut y acceder a partir de otn.oracle.com en allant au niveau de la page de documentation d'oracle database 12c. Mais voici le lien direct:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTPUT_poster/poster.html#tab_1
Hope it helps...
lundi 4 novembre 2013
Comment vérifier si RAC est activée dans un ORACLE_HOME?
Dans un environnement unix (autre que AIX) et linux, pour vérifier si RAC est activé pour un home oracle utiliser la commande "ar" comme suit:
ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
Si RAC est activé la commande retourne "kcsm.o" sinon elle ne retourne rien.
Note:
L'archive "libknlopt.a" contient les fichiers indiquant les différentes composantes installées.
Exemple:
1- Dans un environnement où RAC est activé (qu'il s'agisse du home du grid infrastructure ou d'un home base de données):
[oracle@svrhost1 ~]$ ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
kcsm.o
[oracle@svrhost1 ~]$
2- Dans un environnement où RAC n'est pas activé (qu'il s'agisse du home du grid infrastructure ou d'un home base de données):
[oracle@testhost ~]$ ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
[oracle@testhost ~]$
Lorsque RAC n'est pas activé, le fichier contenu dans l'archive est "ksnkcs.o":
[oracle@testhost ~]$ ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep ksnkcs.o
ksnkcs.o
[oracle@testhost ~]$
Hope it helps...
ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
Si RAC est activé la commande retourne "kcsm.o" sinon elle ne retourne rien.
Note:
L'archive "libknlopt.a" contient les fichiers indiquant les différentes composantes installées.
Automatic
Storage Mgt ON=kfon.o
Automatic Storage Mgt OFF=kfoff.o
Context Management Text ON=kciwcx.o <<CTX est toujours activé et ne peut être désactivé.
Oracle Data Mining ON=dmwdm.o
Oracle Data Mining OFF=dmndm.o
Oracle Database Vault ON=kzvidv.o
Oracle Database Vault OFF=kzvndv.o
Oracle OLAP ON=xsyeolap.o
Oracle OLAP OFF=xsnoolap.o
Oracle Label Security ON= kzlilbac.o
Oracle Label Security OFF= kzlnlbac.o
Oracle Partitioning ON=kkpoban.o
Oracle Partitioning OFF=ksnkkpo.o
Real Application Cluster ON=kcsm.o
Real Application Cluster OFF=ksnkcs.o
Oracle Real Application Testing ON=kecwr.o
Oracle Real Application Testing OFF=kecnr.o
Automatic Storage Mgt OFF=kfoff.o
Context Management Text ON=kciwcx.o <<CTX est toujours activé et ne peut être désactivé.
Oracle Data Mining ON=dmwdm.o
Oracle Data Mining OFF=dmndm.o
Oracle Database Vault ON=kzvidv.o
Oracle Database Vault OFF=kzvndv.o
Oracle OLAP ON=xsyeolap.o
Oracle OLAP OFF=xsnoolap.o
Oracle Label Security ON= kzlilbac.o
Oracle Label Security OFF= kzlnlbac.o
Oracle Partitioning ON=kkpoban.o
Oracle Partitioning OFF=ksnkkpo.o
Real Application Cluster ON=kcsm.o
Real Application Cluster OFF=ksnkcs.o
Oracle Real Application Testing ON=kecwr.o
Oracle Real Application Testing OFF=kecnr.o
1- Dans un environnement où RAC est activé (qu'il s'agisse du home du grid infrastructure ou d'un home base de données):
[oracle@svrhost1 ~]$ ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
kcsm.o
[oracle@svrhost1 ~]$
2- Dans un environnement où RAC n'est pas activé (qu'il s'agisse du home du grid infrastructure ou d'un home base de données):
[oracle@testhost ~]$ ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep kcsm.o
[oracle@testhost ~]$
Lorsque RAC n'est pas activé, le fichier contenu dans l'archive est "ksnkcs.o":
[oracle@testhost ~]$ ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a|grep ksnkcs.o
ksnkcs.o
[oracle@testhost ~]$
Hope it helps...
vendredi 4 octobre 2013
L'outil "sosreport" sur Oracle Linux
L'outil "sosreport" permet de collecter les informations sur le hardware et les configurations de Linux.
Pour l'utiliser:
[root@host ~]# sosreport
sosreport (version 1.7)
This utility will collect some detailed information about the
hardware and setup of your Enterprise Linux system.
The information is collected and an archive is packaged under
/tmp, which you can send to a support representative.
This information will be used for diagnostic purposes ONLY
and it will be considered confidential information.
This process may take a while to complete.
No changes will be made to your system.
Press ENTER to continue, or CTRL-C to quit.
One or more plugins have detected a problem in your configuration.
Please review the following messages:
process:
* one or more processes are in state D (sosreport might hang)
Are you sure you would like to continue (y/n) ? y
Please enter your first initial and last name [texans]: hetche
Please enter the case number that you are generating this report for: 1
plugin system finished ...
Completed.
Creating compressed archive...
Your sosreport has been generated and saved in:
/tmp/sosreport-hetche.1-797857-a51333.tar.bz2
The md5sum is: b9c7ff320009c7b19ad48b93eca51333
Please send this file to your support representative.
Par défaut le résultat est généré dans le répertoire /tmp.
Pour le générer à un autre emplacement, lancer l'utilitaire comme suit:
TMP=/home/hetche sosreport
Hope it helps...
Pour l'utiliser:
[root@host ~]# sosreport
sosreport (version 1.7)
This utility will collect some detailed information about the
hardware and setup of your Enterprise Linux system.
The information is collected and an archive is packaged under
/tmp, which you can send to a support representative.
This information will be used for diagnostic purposes ONLY
and it will be considered confidential information.
This process may take a while to complete.
No changes will be made to your system.
Press ENTER to continue, or CTRL-C to quit.
One or more plugins have detected a problem in your configuration.
Please review the following messages:
process:
* one or more processes are in state D (sosreport might hang)
Are you sure you would like to continue (y/n) ? y
Please enter your first initial and last name [texans]: hetche
Please enter the case number that you are generating this report for: 1
plugin system finished ...
Completed.
Creating compressed archive...
Your sosreport has been generated and saved in:
/tmp/sosreport-hetche.1-797857-a51333.tar.bz2
The md5sum is: b9c7ff320009c7b19ad48b93eca51333
Please send this file to your support representative.
Par défaut le résultat est généré dans le répertoire /tmp.
Pour le générer à un autre emplacement, lancer l'utilitaire comme suit:
TMP=/home/hetche sosreport
Hope it helps...
lundi 30 septembre 2013
Lecture des fichiers binaires avec la command "strings"
La commande strings peut être utilisé pour visualiser le contenu d'un fichier binaire.
Par exemple, pour voir le contenu d'un fichier olr dans un environnement grid infrastructure 11g (en cluster ou en standalone):
sudo su -
cd $GRID_HOME/cdata
strings host1.olr
Exemple de contenu obtenu:
[root@host1 cdata]# strings host1.olr |grep SPFile
tp://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd" ProfileSequence="36" ClusterUId="63077d79ae5dcf99fff118cfb1a5c515" ClusterName="crstest11g" PALocation=""><gpnp:Network-Profile><gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="142.41.242.0" Adapter="bond0" Use="public"/><gpnp:Network id="net2" IP="192.168.30.0" Adapter="bond1" Use="cluster_interconnect"/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/><orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/crstest11g/asmparameterfile/registry.253.801067269"/><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI=""><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>3mfJqBrkkNz2lvK1CJXvq2/UtJw=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>scGjbnPKShIDg/NAVJXkn399lt7ifLjbdH6DAHVZnJGSOmZwlcrfSL/mqOHyzHNgtRyhW6yGs+rXukexq0dPI+PtiLTkN6yX1JrC6rdsxemwtoPJAyA9X5lJhdcy4nfNQ/Mv0+nfGlnMXcvBIhGjPiLeFtKmuGUHOvbz+U47hfk=</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>
[root@host1 cdata]#
Hope it helps....
Par exemple, pour voir le contenu d'un fichier olr dans un environnement grid infrastructure 11g (en cluster ou en standalone):
sudo su -
cd $GRID_HOME/cdata
strings host1.olr
Exemple de contenu obtenu:
[root@host1 cdata]# strings host1.olr |grep SPFile
tp://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd" ProfileSequence="36" ClusterUId="63077d79ae5dcf99fff118cfb1a5c515" ClusterName="crstest11g" PALocation=""><gpnp:Network-Profile><gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="142.41.242.0" Adapter="bond0" Use="public"/><gpnp:Network id="net2" IP="192.168.30.0" Adapter="bond1" Use="cluster_interconnect"/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/><orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/crstest11g/asmparameterfile/registry.253.801067269"/><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI=""><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>3mfJqBrkkNz2lvK1CJXvq2/UtJw=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>scGjbnPKShIDg/NAVJXkn399lt7ifLjbdH6DAHVZnJGSOmZwlcrfSL/mqOHyzHNgtRyhW6yGs+rXukexq0dPI+PtiLTkN6yX1JrC6rdsxemwtoPJAyA9X5lJhdcy4nfNQ/Mv0+nfGlnMXcvBIhGjPiLeFtKmuGUHOvbz+U47hfk=</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>
[root@host1 cdata]#
Hope it helps....
mardi 20 août 2013
ORA-13236: internal error in R-tree processing: [Snapshot too old or Recursive fetch error]
Après avoir migré de la version 10.2.0.3 vers la version 11.2.0.3, il arrive que des requêtes incluant des tables partitionnées contenant des données spatial donnent l'erreur:
ERREUR Ó la ligne 1 :
ORA-13236: erreur interne dans le traitement R-tree : [Snapshot too old or Recursive fetch error]
ORA-13234: Úchec de l'accÞs Ó la table d'index R-tree [MDRT Table]
ORA-29400: erreur de cartouche de donnÚes
ORA-01031: privilÞges insuffisants
ORA-06512: Ó "MDSYS.SDO_PQRY", ligne 122
ORA-06512: Ó ligne 1
Voir le document suivant de My Oracle Support:
ORA-13236 [Snapshot too old or Recursive fetch error] on cross-schema Spatial Query [ID 1303804.1]
Le problème est dû au fait qu'avec les nouvelles versions d'oracle (depuis la version 10.2.0.4) il faut faire un GRANT explicite sur les tables MDRT générées par les indexes spatial.
Voici un petit script pour faire ce GRANT sur toutes les tables MDRT concernées:
set pagesize 1000
spool c:\temp\grant_mdrt.sql
select 'grant select on '|| c.table_owner || '.' || c.sdo_index_table || ' to ' || d.grantee || ';' from DBA_PART_TABLES a, dba_tab_columns b, all_sdo_index_info c , dba_tab_privs d
where a.owner not in ('SYS','SYSTEM')
and a.owner = b.owner
and a.table_name = b.table_name
and b.data_type like '%SDO_GEOMETRY'
and b.owner = c.table_owner
and b.table_name = c.table_name
and a.owner = d.owner
and a.table_name = d.table_name
and d.privilege = 'SELECT' ;
spool off;
Exécuter par la suite le fichier sql obtenu:
@c:\temp\grant_mdrt.sql
Hope it helps...
ERREUR Ó la ligne 1 :
ORA-13236: erreur interne dans le traitement R-tree : [Snapshot too old or Recursive fetch error]
ORA-13234: Úchec de l'accÞs Ó la table d'index R-tree [MDRT Table]
ORA-29400: erreur de cartouche de donnÚes
ORA-01031: privilÞges insuffisants
ORA-06512: Ó "MDSYS.SDO_PQRY", ligne 122
ORA-06512: Ó ligne 1
Voir le document suivant de My Oracle Support:
ORA-13236 [Snapshot too old or Recursive fetch error] on cross-schema Spatial Query [ID 1303804.1]
Le problème est dû au fait qu'avec les nouvelles versions d'oracle (depuis la version 10.2.0.4) il faut faire un GRANT explicite sur les tables MDRT générées par les indexes spatial.
Voici un petit script pour faire ce GRANT sur toutes les tables MDRT concernées:
set pagesize 1000
spool c:\temp\grant_mdrt.sql
select 'grant select on '|| c.table_owner || '.' || c.sdo_index_table || ' to ' || d.grantee || ';' from DBA_PART_TABLES a, dba_tab_columns b, all_sdo_index_info c , dba_tab_privs d
where a.owner not in ('SYS','SYSTEM')
and a.owner = b.owner
and a.table_name = b.table_name
and b.data_type like '%SDO_GEOMETRY'
and b.owner = c.table_owner
and b.table_name = c.table_name
and a.owner = d.owner
and a.table_name = d.table_name
and d.privilege = 'SELECT' ;
spool off;
Exécuter par la suite le fichier sql obtenu:
@c:\temp\grant_mdrt.sql
Hope it helps...
OPatch found the word "warning" in the stderr of the make command
En appliquant des patches oracle il se peut que vous rencontriez l'avertissement suivant (ou un message similaire):
OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
Composite patch 14727310 successfully applied.
OPatch Session completed with warnings.
Log file location: /ora01/logi/oracle/product/bd11203p/cfgtoollogs/opatch/opatch2013-02-15_15-26-36PM_1.log
OPatch completed with warnings.
Voir le document de My Oracle Support:
Opatch warning: overriding commands for target xxxx [ID 1448337.1]
Selon ce document, il s'agit tout simplement d'un avertissement qui peut être ignoré.
Hope it helps...
OPatch found the word "warning" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/ins_precomp.mk:19: warning: overriding commands for target `pcscfg.cfg'
/ora01/logi/oracle/product/bd11203p/precomp/lib/env_precomp.mk:2160: warning: ignoring old commands for target `pcscfg.cfg'
Composite patch 14727310 successfully applied.
OPatch Session completed with warnings.
Log file location: /ora01/logi/oracle/product/bd11203p/cfgtoollogs/opatch/opatch2013-02-15_15-26-36PM_1.log
OPatch completed with warnings.
Voir le document de My Oracle Support:
Opatch warning: overriding commands for target xxxx [ID 1448337.1]
Selon ce document, il s'agit tout simplement d'un avertissement qui peut être ignoré.
Hope it helps...
UDE-00008: operation generated ORACLE error 31626
En faisant un export avec datapump (expdp) avec la version 10.2.0.3 j'ai rencontré l'erreur suivante:
UDE-00008: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-39086: cannot retrieve job information
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2745
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3712
ORA-06512: at line 1
Pour ce problème voir le document suivant de My Oracle Support :
Data Pump Client Gets UDE-8 ORA-31626 ORA-39086 (Doc ID 549781.1)
Selon ce document, si le fichier log de l'export indique que l'export s'est terminé correctement le messsage d'erreur peut être ignoré.
Dans mon cas le fichier log de l'export indique bien que l'export s'est terminé correctement:
Master table "EXPORTS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for EXPORTS.SYS_EXPORT_SCHEMA_01 is:
/ora501/bd11gr2/expdp_epel_he_sst1_20130819_161102_01.dmp
Job "EXPORTS"."SYS_EXPORT_SCHEMA_01" successfully completed at 20:30:07
Alors message d'erreur ignoré...
Hope it helps...
UDE-00008: operation generated ORACLE error 31626
ORA-31626: job does not exist
ORA-39086: cannot retrieve job information
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2745
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3712
ORA-06512: at line 1
Pour ce problème voir le document suivant de My Oracle Support :
Data Pump Client Gets UDE-8 ORA-31626 ORA-39086 (Doc ID 549781.1)
Selon ce document, si le fichier log de l'export indique que l'export s'est terminé correctement le messsage d'erreur peut être ignoré.
Dans mon cas le fichier log de l'export indique bien que l'export s'est terminé correctement:
Master table "EXPORTS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for EXPORTS.SYS_EXPORT_SCHEMA_01 is:
/ora501/bd11gr2/expdp_epel_he_sst1_20130819_161102_01.dmp
Job "EXPORTS"."SYS_EXPORT_SCHEMA_01" successfully completed at 20:30:07
Alors message d'erreur ignoré...
Hope it helps...
lundi 29 juillet 2013
Exemple d'utilisation de l'utilitaire ASM "kfod"
Un petit script qui permet de lister les diskgroups et les disks ASM associés.
Bien sûr l'on peut retrouver les mêmes informations à partir des vues dynamiques, mais l'objectif de cet article c'est de montrer l'utilisation que l'on peut faire de l'utilitaire asm "kfod".
L'utilitaire se trouve dans le répertoire $GRID_HOME/bin en environnement cluster comme en environnement standalone.
Le script a été écrit sur un serveur Linux, donc avec la présence d'asmlib. Il tient compte du fait que sur certains serveurs les disques s'appellent /dev/oracleasm/disks/* (les alias sont créés par asmlib, mais asmlib n'est pas utilisé au moment de monter les diskgroups, cela est le résultat d'un problème que nous avons rencontré à cause de la version des contrôleurs du SAN. Voir l'article http://www.herve-etche.com/2012/12/ora-15085-asm-disk-has-inconsistent.html pour plus de détails) et sur d'autres serveurs c'est ORCL:* (ici asmlib est utilisé).
Exemple de résultat obtenu:
Hope it helps...
Bien sûr l'on peut retrouver les mêmes informations à partir des vues dynamiques, mais l'objectif de cet article c'est de montrer l'utilisation que l'on peut faire de l'utilitaire asm "kfod".
L'utilitaire se trouve dans le répertoire $GRID_HOME/bin en environnement cluster comme en environnement standalone.
Le script a été écrit sur un serveur Linux, donc avec la présence d'asmlib. Il tient compte du fait que sur certains serveurs les disques s'appellent /dev/oracleasm/disks/* (les alias sont créés par asmlib, mais asmlib n'est pas utilisé au moment de monter les diskgroups, cela est le résultat d'un problème que nous avons rencontré à cause de la version des contrôleurs du SAN. Voir l'article http://www.herve-etche.com/2012/12/ora-15085-asm-disk-has-inconsistent.html pour plus de détails) et sur d'autres serveurs c'est ORCL:* (ici asmlib est utilisé).
# 10-avril-2013 - Creation initiale - Par Herve Etche
# Ce script permet d'afficher les diskgroups asm et leurs tailles. Il
affiche aussi les disques de chaque diskgroup et leurs tailles
#!/usr/bin/ksh
GRID_HOME=$(cat /etc/oratab | awk -F: '/^\+ASM/{print $2}') #Recuperer
le GRID_HOME a partir du fichier /etc/oratab
ASM_PID=`ps -ef|grep asm_pmon|grep -v grep|awk '{print $2}'` #Le PID du
process pmon d'asm
if [ $ASM_PID ]; then # Le process pmon d'asm existe, l'instance est
donc demarree
v_profile=`asmcmd
dsget|cut -d ':' -f2|uniq`
DG=`$GRID_HOME/bin/kfod
asm_diskstring='/dev/oracleasm/disks/*' dscvgroup=TRUE disks=all|grep DISK|awk
'{print $5}'|grep -v \#|sort|uniq` #Liste des diskgroups
if test -n "$DG"; then
for x in $DG
do
echo
printf '\033[32m'
#couleur verte
printf '\033[4m'
#Souligner phrase
echo -e "Diskgroup:
$x"'\033[0m';
printf '\033[0m' #Annuler
couleur verte et le souligner
echo
echo
echo " Diskgroup Total (GB) Util (GB) Libre (GB) %Util "
echo
"======================================================================"
$GRID_HOME/bin/asmcmd lsdg $x | \
awk -v sq="'" 'BEGIN {
getline } {
printf" %s \t
%11"sq"d \t %9"sq"d \t %8"sq"d \t %3d%%
\n",$13,$7/1024,($7-$8)/1024,$8/1024,100-100*($8/$7)
}'
echo
if [[ $v_profile == /dev* ]]; then
echo " Disque(s) Taille (MB) Taille (GB) "
echo
"======================================================================"
/usr/bin/diff
<($GRID_HOME/bin/kfod asm_diskstring='/dev/oracleasm/disks/*' group=$x)
<($GRID_HOME/bin/kfod asm_diskstring='/dev/oracleasm/disks/*' group=#) | \
awk -v sq="'" 'BEGIN { getline } {
printf" %s \t
%10"sq"d \t %11"sq"d \n",$5,$3,$3/1024
}' | grep DISK
else
echo
echo " Disque(s) Taille (MB) Taille (GB) "
echo
"======================================================"
echo
/usr/bin/diff
<($GRID_HOME/bin/kfod asm_diskstring='ORCL*' group=$x) <(kfod
asm_diskstring='ORCL*' group=#) | \
awk -v sq="'" 'BEGIN { getline } {
printf" %s \t
%10"sq"d \t %11"sq"d \n",$5,$3,$3/1024
}' | grep DISK
fi
echo
done
fi
printf '\033[32m' #couleur
verte
printf '\033[4m' #Souligner
phrase
echo -e "Disque(s)
n'appartenant a aucun diskgroup:"'\033[0m';
printf '\033[0m' #Annuler
couleur verte
nb=`$GRID_HOME/bin/kfod
asm_diskstring='/dev/oracleasm/disks/*' group=# | grep DISK |wc -l` #nombre de
disques n'appartenent a aucun diskgroup
if [ "$nb"
-ge 1 ]; then
echo
echo " Disque(s) Taille (MB) Taille (GB) "
echo "======================================================================"
$GRID_HOME/bin/kfod
asm_diskstring='/dev/oracleasm/disks/*' group=# | \
awk -v sq="'" 'BEGIN {
getline } {
printf" %s \t
%10"sq"d \t %11"sq"d \n",$4,$2,$2/1024
}' | grep DISK
echo
else
echo
echo "Il n'existe
aucun disque libre dans cet environnement"
echo
fi
else # Il n'y a pas de process pmon pour asm, l'instance asm n'est donc
pas demarree.
printf '\033[31m' #couleur
rouge
echo
"********************************************************************"
echo "***** Desole,
l'instance ASM n'est pas demarree sur ce noeud ! *****"
echo
"********************************************************************"
printf '\033[0m' #Annuler
couleur rouge
fi
Exemple de résultat obtenu:
[oracle@svr_host
]$ ./asm_kfod.ksh
Diskgroup: DATA
Diskgroup Total (GB) Util (GB) Libre (GB) %Util
======================================================================
DATA/ 400 86 313 21%
Disque(s)
Taille (MB) Taille (GB)
======================================================================
/dev/oracleasm/disks/DISK_AL9 409,626 400
Diskgroup: DATA11G
Diskgroup Total (GB) Util (GB) Libre (GB) %Util
======================================================================
DATA11G/ 2,800 481 2,318 17%
Disque(s)
Taille (MB) Taille (GB)
======================================================================
/dev/oracleasm/disks/DISK_AL1 409,626 400
/dev/oracleasm/disks/DISK_AL2 409,626 400
/dev/oracleasm/disks/DISK_AL3 409,626 400
/dev/oracleasm/disks/DISK_AL4 409,626 400
/dev/oracleasm/disks/DISK_AL5 409,626 400
/dev/oracleasm/disks/DISK_AL6 409,626 400
/dev/oracleasm/disks/DISK_AL7 409,626 400
Diskgroup: FRA
Diskgroup Total (GB) Util (GB) Libre (GB) %Util
======================================================================
FRA/ 400 41 358 10%
Disque(s)
Taille (MB) Taille (GB)
======================================================================
/dev/oracleasm/disks/DISK_AL10 409,626 400
Diskgroup: FRA11G
Diskgroup Total (GB) Util (GB) Libre (GB) %Util
======================================================================
FRA11G/ 400 17 382 4%
Disque(s) Taille (MB) Taille (GB)
======================================================================
/dev/oracleasm/disks/DISK_AL8 409,626 400
Diskgroup: OCR_VOTE
Diskgroup Total (GB) Util (GB) Libre (GB) %Util
======================================================================
OCR_VOTE/ 20 0 19 1%
Disque(s)
Taille (MB) Taille (GB)
======================================================================
/dev/oracleasm/disks/DISK_AL11 10,240 10
/dev/oracleasm/disks/DISK_AL12 10,240 10
Disque(s) n'appartenant a
aucun diskgroup:
Il n'existe aucun disque libre dans cet
environnement
Hope it helps...