The current detailed error message is no longer displayed. Only the corresponding figure is displayed. Refer to the data in an EYGLE article:
1. Fault symptom
The database version is 11 GB. The error is similar to the following:
ORA-00600: Internal error code, parameter: [kcratr_nab_less_than_odr] error, specific error information is similar:
Incident 63078 created, dump file:/u01/diag/rdbms/orcl/incident/incdir_63078/orcl_ora_1916_i63078.trc
ORA-00600: Internal error code, parameter: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], [], [], []
ORA-00600: Internal error code, parameter: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], [], [], []
ORA-00600: Internal error code, parameter: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], [], [], []
ALERT logs include the following:
Thread 1Checkpoint:Logseq 3313, Block 2, scn 5965899084787
Cache-low rba: logseq 3313, block 1484161
On-disk rba: logseq 3313, block2334233, Scn 5965899135009
Start recovery at logseq 3313, block 1484161, scn 0
The meaning of 600 in the 3313 error is Thread 1 logseq 2334233, so the rest should be the rba address during recovery, and the error message is On-Disk Rba, is the end point of recovery, and 2328320 is smaller Than On-Disk Rba, it should be the end point of recovery mentioned in Less Than, because it did not reach the last position of Redo, it is regarded as illegal and data may be lost.
The following prompt appears in the TRACE file:
WARNING! Crash recovery of thread 1 seq 3313 is
Ending at redo block 2328320 but shocould not have ended before
Redo block 2334233.
The only problem I encountered was the image below.
The reason may be that the instance recovery progress is insufficient (the Redo is incomplete due to REDO loss or hardware failure-Bad blocks ).
This can be verified from the image of the TRACE file that reported an error at that time.
We can see that the on disk rba that needs to be restored at least is block24955, but the current recovery is 24957, and some blocks are lost, so an error is reported.
2. troubleshooting:
First, try to restore the DATABASE through recover database; recoverdatabaseuntil cancel; and other methods, but this problem is not solved.
Finally, OPEN the database by recreating the control file and not completely restoring it. (The premise is that the customer only requires the OPEN Database, which is the test database of the customer. It is okay to lose some data. If the production database does not allow data loss, this method is not applicable)
The command is similar to the following:
In the MOUNT status: alterdatabasebackup controlfile totrace as '/home/oracle/a.txt ';
Use the content in the backup control file to perform the following operations in the SQLPLUS window:
Createcontrolfile reuse database ............
Alter database recover database until cancel using backup controlfile;
Alter database open resetlogs;
Create a temporary tablespace.
Reference: http://www.xifenfei.com/2347.html http://www.eygle.com/archives/2010/05/kcratr_nab_less_than_odr.html