这个错误比较罕见,无论是GOOGLE还是METALINK都找不到任何的相关信息。
数据库版本是11.2.0.2 RAC环境,这个错误之所以这么罕见,也和11.2的版本太新,以致于很多问题都还没有暴露出来有关。
错误信息为:
2012-03-29 04:06:02.353000 +08:00 Errors IN file /oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18355.trc (incident=144401): ORA-00600: internal error code, arguments: [kglobpn-bad-pga], [], [], [], [], [], [], [], [], [], [], [] Incident details IN: /oracle/diag/rdbms/orcl/orcl1/incident/incdir_144401/orcl1_ora_18355_i144401.trc 2012-03-29 04:10:12.017000 +08:00 Dumping diagnostic DATA IN directory=[cdmp_20120329041012], requested BY (instance=1, osid=18355), summary=[incident=144401]. USE ADRCI OR Support Workbench TO package the incident. See Note 411.1 at My Oracle Support FOR error AND packaging details. 2012-03-29 04:10:13.750000 +08:00 Sweep [inc][144401]: completed Sweep [inc2][144401]: completed |
详细的TRACE信息为:
*** 2012-03-29 04:06:02.385 *** SESSION ID:(106.45) 2012-03-29 04:06:02.385 *** CLIENT ID:() 2012-03-29 04:06:02.385 *** SERVICE NAME:(orcl) 2012-03-29 04:06:02.385 *** MODULE NAME:(PL/SQL Developer) 2012-03-29 04:06:02.385 *** ACTION NAME:(Main SESSION) 2012-03-29 04:06:02.385 Dump continued FROM file: /oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18355.trc ORA-00600: internal error code, arguments: [kglobpn-bad-pga], [], [], [], [], [], [], [], [], [], [], [] ========= Dump FOR incident 144401 (ORA 600 [kglobpn-bad-pga]) ======== *** 2012-03-29 04:06:02.426 dbkedDefDump(): Starting incident DEFAULT dumps (flags=0x2, level=3, mask=0x0) ----- Current SQL Statement for this session (sql_id=8m7jgqrwrtyj1) ----- CREATE OR REPLACE TRIGGER N_TRIGGER AFTER INSERT OR UPDATE ON T FOR EACH ROW DECLARE . . . END; ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst1()+96 CALL skdstdst() FFFFFFFF7FFEED60 ? 1006B0C80 ? 000000000 ? 00000000A ? 000000001 ? 10BD95B00 ? ksedst()+60 CALL ksedst1() 000000000 ? 000000001 ? 00010C212 ? 00010C000 ? 10C20A000 ? 00010C20A ? dbkedDefDump()+2032 CALL ksedst() 000000000 ? 10B25B000 ? 10B25B2B0 ? 10C212000 ? 00010B000 ? 00010C212 ? dbgexPhaseII()+1800 PTR_CALL dbkedDefDump() 000000003 ? 000000002 ? 10A6EC2C8 ? 0000014B0 ? 10C20A000 ? 000000003 ? dbgexProcessError() CALL dbgexPhaseII() 10C3B4650 ? +1248 FFFFFFFF7BE3A578 ? FFFFFFFF7FFF3AB8 ? 0018E0000 ? 10A6E35B8 ? 000001C00 ? dbgePostErrorKGE()+ CALL dbgeExecuteForError 10AE0C3FD ? 1320 () FFFFFFFFFEC0B62D ? 001050000 ? FFFFFFFF7FFF6268 ? 001060000 ? 000000028 ? dbkePostKGE_kgsf()+ CALL dbgePostErrorKGE() 10C20AC90 ? 000000000 ? 44 FFFFFFFF7BE3A578 ? 000000000 ? 000000258 ? 00010C000 ? kgerinv_internal()+ CALL kgeadse() 10C20AC90 ? 72 FFFFFFFF7D1042C0 ? 000000258 ? 000002868 ? 10A6E4000 ? 00010A6E4 ? kgerinv()+40 CALL kgerinv_internal() 10C20AC90 ? 004EA2360 ? 10BDED4D0 ? 000000258 ? 000000000 ? 000000000 ? kgeasnmierr()+28 CALL kgerinv() 10C20AC90 ? FFFFFFFF7D1042C0 ? 10BDED4D0 ? 000000000 ? FFFFFFFF7FFF7630 ? 000001400 ? kglobpn()+2972 CALL kgeasnmierr() 10C20AC90 ? FFFFFFFF7D1042C0 ? 10BDED4D0 ? 000000000 ? 0000060A6 ? 00000005B ? kglpim()+444 CALL kglobpn() FFFFFFFFFFBEC700 ? 10C20AC90 ? 0000020BE ? 000000000 ? CF6AF45C8 ? D163B01D0 ? kktcrt()+1204 CALL kglpim() 000001154 ? FFFFFFFF7FFF7EC8 ? D163B01D0 ? 000000002 ? 000000006 ? 00000004E ? opiexe()+24660 CALL kktcrt() 000006000 ? FFFFFFFF7BC19328 ? D1772AAE0 ? 10C20A950 ? FFFFFFFF7BC190C0 ? 000000002 ? opiosq0()+6416 CALL opiexe() 000000004 ? 000000000 ? FFFFFFFF7FFFA43C ? 00010A6E3 ? 10A6E3000 ? FFFFFFFF7FFF9E10 ? kpooprx()+232 CALL opiosq0() 00000004A ? 00000000E ? FFFFFFFF7FFFA600 ? 0000000A4 ? 00010A6E3 ? 10C20AC90 ? kpoal8()+3884 CALL kpooprx() FFFFFFFF7FFFDF3C ? FFFFFFFF7DFD0660 ? 0000015EC ? 0000000A4 ? 00010C000 ? 0000000A4 ? opiodr()+1428 PTR_CALL kpoal8() 00000005E ? 00000001C ? FFFFFFFF7FFFDF38 ? 00010C000 ? 10C20A000 ? 000001648 ? ttcpip()+1056 PTR_CALL opiodr() 00010A795 ? 00000001C ? 103EAD460 ? 00010A400 ? 000001400 ? 10C20A000 ? opitsk()+1528 CALL ttcpip() 000000000 ? 10A6C7694 ? 10C20AC90 ? FFFFFFFF7FFFDF38 ? FFFFFFFF7FFFC980 ? 10C221848 ? opiino()+1000 CALL opitsk() 10A6C7694 ? 10C226C98 ? 10C221654 ? 10C21F958 ? 000000000 ? 10C20A950 ? opiodr()+1428 PTR_CALL opiino() 00010C000 ? 10C2216D0 ? 10C2216D0 ? 000380000 ? 0000000E9 ? FFFFFFFF7FFFF890 ? opidrv()+1100 CALL opiodr() 10C221000 ? 000000004 ? 1035DD740 ? 00010C000 ? 000001400 ? 10C20A000 ? sou2o()+92 CALL opidrv() 00000003C ? 000000004 ? FFFFFFFF7FFFF890 ? 0001EB250 ? FFFFFFFF7C945110 ? FFFFFFFF7FFFFC98 ? opimai_real()+304 CALL sou2o() FFFFFFFF7FFFF868 ? 00000003C ? 000000004 ? FFFFFFFF7FFFF890 ? 00010C000 ? 00010B800 ? ssthrdmain()+320 PTR_CALL opimai_real() 000000000 ? FFFFFFFF7FFFFB38 ? FFFFFFFF7F900768 ? 00010B800 ? 000000001 ? 000000002 ? main()+308 CALL ssthrdmain() 00010C000 ? 000000002 ? 00044D000 ? 100644B40 ? 10C230000 ? 00010C230 ? _start()+380 CALL main() 000000002 ? FFFFFFFF7FFFFC48 ? 000000000 ? FFFFFFFF7FFFFB48 ? FFFFFFFF7FFFFC58 ? FFFFFFFF7DB00200 ? --------------------- Binary Stack Dump --------------------- |
显然这是利用PL/SQL Developer在创建一个触发器,由于触发器的内容很长,这里将其省略了。
虽然没有MOS的佐证,但是不难判断,问题处在PL/SQL Developer在编译触发器时与Oracle的配合上。虽然不能确定问题导致的原因就是Developer,但是这个错误的产生肯定与工具有关,因为很多罕见的错误都是工具引入的,而Develper引入的ORA-7445和ORA-600错误我这个几乎不用工具的人都已经碰到很多个了,难免这个问题不是Developer与最新版的ORACLE不兼容所致。