问题描述
客户数据库中发现了这个错误。
在告警日志中错误如下:
Wed Nov 2 11:13:17 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:13:36 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:13:44 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:13:47 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:14:14 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:14:18 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:15:39 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] Wed Nov 2 11:15:43 2011 Errors IN file /oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc: ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []
专家解答
对应的TRACE文件详细信息:
/oracleapp/oracle10g/admin/ora10/udump/ora10_ora_9007.trc Oracle DATABASE 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production WITH the Partitioning, OLAP AND DATA Mining options ORACLE_HOME = /oracleapp/oracle10g System name: HP-UX Node name: wfrb1 Release: B.11.31 Version: U Machine: ia64 Instance name: ora10 Redo thread mounted BY this instance: 1 Oracle process NUMBER: 511 Unix process pid: 9007, image: oracleora10@wfrb1 *** ACTION NAME:() 2011-11-02 11:13:17.618 *** MODULE NAME:(TOAD 8.0.0.47) 2011-11-02 11:13:17.618 *** SERVICE NAME:(ora10) 2011-11-02 11:13:17.618 *** SESSION ID:(508.11184) 2011-11-02 11:13:17.618 *** 2011-11-02 11:13:17.618 ksedmp: internal OR fatal error ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], [] CURRENT SQL statement FOR this SESSION: SELECT o.object_name, o.object_type, o.STATUS, t.typecode, t.attributes, t.methods FROM SYS.DBA_TYPES t, SYS.DBA_OBJECTS o WHERE o.owner = :own AND o.owner = t.owner AND o.object_type = 'TYPE' AND o.object_name = t.type_name AND o.subobject_name IS NULL ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst()+64 CALL _etext_f()+23058430 000000000 ? 000000001 ? 09017162224 ksedmp()+1680 CALL _etext_f()+23058430 000000000 ? 09017162224 C000000000000D20 ? 40000000052B0470 ? 000000000 ? 000000000 ? 000000000 ? ksfdmp()+48 CALL _etext_f()+23058430 000000003 ? 09017162224 kgeriv()+432 CALL _etext_f()+23058430 400000000944FAD0 ? 09017162224 000000003 ? C000000000000695 ? 000060E0F ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? kgesiv()+176 CALL _etext_f()+23058430 6000000000015C50 ? 09017162224 6000000000016D08 ? 600000000011C078 ? 6000000000014240 ? 9FFFFFFFFFFEE9A8 ? ksesic0()+192 CALL _etext_f()+23058430 6000000000015C50 ? 09017162224 9FFFFFFFBF561168 ? 000003B38 ? 000000000 ? 9FFFFFFFFFFEE9A8 ? $cold_kkogfp()+608 CALL _etext_f()+23058430 000003B38 ? 09017162224 6000000000127450 ? 9FFFFFFFFFFEE9A8 ? 6000000000127B20 ? kkooqb()+2112 CALL _etext_f()+23058430 9FFFFFFFBF0FFE88 ? 09017162224 9FFFFFFFBF0EEA28 ? 000000001 ? 9FFFFFFFBF0EE468 ? kkoqbc()+2912 CALL 0000000000000002 9FFFFFFFBF2C32E0 ? 000000006 ? 000000002 ? 000000000 ? apakkoqb()+384 CALL 9fffffffbf2c3420 9FFFFFFFFFFF07B0 ? 9FFFFFFFBF2C32E0 ? 600000000011D1C0 ? 4000000003340880 ? 000060209 ? apaqbd()+800 CALL 9fffffffbf2c3420 9FFFFFFFFFFF07B0 ? 9FFFFFFFBF2C32E0 ? C00000019486D370 ? 40000000033402C0 ? 000000000 ? kkqctCostTransfQB() CALL 9fffffffbf2c3420 9FFFFFFFFFFF07B0 ? +432 9FFFFFFFBF2C32E0 ? C00000019486D370 ? 000000000 ? kkqctdrvJP()+2384 CALL 9fffffffbf2c3420 9FFFFFFFBF2C32E0 ? 40000000021D41C0 ? 000069409 ? 9FFFFFFFFFFF07B0 ? kkqjpdttr()+3472 CALL 0000000000069409 9FFFFFFFBF358D10 ? 000000100 ? kkqctdrvTD()+944 CALL 0000000000069409 9FFFFFFFBF358D10 ? 4000000003400AD0 ? 00006870D ? 000000000 ? 000000001 ? kkqjpddrv()+384 CALL 0000000000069409 9FFFFFFFBF557690 ? C00000019486D370 ? 9FFFFFFFFFFF07FC ? kkqdrv()+992 CALL 0000000000069409 9FFFFFFFBF557690 ? 60000000001274D4 ? 000000000 ? 400000000320AE60 ? 6000000000127434 ? 00006858F ? kkqctdrvIT()+768 CALL 0000000000069409 9FFFFFFFBF557690 ? 9FFFFFFFBF557710 ? . . . main()+352 CALL _etext_f()+23058430 000000000 ? 09017120608 9FFFFFFFFFFFF110 ? main_opd_entry()+80 CALL _etext_f()+23058430 000000002 ? 09017120608 9FFFFFFFFFFFF5C0 ? C000000000033910 ? 000000000 ?
错误发生在Oracle的递归调用语句,在查询DBA_TYPES和DBA_OBJECTS视图时报错。
检查了MOS发现,这个错误的描述为:Ora-600 [15160] Joining Dba_objects and Dba_segments [ID 351092.1]。导致这个问题的原因是两个包含UNION ALL的视图关联。
当前版本是10202,这个bug在10.2.0.3以上的版本被解决。
除了打补丁之外,还可以通过设置隐含参数来解决这个问题:设置_optimizer_cost_based_transformation为off或者_optimizer_push_pred_cost_based为false,同样可以避免这个问题。不过这种和优化器相关的隐含参数的修改,可能会对执行计划的优化产生不利影响,因此修改后有可能造成少部分SQL语句执行计划的改变,因此在确认修改前应谨慎。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。