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], [], [], [], [], [], [], []
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
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.