转载

解决ORA-00600:[kcbgcur_3]一例

解决ORA-00600:[kcbgcur_3]一例 ,kcbgcur_3这个函数出现ORA-00600错误一般是告诉我们,当一个状态为”CURRENT”的cache buffer中存放的是程序所预期的数据地址,即TABLESPACE号和相关DBA(RDBA),但Oracle却发现这个block并不属于一个预期的OBJECT(实际是发现了不同的Data_object_id)。

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 400-690-3643   备用电话: 18501767907    邮箱:service@parnassusdata.com

这一般说明是数据出现了逻辑上的讹误,主要有几种原因造成这种问题:

  1. 严重的写丢失Lost Write造成逻辑上的不一致
  2. 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.
正文到此结束
Loading...