ORA-00600 [kcbgcur_3]
数据库版本为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)的方式,看来也有同样的问题
“我们的tablespace不是ASSM,是UNIFORM LMT”–这句话说的有问题。
@luzp
Typo error,其实我想说的是我们是采用MANUAL的方式,已改正,谢谢提醒