客户11.2.0.2 RAC for Solaris 10出现ORA-600错误。
错误信息为:
Fri May 11 14:22:45 2012 Errors IN file /oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_25552.trc (incident=194913): ORA-00600: 内部错误代码, 参数: [qerrmOStart2], [1740], [ORA-01740: 标识符中缺失双引号 ], [], [], [], [], [], [], [], [], [] Incident details IN: /oracle/diag/rdbms/orcl/orcl2/incident/incdir_194913/orcl2_ora_25552_i194913.trc Fri May 11 14:23:29 2012 Fri May 11 14:23:29 2012 Dumping diagnostic DATA IN directory=[cdmp_20120511142329], requested BY (instance=2, osid=25552), summary=[incident=194913].Use ADRCI OR Support Workbench t o package the incident. See Note 411.1 at My Oracle Support FOR error AND packaging details. Exception [TYPE: SIGSEGV, Stack Overflow] [ADDR:0x8] [PC:0x10611C144, qerrmOdcl()+36] [flags: 0x0, COUNT: 1] Errors IN file /oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_25552.trc (incident=194914): ORA-07445: 出现异常错误: 核心转储 [qerrmOdcl()+36] [SIGSEGV] [ADDR:0x8] [PC:0x10611C144] [Stack Overflow] [] ORA-00600: 内部错误代码, 参数: [qerrmOStart2], [1740], [ORA-01740: 标识符中缺失双引号 ], [], [], [], [], [], [], [], [], [] Incident details IN: /oracle/diag/rdbms/orcl/orcl2/incident/incdir_194914/orcl2_ora_25552_i194914.trc USE ADRCI OR Support Workbench TO package the incident. See Note 411.1 at My Oracle Support FOR error AND packaging details. Fri May 11 14:23:30 2012 Sweep [inc][194913]: completed Sweep [inc][194914]: completed Sweep [inc2][194913]: completed |
虽然这个操作在MOS没有相关描述,但是根据错误信息分析,这个ORA-600只是标识作用,真正的错误是随后参数中的ORA-1740错误。而这个错误信息更像是一个语句分析的错误。
$ more /oracle/diag/rdbms/orcl/orcl2/incident/incdir_194913/orcl2_ora_25552_i194913.trc Dump file /oracle/diag/rdbms/orcl/orcl2/incident/incdir_194913/orcl2_ora_25552_i194913.trc Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production WITH the Partitioning, REAL Application Clusters, OLAP, DATA Mining AND REAL Application Testing options ORACLE_HOME = /oracle/product/11.2.0/dbhome_1 System name: SunOS Node name: orcl2 Release: 5.10 Version: Generic_147440-02 Machine: sun4u Instance name: orcl2 Redo thread mounted BY this instance: 2 Oracle process NUMBER: 364 Unix process pid: 25552, image: oracle@orcl2 *** 2012-05-11 14:22:45.579 *** SESSION ID:(1590.33807) 2012-05-11 14:22:45.579 *** CLIENT ID:() 2012-05-11 14:22:45.579 *** SERVICE NAME:(orcl) 2012-05-11 14:22:45.579 *** MODULE NAME:(PL/SQL Developer) 2012-05-11 14:22:45.579 *** ACTION NAME:(SQL Window - NEW) 2012-05-11 14:22:45.579 Dump continued FROM file: /oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_25552.trc ORA-00600: 内部错误代码, 参数: [qerrmOStart2], [1740], [ORA-01740: 标识符中缺失双引号 ], [], [], [], [], [], [], [], [], [] ========= Dump FOR incident 194913 (ORA 600 [qerrmOStart2]) ======== *** 2012-05-11 14:22:45.606 dbkedDefDump(): Starting incident DEFAULT dumps (flags=0x2, level=3, mask=0x0) ----- Current SQL Statement for this session (sql_id=2z1m6fp3p7qjd) ----- SELECT o_no, c_state, d_state, D_CONTENT, O_TIME, o_id, O_NAME, l_name, l_order FROM (SELECT b.o_no,a.c_state,'' d_state, a.D_CONTENT,a.O_TIME,a.o_id,a.O_NAME, l_name,l_order, ROW_NUMBER() OVER(PARTITION BY a.O_ID ORDER BY a.O_TIME DESC) RN FROM T_O_D@DB_A A, T_B_O@DB_A B,t_b_o_l@db_a c WHERE A.O_ID = B.O_ID AND a.o_id = c.o_id AND A.O_TIME >= TRUNC(SYSDATE - 1) AND A.O_TIME < TRUNC(SYSDATE) AND NOT EXISTS (SELECT 1 FROM T_B_O_E@DB_A O WHERE O.O_ID = A.O AND O.O_TIME >= TRUNC(SYSDATE - 1) AND O.O_TIME < TRUNC(SYSDATE)) UNION ALL SELECT b.o_no,a.c_state, 'TK',a.s_remark,a.O_TIME,a.o_id,a.O_NAME, l_name,l_order, ROW_NUMBER() OVER(PARTITION BY a.O_ID ORDER BY a.O_TIME DESC) RN FROM T_B_O_E@DB_A A, T_B_O@DB_A B,t_b_o_l@db_a c WHERE A.O_ID = B.O_ID AND a.o_id = c.o_id AND A.O_TIME >= TRUNC(SYSDATE - 1) AND A.O_TIME < TRUNC(SYSDATE) AND b.r_time >= TRUNC(SYSDATE - 1) AND b.r_time < TRUNC(SYSDATE) AND b.p_state = '2' AND a.e_type = '14' UNION ALL SELECT b.o_no,a.c_state,'TD', a.s_remark,a.O_TIME,a.o_id,a.O_NAME, l_name,l_order, ROW_NUMBER() OVER(PARTITION BY a.O_ID ORDER BY a.O_TIME DESC) RN FROM T_B_O_E@DB_A A, T_B_O@DB_A B,t_b_o_l@db_a c WHERE A.O_ID = B.O_ID AND a.o_id = c.o_id AND A.O_TIME >= TRUNC(SYSDATE - 1) AND A.O_TIME < TRUNC(SYSDATE) AND b.c_tag = '1' AND a.e_type = '04' UNION ALL SELECT to_char(P_ID), STATE, DECODE(STATE, '1', 'S', '2', 'ZDTD'), NULL, U_TIME, NULL, NULL, NULL, NULL, 1 FROM T_B_B_I@DB_A A WHERE STATE IN ('1', '2') AND SCODE = 'EMAL' AND U_TIME >= TRUNC(SYSDATE - 1) AND U_TIME < TRUNC(SYSDATE)) WHERE rn = 1 ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst1()+96 CALL skdstdst() FFFFFFFF7FFEEED0 ? 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 ? FFFFFFFF7FFF3C28 ? 0018E0000 ? 10A6E35B8 ? 000001C00 ? dbgePostErrorKGE()+ CALL dbgeExecuteForError 10AE0C3FD ? 1320 () FFFFFFFFFEC0B62D ? 001050000 ? FFFFFFFF7FFF63D8 ? 001060000 ? 000000028 ? dbkePostKGE_kgsf()+ CALL dbgePostErrorKGE() 10C20AC90 ? 000000000 ? 44 FFFFFFFF7BE3A578 ? 000000000 ? 000000258 ? 00010C000 ? kgerinv_internal()+ CALL kgeadse() 10C20AC90 ? 72 FFFFFFFF7BC22F20 ? 000000258 ? 000002868 ? 10A6E4000 ? 00010A6E4 ? kgerinv()+40 CALL kgerinv_internal() 10C20AC90 ? 004EA2360 ? 10BC2F628 ? 000000258 ? 000000000 ? 000000002 ? kgesinv()+20 CALL kgerinv() 10C20AC90 ? FFFFFFFF7BC22F20 ? 10BC2F628 ? 000000002 ? FFFFFFFF7FFF7840 ? 000001400 ? ksesin()+92 CALL kgesinv() 10C20AC90 ? FFFFFFFF7BC22F20 ? 10BC2F628 ? 000000002 ? FFFFFFFF7FFF7840 ? 00010C212 ? OCIKSIN()+412 CALL ksesin() 10BC2F628 ? 10C212000 ? 00010C000 ? 00010C000 ? 00010C20A ? 00010C212 ? qerrmOStart()+516 CALL OCIKSIN() FFFFFFFFFFFFFFFF ? 0000006CC ? 10BC2F628 ? 00010BA9D ? 10BA9D890 ? FFFFFFFF7FFF786C ? qerrmStart()+1528 CALL qerrmOStart() 10E603CD58 ? FFFFFFFF7BC68170 ? 000000000 ? FFFFFFFF7DF91088 ? 000106000 ? FFFFFFFF7BC67F2C ? selexe0()+976 PTR_CALL qerrmStart() FFFFFFFF7BC68170 ? 000000003 ? 10E603CD58 ? FFFFFFFF7BC75250 ? 000000001 ? FFFFFFFF7DFBE5C8 ? opiexe()+11664 CALL selexe0() FFFFFFFF7BC367C8 ? 10C21FAE0 ? FFFFFFFF7BC41C90 ? 000000000 ? 10E60B2EE0 ? 10C21F000 ? kpoal8()+2368 CALL opiexe() 000000049 ? 000000003 ? FFFFFFFF7FFF9E8C ? 000000000 ? 000000000 ? 0BFFFFFFF ? opiodr()+1428 PTR_CALL kpoal8() 00000005E ? 00000001C ? FFFFFFFF7FFFD348 ? 00010C000 ? 10C20A000 ? 000001648 ? ttcpip()+1056 PTR_CALL opiodr() 00010A795 ? 00000001C ? 103EAD460 ? 00010A400 ? 000001400 ? 10C20A000 ? opitsk()+1528 CALL ttcpip() 000000000 ? 10A6C7694 ? 10C20AC90 ? FFFFFFFF7FFFD348 ? FFFFFFFF7FFFBD90 ? 10C221848 ? opiino()+1000 CALL opitsk() 10A6C7694 ? 10C226C98 ? 10C221654 ? 10C21F958 ? 000000000 ? 10C20A950 ? opiodr()+1428 PTR_CALL opiino() 00010C000 ? 10C2216D0 ? 10C2216D0 ? 000380000 ? 0000000EB ? FFFFFFFF7FFFECA0 ? opidrv()+1100 CALL opiodr() 10C221000 ? 000000004 ? 1035DD740 ? 00010C000 ? 000001400 ? 10C20A000 ? sou2o()+92 CALL opidrv() 00000003C ? 000000004 ? |
显然这是PL/DEVELOPER执行或解析语句的时候引发的问题,本质上是一个普通的编译错误,但是Oracle将其作为内部ORA-600错误报了出来。
对于这个错误可以简单的忽略。