一套Itanium HP-UX上的9.2.0.5系统最近出现了ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [],内部错误,其错误日志如下:
Mon Apr 18 12:32:20 2011 ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [], [], [] ARC0: Completed archiving log 6 thread 1 sequence 831803 Mon Apr 18 12:32:22 2011 ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [], [], [] Mon Apr 18 12:32:23 2011 ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [], [], [] Trace file ---------- Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.5.0 - Production ORACLE_HOME = /opt/oracle/product/9.2.0.5 System name: HP-UX Release: B.11.23 Version: U Machine: ia64 Redo thread mounted by this instance: 1 Oracle process number: 28 Unix process pid: 14827, image: oracle@(TNS V1-V3) *** 2011-04-18 02:39:15.043 *** SESSION ID:(276.16183) 2011-04-18 02:39:15.042 DEADLOCK DETECTED Current SQL statement for this session: The following deadlock is not an ORACLE error. It is a deadlock due to user error in the design of an application or from issuing incorrect ad-hoc SQL. The following information may aid in determining the deadlock: Deadlock graph: ---------Blocker(s)-------- ---------Waiter(s)--------- Resource Name process session holds waits process session holds waits TX-00030022-0070d56f 28 276 X 344 259 X TX-000a0012-0058e4fc 344 259 X 28 276 X session 276: DID 0001-001C-0000002C session 259: DID 0001-0158-000020E6 session 259: DID 0001-0158-000020E6 session 276: DID 0001-001C-0000002C Rows waited on: Session 259: obj - rowid = 00001F0D - AABNCDAAEAAAAXYAAL (dictionary objn - 7949, file - 4, block - 1496, slot - 11) Session 276: obj - rowid = 00001F0B - AABNCAAAEAAAAXCAAY (dictionary objn - 7947, file - 4, block - 1474, slot - 24) Information on the OTHER waiting sessions: Session 259: pid=344 serial=17280 audsid=106170227 user: 41 program: JDBC Thin Client application name: JDBC Thin Client, hash value=0 Current SQL Statement: End of information on OTHER waiting sessions. *** 2011-04-18 12:32:20.392 ksedmp: internal or fatal error ORA-00600: internal error code, arguments: [kgskdecrstat1], [], [], [], [], [], [], [] ----- Call Stack Trace ----- ... kgskdecrstat kskdecrstat ktudecrustat ktcdso ktcrcm ktdcmt k2lcom ... ----- End of Call Stack Trace ----- PROCESS STATE ------------- program: JDBC Thin Client application name: JDBC Thin Client, hash value=0 last wait for 'SQL*Net message from client' blocking sess=0x0 seq=39332 wait_time=21242 driver id=74637000, #bytes=1, =0
可以看到以上引发ORA-00600[kgskdecrstat1]内部错误的进程同时发现了死锁(DEADLOCK),在MOS上搜索可以发现”Bug 2894072: ORA-00600: INTERNAL ERROR CODE, ARGUMENTS: [KGSKDECRSTAT1]”,但是该Bug最早发生在9.2.0.3上,已经确定影响9.2.0.x所有版本,并且在9.2.0.5上没有backport的bug fix。
提交sr后,Oracle Gcs给出了解决的solution:
1.升级数据库到10.2.0.5,11.1.0.7,11.2.0.2等目前支持的版本
2.解决引发该bug的ORA-00060 dead lock问题
3.如果在解决ORA-00060后仍出现以上ORA-00600[kgskdecrstat1]内部错误,且启用了9i早期版本中的resource manager的话,可以尝试禁用该特性:
ALTER SYSTEM SET resource_manager_plan=” SCOPE=BOTH;
以便绕过bug 2494790。