Home > oracle > ORA-00600 [kcbgcur_3]

ORA-00600 [kcbgcur_3]

April 7th, 2009

数据库版本为10.2.0.3,alert.log中出现大量的ORA-00600 [kcbgcur_3]错误

ORA-00600: internal error code, arguments: [kcbgcur_3], [442859], [12], [0], [0], [], [], []

metalink上对于改错误的解释为,在buffer cache中状态为”current”的块所对应的obj(data object id)不对

10g版本中第二个parameter为上一层传入的data_object_id,这里是442859

而查询x$bh,其对于的data_object_id为439465

SQL> select FILE# ,DBABLK,tch,obj,state from x$bh where file#=90 and dbablk =239370;

FILE# DBABLK TCH OBJ STATE
———- ———- ———- ———- ———-
90 239370 1 439465 1

解决方案为停止应用flush buffer cache,将block flush出去后,重新读进来data_object_id就对了。

这个错误是由truncate引起的,truncate后data_object_id被改变,但是buffer cache中没有被更新,应该是oracle的bug。

Subject: Bug 2784201 – OERI:[ktspfupdst-1] on INSERT into LOB after TRUNCATE with ASSM

我们的tablespace不是ASSM,是采用MANUAL(freelist)的方式,看来也有同样的问题

Eagle Fan oracle

  1. luzp
    April 20th, 2009 at 23:08 | #1

    “我们的tablespace不是ASSM,是UNIFORM LMT”–这句话说的有问题。

  2. Eagle Fan
    April 22nd, 2009 at 14:47 | #2

    @luzp

    Typo error,其实我想说的是我们是采用MANUAL的方式,已改正,谢谢提醒

  1. No trackbacks yet.