ORA-600(15160)错误

客户数据库中发现了这个错误。
在告警日志中错误如下:

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 ?
--------------------- Binary Stack Dump ---------------------

错误发生在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语句执行计划的改变,因此在确认修改前应谨慎。

This entry was posted in BUG and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *