ORA-00600 and Severity Level

if you are a DBA, then you must have faced “ORA-00600” error. This is a generic error that potentially represent a defect and you will need to contact Oracle Support for help to fix the faced problem.

The error can be found in “alert.log” file , however there are different severity levels of ORA-600….. to find out you can use the very useful view: V$diag_alert_ext

The view has a column called “message_level”  that indicates the severity level as shown below:

1 : CRITICAL: critical errors

2 : SEVERE: severe errors

8 : IMPORTANT: important message

16 : NORMAL: normal message

In a production system you will need monitor and check if either severity “1” or “2” is being thrown in the alert log file. So, basically this useful view provides more detailed information about the error…. having ORA-600 with severity level “16” is normal message alert and can be ignored.

*** This query will catch ORA-600 with severity level 1

SQL> select originating_timestamp,detailed_location,message_level,message_text,problem_key from V$diag_alert_ext where message_level=1 and message_text like’%ORA-00600%’ order by originating_timestamp desc;

 

 

 

 

 

 

 

 

 

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [90], [46191], [46469], [], [], [], [], [], [], []

My Oracle database have crashed for some reason, and while trying to start up:

 

SQL> startup
ORACLE instance started.

Total System Global Area 7071333376 bytes
Fixed Size 1675792 bytes
Variable Size 829809390 bytes
Database Buffers 431527320 bytes
Redo Buffers 4405509 bytes
Database mounted.
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[90], [46191], [46469], [], [], [], [], [], [], []

 

Solution:

in order to resolve this you need t perform recovery, per the following steps:

SQL>Startup mount ;

SQL>Show parameter control_files

SQL> select a.member, a.group#, b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status=’CURRENT’ ;

remark: write down the name of the redo logs and their paths…

SQL> Shutdown abort ;

remark:Take a OS Level backup of the controlfiles in different directory

SQL> Startup mount ;

SQL> recover database using backup controlfile until cancel ;

Remark: Enter location of redo logs (refer to the query where you have wrote down the location of redologs),then hit ‘Enter’

SQL> Alter database open resetlogs ;