ORA-600(krvxdds: duplicated session not)错误

在客户的告警日志中发现这个错误信息。
这个错误信息是第一次看到,而且在metalink中也没有找到任何相关的描述,详细的错误信息如下:

Fri Nov 19 11:47:47 2010
<krvrd.c:krvrdqgov>: Invalid dictionary process cntxt.
Fri Nov 19 11:47:47 2010
Errors IN file /oracle/db/admin/B1MODDB/udump/b1moddb1_ora_4488.trc:
ORA-00600: internal error code, arguments: [krvxdds: duplicated SESSION NOT ], [], [], [], [], [], [], []
ORA-01334: invalid OR missing logminer dictionary processes context
Fri Nov 19 11:48:05 2010
Trace dumping IS performing id=[cdmp_20101119114805]
Fri Nov 19 11:48:05 2010
Errors IN file /oracle/db/admin/B1MODDB/udump/b1moddb1_ora_4488.trc:
ORA-07445: exception encountered: core dump [lsfcln()+49] [SIGSEGV] [Address NOT mapped TO object] [0x4200757400696D65] [] []
ORA-00600: internal error code, arguments: [krvxdds: duplicated SESSION NOT ], [], [], [], [], [], [], []
ORA-01334: invalid OR missing logminer dictionary processes context

在ORA-600错误出现之前,报了一个C语言的错误,显然这是导致ORA-600错误的原因。分析ORA-600错误随后的ORA-1334错误,基本可以确定,根本错误原因是ORA-1334,而600错误是这个错误所引发的。

ORA-01334: invalid OR missing logminer dictionary processes context
Cause: Unexpected internal error condition
Action: NONE

而这个ORA-1334同样是一个内容错误,既没有解释错误原因,也没有说明解决方法。
继续检查对应的TRACE信息:

/oracle/db/admin/B1MODDB/udump/b1moddb1_ora_4488.trc
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
WITH the Partitioning, REAL Application Clusters, Oracle Label Security, DATA Mining
AND REAL Application Testing options
ORACLE_HOME = /oracle/db
System name: HP-UX
Node name: MODDB1
Release: B.11.23
Version: U
Machine: ia64
Instance name: B1MODDB1
Redo thread mounted BY this instance: 1
Oracle process NUMBER: 0
Unix process pid: 4488, image: oracle@MODDB1
 
Ioctl ASYNC_CONFIG error, errno = 1
/oracle/db/admin/B1MODDB/udump/b1moddb1_ora_4488.trc
Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
WITH the Partitioning, REAL Application Clusters, Oracle Label Security, DATA Mining
AND REAL Application Testing options
ORACLE_HOME = /oracle/db
System name: HP-UX
Node name: MODDB1
Release: B.11.23
Version: U
Machine: ia64
Instance name: B1MODDB1
Redo thread mounted BY this instance: 1
Oracle process NUMBER: 159
Unix process pid: 4488, image: oracle@MODDB1
*** ACTION NAME:() 2010-11-19 11:47:47.799
*** MODULE NAME:(TOAD 9.7.0.51) 2010-11-19 11:47:47.799
*** SERVICE NAME:(B1MODDB) 2010-11-19 11:47:47.799
*** SESSION ID:(473.17735) 2010-11-19 11:47:47.799
*** 2010-11-19 11:47:47.799
ksedmp: internal OR fatal error
ORA-00600: internal error code, arguments: [krvxdds: duplicated SESSION NOT ], [], [], [], [], [], [], []
ORA-01334: invalid OR missing logminer dictionary processes context
CURRENT SQL statement FOR this SESSION:
SELECT * FROM V$LOGMNR_CONTENTS 
----- 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 ?
                                                   4000000003EDCDE0 ?
                                                   000000000 ? 000000000 ?
                                                   000000000 ?
ksfdmp()+48          CALL     ksedmp()             000000003 ?
kgerinv()+304        CALL     ksfdmp()             C000000000000612 ?
                                                   000000003 ?
                                                   400000000938F250 ?
                                                   00001603B ? 000000000 ?
                                                   000000000 ?
kgeasnmierr()+144    CALL     kgerinv()            6000000000031370 ?
                                                   40000000018E6B10 ?
                                                   6000000000032428 ?
                                                   40000000018E6B10 ?
                                                   9FFFFFFFFFFF62E0 ?
krvxdds()+368        CALL     kgeasnmierr()        6000000000031370 ?
                                                   60000000001CF510 ?
                                                   60000000001CF520 ?
                                                   60000000000327A0 ?
                                                   40000000012AFBB0 ?
krvfpsc_PostSelectC  CALL     krvxdds()            9FFFFFFFBF3AABB0 ?
leanup()+432                                       9FFFFFFFFFFF6318 ?
                                                   C000000000000896 ?
                                                   4000000007161A50 ?
                                                   9FFFFFFFFFFF6308 ?
krvfcact()+4496      CALL     krvfpsc_PostSelectC  9FFFFFFFBF37A0B8 ?
                              leanup()             C0000000000013AE ?
                                                   4000000007162EC0 ?
                                                   0000160FB ?
                                                   9FFFFFFFBC8044A8 ?
                                                   9FFFFFFFFFFF6320 ?
                                                   9FFFFFFFFFFF6310 ?
qerfxFetch()+1040    CALL     krvfcact()           9FFFFFFFFFFF6930 ?
                                                   9FFFFFFFBEF80500 ?
                                                   9FFFFFFFFFFF6330 ?
                                                   C0000000000015B3 ?
                                                   0000000CA ?
                                                   9FFFFFFFBD480738 ?
                                                   4000000002D65350 ?
                                                   9FFFFFFFFFFF6330 ?
opifch2()+9632       CALL     qerfxFetch()         C0000002D9618B28 ?
                                                   4000000001AD7CF0 ?
                                                   9FFFFFFFFFFF6B90 ?
                                                   0000001F4 ?
                                                   60000000000AAC20 ?
                                                   C000000000001F46 ?
                                                   4000000002D43740 ?
                                                   000018371 ?
opifch()+112         CALL     opifch2()            9FFFFFFFFFFF7B50 ?
                                                   4000000002DBFA70 ?
                                                   000018287 ?

可以看到,导致错误产生的SQL是查询V$LOGMNR_CONTENTS视图的语句。除了这个错误信息外,还发现执行这个语句的客户端工具是TOAD:

   (FOB) flags=2 fib=c00000032fa3a498 incno=0 pending i/o cnt=0
     fname=/dev/vg12/rsystem
     fno=1 lblksz=8192 fsiz=397311
    ----------------------------------------
    SO: c00000033f60dfb0, TYPE: 4, owner: c00000033f45b248, flag: INIT/-/-/0x00
    (SESSION) sid: 473 trans: 0000000000000000, creator: c00000033f45b248, flag: (8000041) USR/- BSY/-/-/-/-/-
              DID: 0001-009F-00012412, short-term DID: 0001-009F-00012413
              txn branch: 0000000000000000
              oct: 3, prv: 0, SQL: c0000002967468c0, psql: c0000002eed195f0, USER: 0/SYS
    service name: B1MODDB
    O/S info: USER: Ly, term: LIYAN, ospid: 3404:2428, machine: MSHOME\LIYAN
              program: toad.exe
    application name: TOAD 9.7.0.51, hash VALUE=1244923487
    LAST wait FOR 'SQL*Net message from client' blocking sess=0x0000000000000000 seq=753 wait_time=16896447 seconds since wait started=18
                driver id=54435000, #bytes=1, =0

配合ORA-600的第一个错误参数:krvxdds: duplicated session not,怀疑可能是TOAD在运行LOGMNR命令时,使用了多个窗口或者指定的字典有误,从而导致了这个错误出现。在告警日志中,出现了多次的LOGMNR的相关信息,但是这个错误只出现了一次,而这个错误在metalink都找不到,也说明这个错误很难触发。看来这可能是工具或者会话状态不正常引起的错误,只需要重新连接数据库,错误就不会再现,而且对于数据库而言基本没有影响。

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 *