Vous pouvez être à peu près sur, lorsque vous capturez un message comme celui ci-dessous dans votre fichier alert.log que vous allez être dedans pour quelques temps :
Errors in file /u01/app/oracle/product/10.2.0/db_1/bdump/racdb1_pz99_8329.trc:
ORA-00600: internal error code, arguments: [17112], [0x2A97258110], [], [], [], [], [], []
ORA-10387: parallel query server interrupt (normal)
La bonne nouvelle, c’est que les ORA-00600 sont faciles à diagnostiquer au moins au début et qu’il est assez rare que vous soyez l’heureux « premier » DBA Oracle à la rencontrer. Enfin, si vous voyez quelque chose comme ça, votre premier réflexe sera sans doute de vous précipiter sur l’une des 2 notes suivantes :
- 260459.1 – How to Analyze Problems Related to Internal Errors (ORA-600) and Core Dumps (ORA-7445) using Metalink
- 153788.1 – Troubleshoot an ORA-600 or ORA-7445 Error Using the Error Lookup Tool
Le propos de ce post est de mettre en avant le fait que RDA (Remote Diagnostic Agent) inclut un outils nommé ora600 qui peut vous aider à collecter les traces de votre ORA-00600, les formater et vous conduire encore plus vite aux causes probables de votre problème…
Etape 1 : Installer RDA
Pour installer RDA, il suffit de télécharger la distribution associée depuis Metalink
$ su - oracle
$ mkdir rda-4.11
$ cd rda-4.11
$ # Changez la distribution en fonction de la dernière version
$ # de RDA disponible pour votre plate-forme.
$ # Utilisez votre nom d'utilisateur et mode de passe Metalink
$ ftp updates.oracle.com
ftp> cd 6854532
ftp> ls
ftp> get p6854532_4110_Linux-x86.zip
ftp> bye
$ unzip 6854532*.zip
$ cd rda
Etape 2 : Utiliser RDA ora600
Une fois RDA installe, il suffit d’utiliser ora600 en ajoutant le fichier de trace généré par l’erreur ORA-00600 comme ci-dessous :
$ ./rda.pl -T ora600:/u01/app/oracle/product/10.2.0/db_1/bdump/racdb1_pz99_8329.trc
Le résultat s’affiche presque aussitôt :
Diagnosing ORA-600 Oracle internal errors ...
Error Code: 600
- First Argument: 17112
- Other Arguments: 0x2A97258110
Applicable Note:
47411.1 (ORA-600 [17112] Internal Heap Error)
Error Code: 600
- First Argument: 17147
- Other Arguments: 0x2A97258110
Applicable Note:
138580.1 (ORA-600 [17147])
Error Code: 600
- First Argument: 17147
- Other Arguments: 0x2A97258110
Applicable Note:
138580.1 (ORA-600 [17147])
Summary file: /usr/oracle/rda/output/RDA_ORA600_8329_summary.htm
Related Files:
- Trace Header File: /home/oracle/rda/output/RDA_ORA600_8329_header.htm
- Heap Summary File: /home/oracle/rda/output/RDA_ORA600_8329_heap1.htm
- Heap Summary File: /home/oracle/rda/output/RDA_ORA600_8329_heap2.htm
Vous pouvez ainsi directement allez sur les notes correspondantes ou ouvrir les pages web générées pour en savoir plus sur la pile des programmes ou le contenue de la mémoire :
Etape 3 : Résoudre votre problème…
J’ai bien peur que cette dernière étape me dépasse complètement… A moins que vous ne vous décidiez à faire appel à nos services ;-).
Dans l’intervalle et si vous n’avez pas résolu votre problème dans les 5 première minutes, vous devriez ouvrir une SR et vous préparer mentalement à des heures un peu difficiles…