ORA-600(4415)错误

客户的11.2的DATA GUARD数据库出现了这个错误。
一般DATA GUARD数据库出现错误的可能性不大,而ORA-600错误的可能性就更小了,而且一旦出现,多半意味着DATA GUARD环境损坏,轻则需要恢复,重则需要重建。
不过这个错误并没有那么大危害:

Fri Sep 16 17:57:13 2011
Errors IN file /u01/app/oracle/diag/rdbms/ora190/ora190/trace/ora190_ora_18743334.trc (incident=288185):
ORA-00600: 内部错误代码, 参数: [4415], [], [], [], [], [], [], [], [], [], [], []
Incident details IN: /u01/app/oracle/diag/rdbms/ora190/ora190/incident/incdir_288185/ora190_ora_18743334_i288185.trc
USE ADRCI OR Support Workbench TO package the incident.
See Note 411.1 at My Oracle Support FOR error AND packaging details.
System State dumped TO trace file /u01/app/oracle/diag/rdbms/ora190/ora190/incident/incdir_288185/ora190_ora_18743334_i288185.trc
Errors IN file /u01/app/oracle/diag/rdbms/ora190/ora190/trace/ora190_ora_18743334.trc (incident=288186):
ORA-00603: ORACLE 服务器会话因致命错误而终止
ORA-00600: 内部错误代码, 参数: [4415], [], [], [], [], [], [], [], [], [], [], []
Incident details IN: /u01/app/oracle/diag/rdbms/ora190/ora190/incident/incdir_288186/ora190_ora_18743334_i288186.trc
Fri Sep 16 17:57:20 2011
Dumping diagnostic DATA IN directory=[cdmp_20110916175720], requested BY (instance=1, osid=18743334), summary=[incident=288185].
Fri Sep 16 17:57:21 2011
Sweep [inc][288186]: completed
Sweep [inc][288185]: completed
Sweep [inc2][288185]: completed
opiodr aborting process UNKNOWN ospid (18743334) AS a RESULT OF ORA-603

查询metalink,发现导致问题的原因是对只读打开的STANDBY数据库执行了COMMIT操作,详细内容可以参考ID 9531380.8,这个Bug 9531380在11.2.0.3中将被解决。
查询详细信息,验证是否由于这个问题所致:

bash-3.2$ more incident/incdir_288186/ora1_ora_18743334_i288186.trc
Dump file /u01/app/oracle/diag/rdbms/ora1/ora1/incident/incdir_288186/ora1_ora_18743334_i288186.trc
Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
WITH the Partitioning, Automatic Storage Management, OLAP, DATA Mining
AND REAL Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1
System name:    AIX
Node name:      node1
Release:        1
Version:        6
Machine:        00F6D0DF4C00
Instance name: ora1
Redo thread mounted BY this instance: 1
Oracle process NUMBER: 23
Unix process pid: 18743334, image: oracle@node1
*** 2011-09-16 17:57:20.043
*** SESSION ID:(1634.93) 2011-09-16 17:57:20.043
*** CLIENT ID:() 2011-09-16 17:57:20.043
*** SERVICE NAME:() 2011-09-16 17:57:20.043
*** MODULE NAME:(TOAD 9.7.2.5) 2011-09-16 17:57:20.043
*** ACTION NAME:() 2011-09-16 17:57:20.043
Dump continued FROM file: /u01/app/oracle/diag/rdbms/ora1/ora1/trace/ora1_ora_18743334.trc
ORA-00603: ORACLE 服务器会话因致命错误而终止
ORA-00600: 内部错误代码, 参数: [4415], [], [], [], [], [], [], [], [], [], [], []
========= Dump FOR incident 288186 (ORA 603) ========
*** 2011-09-16 17:57:20.051
dbkedDefDump(): Starting incident DEFAULT dumps (flags=0x2, level=3, mask=0x0)
----- SQL Statement (None) -----
CURRENT SQL information unavailable - no cursor.
----- Call Stack Trace -----
calling              CALL     entry                argument VALUES IN hex      
location             TYPE     point                (? means dubious VALUE)     
-------------------- -------- -------------------- ----------------------------
skdstdst()+40        bl       107c8d960            FFFFFFFFFFF1DF8 ? 000002004 ?
                                                   000000001 ? 000000003 ?
                                                   000000000 ? 000000002 ?
                                                   000000001 ? 000000000 ?
ksedst1()+104        CALL     skdstdst()           FFFFFFFFFFF0E00 ? 000002004 ?
                                                   110A45A80 ? 109FD7514 ?
                                                   110A45A80 ? 000000000 ?
                                                   FFFFFFFFFFF0F30 ? 700000007 ?
ksedst()+40          CALL     ksedst1()            3030000000000 ? 002050033 ?
                                                   109FD7508 ? 700000000025C ?
                                                   000000000 ? 000000000 ?
                                                   109FD6B68 ? 000000000 ?
dbkedDefDump()+2828  CALL     ksedst()             FFFFFFFFFFF0FE0 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ? 300000003 ?
ksedmp()+76          CALL     dbkedDefDump()       310A45A80 ? 110001050 ?
                                                   FFFFFFFFFFF15E0 ?
                                                   28404040FFFF17BC ?
                                                   100148408 ? 109651628 ?
                                                   FFFFFFFFFFF1630 ? 11064B0D8 ?
ksfdmp()+88          CALL     ksedmp()             000000000 ? 000000000 ?
                                                   009651643 ? 10A7D6B10 ?
                                                   200000000000000 ? 000000000 ?
                                                   110C0C3D8 ? 110A45A80 ?
dbgexPhaseII()+1212  CALL     ksfdmp()             000002004 ? 110A45A80 ?
                                                   000000000 ? FFFFFFFFFFF17A8 ?
                                                   FFFFFFFFFFF16D0 ?
                                                   FFFFFFFFFFF1DF8 ? 1001D0358 ?
                                                   110C0C3D8 ?
dbgexProcessError()  CALL     dbgexPhaseII()       110A45A80 ? 110C0A5E8 ?
+3604                                              0000465BA ? 200000000 ?
                                                   FFFFFFFFFFF23A8 ? 00000007F ?
                                                   FFFFFFFFFFF4FB0 ?
                                                   2480442200000000 ?
dbgeExecuteForError  CALL     dbgexProcessError()  110A45A80 ? 110C0C3D8 ?
()+72                                              14FB82240 ? 02EDA2378 ?
                                                   70000054FB820D0 ?
                                                   7000005232EA080 ? 000000000 ?
                                                   110C0E120 ?
dbgePostErrorKGE()+  CALL     dbgeExecuteForError  FFFFFFFFFFF5830 ? 000000000 ?
1152                          ()                   100135724 ? 000000000 ?
                                                   000000000 ? 11064B0D8 ?
                                                   FFFFFFFFFFF5840 ? 000000000 ?
dbkePostKGE_kgsf()+  CALL     dbgePostErrorKGE()   FFFFFFFFFFF63D0 ? 1100010F8 ?
64                                                 25BFFFF6450 ?
                                                   2820402800000000 ?
                                                   1000CC71C ? 000000002 ?
                                                   02424A228 ? 02424A228 ?
kgeade()+812         CALL     dbkePostKGE_kgsf()   100047FA0 ? FFFFFFFFFFFA634 ?
                                                   10980D050 ? 000000048 ?
                                                   FFFFFFFFFFFA230 ? 10969BAE8 ?
                                                   FFFFFFFFFFF6698 ? 10A0626E8 ?
kgefec()+208         CALL     kgeade()             FFFFFFFFFFF65A0 ? 11067C838 ?
                                                   000000001 ? 11064B0D8 ?
                                                   FFFFFFFFFFF65A0 ? 11064B0D8 ?
                                                   70000054FB820D0 ?
                                                   7000005232EA080 ?
ktc_die()+168        CALL     kgefec()             1100010F8 ? 110CA2518 ?
                                                   0FFFF6BA0 ? 10A0626E8 ?
                                                   70000054C772AD0 ? 10A0626E8 ?
                                                   10A06274C ? 000000000 ?
k2send()+9004        CALL     ktc_die()            218B2B4B0 ? 100000000 ?
                                                   1103870F8 ? 110CB8608 ?
                                                   110CB8008 ? 110CB8648 ?
                                                   FFFFFFFFFFF6AE0 ? 11010AD68 ?
xctRollbackTxn()+11  CALL     k2send()             300000001 ? 10975AC10 ?
48                                                 000000000 ? 000000000 ?
                                                   FFFFFFFFFFF7768 ?
                                                   FFFFFFFFFFF773C ?
                                                   700000000003660 ? 000000080 ?
kpoltxen()+228       CALL     xctRollbackTxn()     000000000 ? FFFFFFFFFFF87D0 ?
                                                   000000000 ? 000000000 ?
                                                   000000001 ? 000000000 ?
                                                   000000006 ? 07FFFFFFF ?
kpotxen()+2016       CALL     kpoltxen()           FFFFFFFFFFF8770 ? 000000048 ?
                                                   FFFFFFFFFFF8800 ? 1100F88B8 ?
                                                   0000003CF ? 000000000 ?
                                                   700000518B2B4B0 ? 000000000 ?
opiodr()+3608        CALL     kpotxen()            100000000 ? 1103757E8 ?
                                                   FFFFFFFFFFF89D0 ?
                                                   4820402000000000 ?
                                                   100D7C570 ? 9001000A0082608 ?
                                                   9001000A000D4C8 ? 11064B0D8 ?
ttcpip()+4628        CALL     opiodr()             68FFFF9F30 ? C00000438 ?
                                                   FFFFFFFFFFFA480 ? 000200048 ?
                                                   FFFFFFFFFFF9F00 ? 000000000 ?
                                                   FFFFFFFFFFF9E50 ? 1101042F8 ?
opitsk()+6956        CALL     ttcpip()             1101041A8 ? 110A49138 ?
                                                   FFFFFFFFFFFA400 ?
                                                   4224244400000000 ?
                                                   100113A34 ? 000000000 ?
                                                   FFFFFFFFFFFA460 ? 1100056F8 ?
opiino()+3000        CALL     opitsk()             110043D10 ? 000000000 ?
                                                   110A45A80 ? FFFFFFFFFFFC560 ?
                                                   FFFFFFFFFFFE5AC ? 000000101 ?
                                                   FFFFFFFFFFFDF30 ?
                                                   FFFFFFFFFFFE5AC ?
opiodr()+3608        CALL     opiino()             3C00000000 ?
                                                   FFFFFFFFFFFD065 ?
                                                   FFFFFFFFFFFE9D0 ? 110AC738D ?
                                                   FFFFFFFFFFFD0C0 ? 000000000 ?
                                                   90000000001094C ? 0E0DDF00D ?
opidrv()+1200        CALL     opiodr()             3C08456C78 ? 47530312F ?
                                                   FFFFFFFFFFFE9D0 ? 01064B0D8 ?
                                                   7264626D732F6F72 ?
                                                   11064B0D8 ?
                                                   3139302F74726163 ?
                                                   652F6F7261313930 ?
sou2o()+192          CALL     opidrv()             3C06401934 ? 400000000 ?
                                                   FFFFFFFFFFFE9D0 ?
                                                   2B00CF0000 ? 0001A9F48 ?
                                                   000000000 ? 9001000A0071F98 ?
                                                   11064B0D8 ?
opimai_real()+428    CALL     sou2o()              FFFFFFFFFFFEA40 ?
                                                   BADC0FFEE0DDF00D ?
                                                   90000000004D38C ?
                                                   BADC0FFEE0DDF00D ?
                                                   000000002 ? 9001000A0082608 ?
                                                   A0000000A000000 ? 10ACFAA60 ?
ssthrdmain()+340     CALL     opimai_real()        FFFFFFFFFFFFFFFF ?
                                                   9001000A0399148 ?
                                                   FFFFFFFFFFFEB30 ?
                                                   9001000A0082608 ?
                                                   900000000001368 ?
                                                   9001000A00091C0 ?
                                                   FFFFFFFFFFFEB50 ?
                                                   9001000A0082608 ?
main()+216           CALL     ssthrdmain()         2F00035C0 ? FFFFFFFFFFFEE88 ?
                                                   FFFFFFFFFFFEEF0 ?
                                                   9FFFFFFF000C4C0 ?
                                                   9FFFFFFF0000A30 ? 000000000 ?
                                                   000000000 ? 9FFFFFFF000C4C0 ?
__start()+112        CALL     main()               000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ? 000000000 ?
--------------------- Binary Stack Dump ---------------------

从连接信息可以看出,是通过TOAD连接到数据库实例的,这说明事务可能是人为操作所致,虽然在SQL语句处没有任何信息,但是从Stack的dump中可以看到xctRollbackTxn函数,虽然Oracle并没有执行COMMIT,但是运行了ROLLBACK。在只读数据库中,COMMIT会导致错误的产生,那么回滚很可能导致相同的问题,在加上版本已经DATA GUARD中备库等环境,基本上可以确认问题了。
这个问题本身没有必要过多关注,因为在只读库上进行事务本身就存在问题。

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 *