天天看点

ORA-00600: internal error code, arguments: [ktrgcm_3]

ORA-00600: internal error code, arguments: [ktrgcm_3]

本来今天晚上我打算进行oracle数据字典深入研究的,但是在我马上要研究完的时候收到在北京的一个朋友的消息,说是 他们的生成库出问题了,让我看一下帮忙解决一下,我是非常高兴的,帮助别人是我的快乐,同样也提高了自己,特此在此时此刻记录一下,写完这篇日志在继续我的研究。

trace日志信息如下:

dbfs/oradata/admin/htdb/udump/htdb_ora_704518.trc

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORACLE_HOME = /oracle/product/10.2.0.5

System name: AIX

Node name: ECMora01

Release: 3

Version: 5

Machine: 00C05BB64C00

Instance name: htdb

Redo thread mounted by this instance: 1

Oracle process number: 206

Unix process pid: 704518, image: [email protected]

*** SERVICE NAME:(SYS$USERS) 2013-06-17 08:43:14.002

*** SESSION ID:(1473.41629) 2013-06-17 08:43:14.002

*** 2013-06-17 08:43:14.001

ksedmp: internal or fatal error

ORA-00600: internal error code, arguments: [ktrgcm_3], [], [], [], [], [], [], []

Current SQL statement for this session:

select count(distinct id) from (   select ve.workflowid||'' as id   from v_executableworktask   ve left join T_DATA_ITEM appt on appt.value=ve.BUSSINESSTYPE and appt.deleted=0 and appt.cataid = 1101       where 1 = 1       and    ve.globalID in ('P{2266580}','O{411001700}','O{4110}','G{201111992}')                      and    ve.BUSINESSID in (                         SELECT C.id FROM T_CONTRACT_CONTENT C                  WHERE INSTR(C.GLOBALSN,:1) >0                               UNION              SELECT E.ID                       FROM T_CONTRACT_CONTENT C, CUECM.T_CONTRACT_DONE E                      WHERE E.AFFAIRID = C.AFFAIRID                                              AND INSTR(C.GLOBALSN,:2) >0             UNION                SELECT L.RELATIONID                       FROM T_CONTRACT_CONTENT C, T_APPROVE_LIST L                      WHERE L.DENYSIGN = 0                        AND L.TARGETID = C.ID                        AND INSTR(C.GLOBALSN,:3) >0                                   UNION                SELECT F.id FROM t_contract_file f,T_CONTRACT_CONTENT C                      WHERE f.contractId = C.ID                        AND INSTR(C.GLOBALSN,:4) >0                                   UNION                SELECT d.id FROM t_contract_dissension d,T_CONTRACT_CONTENT C                      WHERE c.id=d.contractid AND INSTR(C.GLOBALSN,:5) >0                                   )                          union      select t.pendingcode as id    from (                   select tab1.pendingcode, tab1.type as businessTypeId,tab2.name businessTypeName,                     tab1.senddate as starttime ,tab1.seandername,tab1.title             from t_approve_notify tab1             left join t_data_item tab2 on tab1.type = tab2.value and tab2.cataid = 1101 and tab2.deleted = 0            where tab1.flag=0    and     tab1.recieverid = :6             and     TAB1.BUSSINESSID in (                          SELECT C.id FROM T_CONTRACT_CONTENT C                  WHERE INSTR(C.GLOBALSN,:7) >0                               UNION              SELECT E.ID                       FROM T_CONTRACT_CONTENT C, CUECM.T_CONTRACT_DONE E                      WHERE E.AFFAIRID = C.AFFAIRID                                              AND INSTR(C.GLOBALSN,:8) >0             UNION                SELECT L.RELATIONID                       FROM T_CONTRACT_CONTENT C, T_APPROVE_LIST L                      WHERE L.DENYSIGN = 0                        AND L.TARGETID = C.ID                        AND INSTR(C.GLOBALSN,:9) >0                                   UNION                SELECT F.id FROM t_contract_file f,T_CONTRACT_CONTENT C                      WHERE f.contractId = C.ID                        AND INSTR(C.GLOBALSN,:10) >0                                   UNION                SELECT d.id FROM t_contract_dissension d,T_CONTRACT_CONTENT C                      WHERE c.id=d.contractid AND INSTR(C.GLOBALSN,:11) >0                                    )                                 )t where 1=1                  ) 

----- Call Stack Trace -----

calling              call     entry                argument values in hex     

location             type     point                (? means dubious value)    

-------------------- -------- -------------------- ----------------------------

ksedst+001c          bl       ksedst1              0FFFF5A20 ?

                                                   28844220058552A4 ?

ksedmp+0290          bl       ksedst               104C2B3D8 ?

ksfdmp+02d8          bl       03F4D8AC            

kgerinv+00dc         bl       _ptrgl              

kgeasnmierr+004c     bl       kgerinv              FFFFFFFFFFF6330 ? 1100096D8 ?

                                                   356A9A350C2D0000 ?

                                                   356A9B920C2D3E80 ?

                                                   356A9B920C2D3E80 ?

ktrgcm+1c44          bl       kgeasnmierr          11019C288 ? 1103F0040 ?

                                                   104F34564 ? 000000000 ?

                                                   000000C2D ?

                                                   356A9A350C2D96D8 ?

                                                   000000000 ? 1100096D8 ?

ktrget+05c0          bl       ktrgcm               110481450 ?

kdirfrs+09fc         bl       ktrget               1058540E0 ? 0000001C2 ?

                                                   09E370001 ?

qerixFetchFastFullS  bl       kdirfrs              FFFFFFFFFFF7E50 ?

can+0958                                          

qergiFetch+02a8      bl       03F4D2BC            

rwsfcd+0054          bl       _ptrgl              

qerhjFetch+00d0      bl       01FC340C            

rwsfcd+0054          bl       _ptrgl              

qeruaFetch+013c      bl       03F4D2BC            

qersoFetch+0110      bl       01FC340C            

qervwFetch+0088      bl       03F4D2BC            

rwsfcd+0054          bl       _ptrgl              

qerhjFetch+0674      bl       01FC340C            

rwsfcd+0054          bl       _ptrgl              

qerhjFetch+00d0      bl       01FC340C            

rwsfcd+0054          bl       _ptrgl              

qeruaFetch+013c      bl       03F4D2BC            

qersoFetch+0110      bl       01FC340C            

qervwFetch+0088      bl       03F4D2BC            

qergsFetch+0324      bl       03F4D2BC            

kpofrws+019c         bl       _ptrgl              

opifch2+13a4         bl       01FC633C            

opifch+003c          bl       opifch2              700000CB426AC6C ? 000000000 ?

                                                   FFFFFFFFFFF9E40 ?

opiodr+0b2c          bl       _ptrgl              

ttcpip+1020          bl       _ptrgl              

opitsk+117c          bl       01FC5F7C            

opiino+09d0          bl       opitsk               0FFFFD8F0 ? 000000000 ?

opiodr+0b2c          bl       _ptrgl              

opidrv+04a4          bl       opiodr               3C102B1A18 ? 404C7E2A8 ?

                                                   FFFFFFFFFFFF8B0 ? 0102B1A10 ?

sou2o+0090           bl       opidrv               3C02A0E6BC ? 440663000 ?

                                                   FFFFFFFFFFFF8B0 ?

opimai_real+01bc     bl       01FC1F54            

main+0098            bl       opimai_real          000000000 ? 000000000 ?

__start+0098         bl       main                 000000000 ? 000000000 ?

解决如下:

1)

Bug 14076510  ORA-600 [ktrgcm_3] in 10.2.0.5.3 - 10.2.0.5.7 This note gives a brief overview of bug 14076510.

The content was last updated on: 08-MAR-2013

Click here for details of each of the sections below.

Affects:

Product (Component) Oracle Server  (Rdbms)
Range of versions believed to be affected Versions >= 10.2.0.5 but BELOW 11.1
Versions confirmed as being affected
  • 10.2.0.5.7 Database Patch Set Update
  • 10.2.0.5.6 Database Patch Set Update
  • 10.2.0.5.5 Database Patch Set Update
  • 10.2.0.5.4 Database Patch Set Update
  • 10.2.0.5.3 Database Patch Set Update
  • 10.2.0.5
  • 10.2.0.5 Patch 18 on Windows Platforms
  • 10.2.0.5 Patch 17 on Windows Platforms
  • 10.2.0.5 Patch 8 on Windows Platforms
Platforms affected Generic (all / most platforms affected)

Fixed:

This issue is fixed in
  • 10.2.0.5.8 Database Patch Set Update
  • 10.2.0.5 Patch 19 on Windows Platforms
2)

Description

This problem is introduced in Database PSU version 10.2.0.5.3and can affect 10.2.0.5.3 through 10.2.0.5.7 inclusive. The problem can also occur with interim patch 6157713 installedon top of 10.2.0.5.3 through 10.2.0.5.5 inclusive. ORA-600 [ktrgcm_3] can occur in the above releases. Workaround  Disabling rowCR (which is an optimization to reduce consistent-read   rollbacks during queries) by setting "_row_cr"=FALSE in the   initialization files in one workaround. However, this could cause  performance degradation of queries - the statistics "RowCR hits" /   "RowCR attempts" can help show if this workaround may be detrimental  to performance. Note:  This issue was previously incorrectly listed as fixed in Windows 10.2.0.5 bundle 17  but the fix did not get included until bundle 19.

因此我们可以设置_row_cr这个隐含参数。如和设置该参数可以参考我写的《oracle之参数文件深入探究》