联系:手机(13429648788) QQ(107644445)
链接:https://www.orasos.com/ora-00600kghstack_free2%e5%bc%82%e5%b8%b8%e6%81%a2%e5%a4%8d.html
作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]
今天接触一案例ORA-00600[kghstack_free2],恢复起来很简单,顺便记录下,供其他人遇到类似情况参考.
Wed Feb 20 15:05:04 2013 SMON: enabling cache recovery Wed Feb 20 15:05:05 2013 Successfully onlined Undo Tablespace 1. Wed Feb 20 15:05:05 2013 SMON: enabling tx recovery Wed Feb 20 15:05:06 2013 Errors in file f:\oracle\product\10.2.0\admin\cksoltp\bdump\cksoltp_smon_3556.trc: ORA-00600: internal error code, arguments: [kghstack_free2], [], [], [], [], [], [], [] Wed Feb 20 15:05:06 2013 Database Characterset is AL32UTF8 replication_dependency_tracking turned off (no async multimaster replication found) Wed Feb 20 15:05:08 2013 Errors in file f:\oracle\product\10.2.0\admin\cksoltp\bdump\cksoltp_smon_3556.trc: ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [_kghstack_err+101] [PC:0x603CC77F] [ADDR:0x59004E04] [UNABLE_TO_READ] [] ORA-00600: internal error code, arguments: [kghstack_free2], [], [], [], [], [], [], [] Starting background process QMNC QMNC started with pid=18, OS id=3504 Wed Feb 20 15:05:13 2013 Errors in file f:\oracle\product\10.2.0\admin\cksoltp\bdump\cksoltp_pmon_4064.trc: ORA-00474: SMON process terminated with error
这个错误很明显是因为smon在回滚事务的时候,遇到异常从而出现ORA-00600[kghstack_free2]错误,使得数据库不能被正常open,通过分析trace文件发现回滚段36中有事务未提交,需要回滚,针对这样的数据库恢复方法很简单:1.屏蔽事务回滚,2.屏蔽回滚段强制offline等
1) EVENT=”10513 trace name context forever”
2)_offline_rollback_segments= _SYSSMU36$
数据库启动后,通过分析trace文件,找出来异常对象,然后重建该对象,除掉event/_offline_rollback_segments即可

ORA-00600 [kghstack_free2] and Database doesn’t Open
Cause Because of the crash redo log have been corrupted. This issue could reproduce in environments that are using IMU, see Bug 5762424 Solution 1) In order to open database you will have to use event 10513 to stop TX recovery. a) If using init.ora, update the file with this line and bounce database event = "10513 trace name context forever, level 2" b) If using spfile: sqlplus /nolog connect / as sysdba startup mount alter system set event= '10513 trace name context forever, level 2' scope=spfile; shutdown startup 2) Find the offending object in the trace file looking at the current statement or based on a block dump 3) drop this object 4) remove event 10513 5) disable IMU _in_memory_undo=FALSE 6) startup database.