解决ORA-00600:[kcbgcur_3]一例 ,kcbgcur_3这个函数出现ORA-00600错误一般是告诉我们,当一个状态为”CURRENT”的cache buffer中存放的是程序所预期的数据地址,即TABLESPACE号和相关DBA(RDBA),但Oracle却发现这个block并不属于一个预期的OBJECT(实际是发现了不同的Data_object_id)。
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
这一般说明是数据出现了逻辑上的讹误,主要有几种原因造成这种问题:
- 严重的写丢失Lost Write造成逻辑上的不一致
- Oracle自身bug造成的逻辑上的不一致
在此例子中kcbgcur_3的相关argument为ORA-00600: internal error code, arguments: [kcbgcur_3], [91738], [1], [0], [0], [], [], [],而数据库版本为9.2.0.8, 参考附录的kcbgcur_3的argument信息详解,各argument的含义为
Arg [a] 91738 即对象的object_id
Arg [b] 1代表临时对象
通过91738这个object_id可以迅速定位到出错对象,根据不同的对象类型可以给与不同的修复手段。
此例子的stack call如下:
----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ---------------------------- ksedmp+0148 bl ksedst 102973B94 ? ksfdmp+0018 bl 01FD34D8 kgerinv+00e8 bl _ptrgl kgeasnmierr+004c bl kgerinv 000000079 ? 000000000 ? 000000000 ? 70000086D814308 ? 000000079 ? kcbassertsd4+010c bl kgeasnmierr 110006728 ? 1103FCB28 ? 10302D894 ? 400000004 ? 000000000 ? 00001665A ? 000000000 ? 000000001 ? kcbgcur+0b90 bl kcbassertsd4 FFFFFFFFFFE8150 ? 8448448400000000 ? 101083D80 ? 1101FB1D0 ? FFFFFFFFFFFF0000 ? 000000000 ? ktbgcur+0064 bl kcbgcur FFFFFFFFFFE8550 ? 11042B5B0 ? FFFFFFFFFFE8260 ? 000000010 ? kdislink+00ec bl ktbgcur 000000000 ? 000000000 ? 000000000 ? 110002E40 ? kdisle+3e8c bl kdislink 000000020 ? 110405C30 ? 70000087CC49528 ? 70000087CC48830 ? kdiins0+17a0 bl kdisle 700000884D0E400 ? FFFFFFFFFFE8C78 ? FFFFFFFFFFE8D60 ? 100000000000001 ? 2000000000002 ? 11041A738 ? FFFFFFFFFFFFFFFF ? 000000000 ? kauxsin+2088 bl kdiins0 700000884D0E400 ? 000000000 ? 000000B40 ? 000000000 ? 000000000 ? 000000000 ? 000000000 ? 2000000000000 ? insidx+08fc bl kauxsin 700000884D115B8 ? FFFFFFFFFFF86DC ? F2FFFFFFFF8530 ? 1103CEF18 ? 1103CEFA0 ? 1103CEFC8 ? 1103CEED8 ? 000000000 ? insflush+0204 bl insidx 700000884D1DEB0 ? insrow+01ec bl insflush 1103CEDF0 ? 000000000 ? 10009E1D4 ? FFFFFFFFFFF90A0 ? 000000000 ? insdrv+05f4 bl insrow 1103CEDF0 ? FFFFFFFFFFF90A0 ? 000000000 ? insexe+0648 bl insdrv 1103CEDF0 ? opiexe+1e44 bl insexe 700000884DCD2D8 ? 700000884DCCE88 ? opiodr+08cc bl _ptrgl ttcpip+0cc4 bl _ptrgl opitsk+0d60 bl ttcpip 11000D3B0 ? 000000000 ?
附录
关于kcbgcur_3 ORA-00600的详细信息,其报错argument的信息含义如下:
10gR2及以后是:
Arg [a] Object Id passed to the cache by the layer accessing the cache.
Arg [b] Class of the block.
Arg [c] Flags which define characteristics of buffer usage
Arg [d] 1 for a temporary object.
10gR1中的信息如下:
Arg [a] Object Id passed to the cache by the layer accessing the cache.
Arg [b] Class of the block.
Arg [c] 1 for a temporary object.
Oracle 9.X中的信息如下:
Arg [a] Object Id passed to the cache by the layer accessing the cache.
Arg [b] 1 for a temporary object.
Oracle 8.0.4到8.1.7中的信息如下:
Arg [a] Class of the block.
Arg [b] Tablespace number.
Arg [c] Relative DBA.
Arg [d] Object Id in the cache buffer at the time of the error.
Arg [e] Object Id passed to the cache by the layer accessing the cache. Indicates if this is a temporary or a permanent object.
Arg [f] In version 8.0.4 to 8.1.5, this is 1 for a permanent object. In version 8.1.6 and 8.1.7, this is 1 for a temporary object.
Oracle 8.0.3中的信息如下:
Arg [a] Class of the block.
Arg [b] Tablespace number.
Arg [c] Relative DBA.
Arg [d] Object Id in the cache buffer at the time of the error.
Arg [e] Object Id passed to the cache by the layer accessing the cache.
kcbgcur_3的相关BUG列表如下
13467683 11902008 11.2.0.2.BP15, 11.2.0.3.3, 11.2.0.3.BP04, 12.1.0.0 Join of temp and permanent tables in RAC might cause corruption of permanent table. Regression by bug 10352368 12.1.0.0 SMON may crash with ORA-00600 [kcbgcur_3] or ORA- 600 [kcbnew_3] during Transaction recovery 7227645 11.1.0.7, 11.2.0.1 OERI[kcbgcur_3]/OERI[kcb_check_objd_typ] during INSERT on freelist-managed segment 6444339 10.2.0.5, 11.2.0.1 Truncate/purge does not clean AQ dependencies properly 6337376 11.1.0.7 OERI:kcbgcur_3 / ORA-8103 after truncating a partition table with LOBs 5909305 11.1.0.6 Change to DML (TM) lock modes for foreign key constraints 5303237 11.1.0.6 ORA-600 [kcbgtcr_5] during create queue table 8778379 10.2.0.5 Fix event 10227 in 10.2 ORA-600[kcbgcur_3] or ORA- 600[kcbgcur_9] 3963135 10.1.0.5, 10.2.0.1 OERI[kcbgcur_3] / OERI:25027 during bitmap index updates 2784201 9.2.0.5, 10.1.0.2 OERI:[ktspfupdst-1] on INSERT into LOB after TRUNCATE with ASSM 3693283 9.0.1.0 TRUNCATE can cause SMON to crash the instance with OERI:[KTSF_RSP2] 1148416 8.1.6.1, 8.1.7.0 Buffer cache corruption can occur using GLOBAL TEMPORARY TABLES 689973 8.0.4.4, 8.0.5.1, 8.0.6.0 OERI:KCBGCUR_3 during DROP/CREATE table with concurrent queries.