客户10.2.0.4 RAC出现大量的ORA-600[17059]错误。
错误信息如下:
Tue May 21 09:55:30 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] Tue May 21 09:55:32 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] Tue May 21 09:55:33 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] Tue May 21 09:55:34 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] Tue May 21 09:55:36 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] Tue May 21 09:55:37 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] Tue May 21 09:55:38 2013 Errors IN file /oraclelog/admin/orcl/bdump/orcl1_j000_307.trc: ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] |
详细TRACE信息如下:
*** 2013-07-03 08:16:46.382 *** ACTION NAME:() 2013-07-03 08:16:46.381 *** MODULE NAME:() 2013-07-03 08:16:46.381 *** SERVICE NAME:(SYS$USERS) 2013-07-03 08:16:46.381 *** SESSION ID:(460.3380) 2013-07-03 08:16:46.380 LIBRARY OBJECT HANDLE: handle=c000001349e9a160 mtx=c000001349e9a290(0) cdp=0 name= INSERT INTO T_R_P_OY@D_UH (S_NUM ,P_CODE ,E_CODE ,CODE_STATE , T_CATE ,O_TYPE_CODE ,P_KEY ,O_TIME , O_DEPART_ID ,O_STAFF_ID ,R_TIME ,REMARK , P_TYPE ,P_ID ,F_TYPE ,FOREGIFT ,RSV1 , RSV2 ,RSV3 ,RSV4 ,RSV5 ,RSV6 , W_CARD_TYPE ,S_CODE ,P_KEY_MODE) VALUES (:B25 ,:B24 ,:B23 ,:B22 , :B21 ,:B20 ,:B19 ,:B18 , :B17 ,:B16 ,:B15 ,:B14 , :B13 ,:B12 ,:B11 ,:B10 ,:B9 , :B8 ,:B7 ,:B6 ,:B5 ,:B4 , :B3 ,:B2 ,:B hash=191708dff85615cba49f2013927d9b70 TIMESTAMP=05-15-2013 16:56:26 namespace=CRSR flags=RON/KGHP/TIM/OBS/PN0/LRG/DBN/MTX/[104100c1] kkkk-dddd-llll=0000-0001-0001 LOCK=N pin=0 latch#=10 hpc=7ada hlc=7ada lwt=c000001349e9a208[c000001349e9a208,c000001349e9a208] ltm=c000001349e9a218[c000001349e9a218,c000001349e9a218] pwt=c000001349e9a1d0[c000001349e9a1d0,c000001349e9a1d0] ptm=c000001349e9a1e0[c000001349e9a1e0,c000001349e9a1e0] REF=c000001349e9a238[c000001349e9a238,c000001349e9a238] lnd=c000001349e9a250[c000001355aa6bf8,c0000013374654c8] LOCK OWNERS: LOCK USER SESSION COUNT mode flags -------- -------- -------- ----- ---- ------------------------ c00000133808f6f0 c00000103d35e2b0 c00000103d35e2b0 1 N [00] LIBRARY OBJECT: object=c000001346657eb8 TYPE=CRSR flags=EXS[0001] pflags=[0000] STATUS=VALD LOAD=0 CHILDREN: SIZE=32768 child# TABLE reference handle ------ -------- --------- -------- 0 c00000134fc4cf30 c00000134fc4cba0 c000001340160d80 1 c00000134fc4cf30 c000001363a76b48 c00000135dabf960 2 c00000134fc4cf30 c00000135a292320 c00000136988b450 3 c00000134fc4cf30 c000001337db37a0 c00000133487dac0 4 c00000134fc4cf30 c00000135dcf2be8 c000001346fd8448 . . . *** 2013-07-03 08:16:46.734 ksedmp: internal OR fatal error ORA-00600: 内部错误代码, 参数: [17059], [0xC000001346657EB8], [], [], [], [], [], [] No CURRENT SQL statement being executed. ----- PL/SQL Call Stack ----- object line object handle NUMBER name c000001331c31eb0 31 PROCEDURE U_T.P_D_P_O c000001339ef8bf0 1 anonymous block ----- 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 ? C000000000000C9F ? 4000000003FF5020 ? 000000000 ? 000000000 ? 000000000 ? ksfdmp()+48 CALL ksedmp() 000000003 ? kgeriv()+336 CALL ksfdmp() C000000000000695 ? 000000003 ? 400000000946EB60 ? 0000CF507 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? kgesiv()+192 CALL kgeriv() 6000000000031370 ? 6000000000032428 ? 40000000019EDB40 ? 000000001 ? 9FFFFFFFFFFEC3B8 ? kgesic1()+128 CALL kgesiv() 6000000000031370 ? 9FFFFFFFFD3114C0 ? 9FFFFFFFFD3114D0 ? 000000001 ? 9FFFFFFFFFFEC3B8 ? $cold_kgltba()+464 CALL kgesic1() 6000000000031370 ? 9FFFFFFFFD3114C0 ? 0000042A3 ? 000000002 ? C000001346657EB8 ? C000000000004F26 ? 4000000003351960 ? 0000CF54D ? kglhdgc()+608 CALL $cold_kgltba() 6000000000031370 ? C000001346657EB8 ? C0000013466581D8 ? C00000134F0E5288 ? 60000000000314E0 ? C0000013DE36F380 ? C00000134F0E5288 ? C0000013F2E679D0 ? kglget()+5536 CALL kglhdgc() 6000000000031370 ? C000001346657EB8 ? 9FFFFFFFFFFEC7EE ? 000000000 ? 000000000 ? 010010000 ? C0000013466581D8 ? 9FFFFFFFFFFEC478 ? kxsGetLookupLock()+ CALL kglget() 6000000000031370 ? 336 9FFFFFFFFFFEC7D0 ? 000000001 ? 000000003 ? 9FFFFFFFFD370460 ? kksfbc()+15568 CALL kxsGetLookupLock() 6000000000031370 ? 9FFFFFFFFD370438 ? 9FFFFFFFFFFEC7D0 ? C000000000001EC5 ? 4000000002EEFB60 ? 9FFFFFFFFD370458 ? 9FFFFFFFFD370460 ? 9FFFFFFFFFFEC7F8 ? kkspbd0()+1184 CALL kksfbc() 9FFFFFFFFFFED910 ? 400000000324E890 ? 0000C8213 ? 9FFFFFFFFFFEC5F4 ? 000000000 ? 000000000 ? C000001346657FD8 ? C000001346657FD8 ? kksParseCursor()+81 CALL kkspbd0() 000003F50 ? 000000003 ? 6 000080000 ? 60000000000C6208 ? 9FFFFFFFFD370418 ? 9FFFFFFFFD370570 ? 60000000000B5E18 ? opiosq0()+4320 CALL kksParseCursor() 9FFFFFFFFFFEDB80 ? C000000000001736 ? 4000000002E99F80 ? 9FFFFFFFFD3C1AB0 ? 0FFDFFFFF ? 60000000000C4BF0 ? 60000000000C4F48 ? 60000000000C4EE0 ? opipls()+3392 CALL opiosq0() 000000003 ? 9FFFFFFFFFFEE620 ? 4000000003009120 ? 00000F1DF ? 9FFFFFFFFFFEDA40 ? 60000000000B5E18 ? C00000000000224C ? 0000001ED ? opiodr()+2128 CALL opipls() 9FFFFFFFFFFEEF30 ? 4000000002E42BA0 ? 00000E09F ? 9FFFFFFFFFFEE680 ? 60000000000B5E18 ? 9FFFFFFFFFFEEA10 ? rpidrus()+352 CALL opiodr() 000000066 ? 000000006 ? 4000000001B01EC0 ? 0000046B0 ? 9FFFFFFFFFFEEF40 ? 60000000000B5E18 ? skgmstack()+288 CALL rpidrus() 9FFFFFFFFFFF1680 ? 9FFFFFFFFFFF10C0 ? 60000000000B5E18 ? 9FFFFFFFFFFF1640 ? C000000000000716 ? 4000000002E819C0 ? 00000E05F ? 9FFFFFFFFFFF1120 ? . . . |
报错为ORA-600(17059)的BUG有很多,不过根据报错堆栈信息以及ORA-600之前出现的LIBRARY CACHE信息,可以确认Bug 8922013 – OERI [17059] / excess child cursors for SQL referencing REMOTE objects [ID 8922013.8]描述的问题和当前一致。
当语句通过数据库链进行远端访问,可能会造成子游标无法重用,从而导致大量的ORA-600错误的出现。这个问题影响10.2.0.4和10.2.0.5,Oracle仍然没有彻底解决这个问题,事实上是在10.2.0.4中解决了Bug 4581334 Cursors accessing remote tables may be repeatedly rebuilt and not used的问题,而引发了当前的BUG。Oracle目前并没有给出一个解决方案,也没有明确哪个版本会修正这个问题。这是针对一些平台提供了单独的补丁,但是安装这个补丁意味着撤销对BUG 4581334的修正。
这个BUG并不会导致任何功能上的问题,但是可能会在短时间内生成大量的TRACE从而将ORACLE_BASE目录撑满。