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
Oracle DBA Tips
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....