客户告警日志出现ORA-600[kjzhablar:idx]错误,已经碰到过ORA-7445[kjzhablar:idx]的错误,虽然错误函数相同,但是二者关系不大。
错误信息为:
Sat May 14 18:54:55 EAT 2011 Errors IN file /oracle/app/admin/orcl/bdump/orcl1_diag_3889.trc: ORA-00600: internal error code, arguments: [kjzhablar:idx], [1], [1], [0x9FFFFFFFFD343AB4], [], [], [], [] Sat May 14 18:54:57 EAT 2011 Trace dumping IS performing id=[cdmp_20110514185457] |
对应的TRACE文件包含下面的信息:
*** 2011-05-14 18:54:52.638 Switch TO short timeout FOR ipc polling a SESSION (kjzha) IS registered SESSION (kjzha) IS about TO END Registered SESSION (kjzha)[11][4][0][1] IS cleaned up Switch TO long timeout FOR ipc polling Switch TO short timeout FOR ipc polling a SESSION (kjzha) IS registered *** 2011-05-14 18:54:55.828 ksedmp: internal OR fatal error ORA-00600: internal error code, arguments: [kjzhablar:idx], [1], [1], [0x9FFFFFFFFD343AB4], [], [], [], [] ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst()+64 CALL ksedst1() 000000000 ? 000000001 ? ksedmp()+2176 CALL ksedst() 000000000 ? C000000000000D20 ? 4000000003EC4A80 ? 000000000 ? 000000000 ? 000000000 ? ksfdmp()+112 CALL ksedmp() 000000003 ? 9FFFFFFFFFFFBB00 ? 60000000000AF0E0 ? 9FFFFFFFFFFFC0D0 ? C000000000000999 ? 4000000003F0CAF0 ? kgerinv()+304 CALL ksfdmp() 9FFFFFFFFFFFC660 ? 000000003 ? 9FFFFFFFFFFFC0E0 ? 60000000000AF0E0 ? C000000000000612 ? 40000000097509D0 ? kgeasnmierr()+144 CALL kgerinv() 60000000000318D0 ? 40000000019720C0 ? 6000000000032988 ? 40000000019720C0 ? 9FFFFFFFFFFFC6A0 ? kjzhablar()+1008 CALL kgeasnmierr() 60000000000318D0 ? 60000000002F0E78 ? 60000000002F0E88 ? 6000000000032D00 ? 000000000 ? |
这种有后台进程导致的ORA-600错误,多半和bug有关,查询MOS文档Bug 9062296 – DIAG process gets ORA-600[kjzhablar:idx] in RAC env [ID 9062296.8]描述的就是这个错误。在Rac环境的一个节点上DIAG进程出现这个ORA-600错误。
这个错误一般发生在读取V$SESSION的阻塞会话信息时,确认影响的版本是10.2.0.4正是当前的版本,Oracle将在解决这个bug的超集bug:9322219时将这个问题解决。因此这个bug在10.2.0.5.5中被修正。
Oracle给出的临时解决方案是通过设置隐含参数_diag_daemon为FLASE,来禁用DIAG进程。