Monday, July 21, 2014

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr] in Oracle 12C

Version:

DB: 12.1.0.1.0
OS: OEL 6, 64 bit

Issue:

The file system on which DB files were available crashed, resulting in a DB crash. The next DB startup is failing with Internal errors. DB is coming up to the mount stage only.

Error:

Database mounted.
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[1895], [12597], [12603], [], [], [], [], [], [], []

Reason:

Because of the file system crash when DB was running,the data files became in accessible. This resulted in a "lost Write" into the Online RedoLogs. So the normal Instance Recovery procedure became impossible to happen causing the ORA-600 error.

Solution:

We can manually recover the DB by specifying the online redo thread at the time of crash if the full set of redo logs are available in the storage. 

Note: It is better to have a full backup of all the files before trying the steps.

1. Backup all DB files if possible

2. Identify the current log sequence group and file.

SQL> startup mount;

SQL> select GROUP#,STATUS from v$log;

    GROUP# STATUS
---------- ----------------
         1 INACTIVE
         3 INACTIVE
         2 CURRENT

SQL> select GROUP#,MEMBER from v$logfile;

    GROUP# MEMBER
---------  -----------------------
1   /u01/oradata/orcl/redo01.log  
2   /u01/oradata/orcl/redo02.log
3   /u01/oradata/orcl/redo03.log


Here Group# 2 is current. So I am going to pass it manually

3. Manually Recover the DB

SQL> recover database until cancel using backup controlfile;
ORA-00279: change 23977161 generated at 07/18/2014 07:00:59 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/product/121010/dbs/arch1_1895_847740493.dbf
ORA-00280: change 23977161 for thread 1 is in sequence #1895


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/oradata/orcl/redo02.log
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;

Database altered.

DB is now open.

Note: If the above step fails then the only option left is to restore/recover from latest backup.

2 comments:

  1. Thank you so much for solution, Worked for me.

    ReplyDelete
  2. Worked perfectly for me too. Thank you very very much, Satish!

    ReplyDelete