Way to success...

--"Running Away From Any PROBLEM Only Increases The DISTANCE From The SOLUTION"--.....--"Your Thoughts Create Your FUTURE"--.....--"EXCELLENCE is not ACT but a HABIT"--.....--"EXPECT nothing and APPRECIATE everything"--.....

Friday, May 26, 2017

ORA-00600: internal error code, arguments: [kcbgcur_6] 4096 4194 4193 4197 on database crash



Description of Issue

ORCL Instance Crashed due to ORA-00600: internal error code, arguments: [600], [ORA-00600: internal error code, arguments: [kcbgcur_6], [583], [4294967295], [4096], [0], [], [], [] , [], [], [], [], [], []


Tried to restart the ORCL database, we were able to mount the ORCL DB however unable to open
the database.

Below errors observed in alert log:

Errors in Alert Log

SMON: enabling cache recovery
Errors in file /u01/ORCL/app/oraORCL/diag/rdbms/ORCL/ORCL/trace/ORCL_ora_32464.trc  (incident=322482):
ORA-00600: internal error code, arguments: [kcbgcur_6], [583], [4294967295], [4096], [0], [], [], []
Incident details in: /u01/ORCL/app/oraORCL/diag/rdbms/ORCL/ORCL/incident/incdir_322482/
ORCL_ora_32464_i322482.trc

Errors in file /u01/ORCL/app/oraORCL/diag/rdbms/ORCL/ORCL/trace/ORCL_ora_32464.trc:
ORA-00600: internal error code, arguments: [kcbgcur_6], [583], [4294967295], [4096], [0], [], [], []
Error 600 happened during db open, shutting down database
USER (ospid: 32464): terminating the instance due to error 600
Instance terminated by USER, pid = 32464
ORA-1092 signalled during: ALTER DATABASE OPEN...
ORA-1092 : opiodr aborting process unknown ospid (32464_1)
Mon Aug 29 02:26:31 2016
ORA-1092 : opitsk aborting process



Cause

This issue generally occurs when there is a power outage or hardware failure that initially crashes the database. On startup, the database does the normal roll forward (redo) and then rollback (undo), this is where the error is generated on the rollback.



Solution

1. Shutdown the instance


2. Startup in mount mode and set the following parameters

SQL> startup mount;
SQL> alter system set undo_management=MANUAL scope=SPFILE;


3. After setting the above parameter we are able to open the database

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database open;


4. Check the status of all undo segments

SQL> select tablespace_name, status, segment_name from dba_rollback_segs 
where status != 'OFFLINE';

This is critical - we are looking for all undo segments to be offline - System will always be online.

If any are 'PARTLY AVAILABLE' or 'NEEDS RECOVERY' - Please open an issue with Oracle Support or update the current SR.  There are many options from this moment and Oracle Support Analyst can offer different solutions for the bad undo segments.

If all offline then continue to the next step


5. Create new undo tablespace - example

SQL>create undo tablespace <new undo tablespace> datafile <datafile> size 2000M;


6. Drop old undo tablespace (You can drop this later on as well)

SQL> drop tablespace <old undo tablespace> including contents and datafiles;


7. Modify the spfile with the new undo tablespace name and change the undo management to AUTO

SQL> alter system set undo_tablespace = '<new tablespace created in step 5>' scope=spfile;
SQL> alter system set undo_management=AUTO scope=SPFILE;


8. Restart Database

SQL> shutdown immediate;
SQL> startup;





No comments:

Post a Comment