当前位置: DBARoad > 故障案例 > 文章正文

一个有意思的ORA-600错误

                    作者 :OoNiceDream【转载时请务必以超链接形式标明文章原始出处和作者信息】
                    链接:http://www.dbaroad.me/archives/2008/11/ora-600-kcbgcur_6.html

在执行一个存储过程,报了个ORA 600错误:

ORA-00600: internal error code, arguments: [kcbgcur_6], [8], [], [], [], [], [], []

而且在其它29个库都执行成功了,只在DB27上报错,alter log内容:

Errors in file /app/oracle/admin/DB27/udump/DB27_ora_10140.trc:
ORA-00600: internal error code, arguments: [kcbgcur_6], [8], [], [], [], [], [], []


查看TRC文件,发现是在这句SQL上报错:

INSERT INTO ARBOR.CONTRACT_TYPES VALUES(51453,9,'','',-3,2400,51453,'','','',1,91453,'',-1,'',TO_DATE ('1949-01-01', 'YYYY-MM-DD'),'
','','',0,'',1,'', '','',0,0,0,0,0,0,0,0,1,0,0,0,'',-1,'',-1,'',0,0,1)

单独执行该语句,仍报相同的ORA-600错。

查METALINK,没找到跟咱这个相关的BUG,只发现一段比较像 Bug# 2329551

In memory cache information is not updated on EXCHANGE PARTITION
for an IOT with LOB columns resulting in internal errors
such as ora-600 [kcbgcur_6] when accessing the IOT after the
exchange operation.

Workaround:
alter system flush shared_pool

可惜这张CONTRACT_TYPES很普通,没有LOB字段,非分区表。
尝试

sys@DB27>alter system flush shared_pool;

System altered.

sys@DB27>INSERT INTO arbor.contract_types VALUES(51454,9,”,”,-3,2400,51454,”,”,”,1,91454,”,-1,”,TO_DATE (’1949-01-01′, ‘YYYY-MM-DD’),
2 ”,”,”,0,”,1,”, ”,”,0,0,0,0,0,0,0,0,1,0,0,0,”,-1,”,-1,”,0,0,1);
INSERT INTO arbor.contract_types VALUES(51454,9,”,”,-3,2400,51454,”,”,”,1,91454,”,-1,”,TO_DATE (’1949-01-01′, ‘YYYY-MM-DD’),
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcbgcur_6], [8], [], [], [], [], [], []

仍报错

又找到另一个BUG说明,Bug 1777175 – OERI:kcbgcur_12 / OERI:kcbgcur_6 / OERI:kclchkinteg_1 accessing a table which is being DROPPED

Buffer cache internal errors ORA-600 [kcbgtcr_12],
ORA-600 [kcbgcur_6] and ORA-600 [kclchkinteg_1] may
be raised during Selects or DML operations.
This problem can occur if one session is accessing a table
when that table gets dropped.

There is no corruption involved from this bug.

查询数据库是否有DDL操作:

sys@DB27>@get_ddl;
 
no rows selected

没有DDL操作,这里提到个BUFFER CACHE,想想尝试一下把BUFFER CACHE FLASH一下好了。

sys@DB27>alter session set events 'immediate trace name flush_cache level 1';
 
Session altered.
 
sys@DB27>INSERT INTO arbor.contract_types VALUES(51454,9,'','',-3,2400,51454,'','','',1,91454,'',-1,'',TO_DATE ('1949-01-01', 'YYYY-MM-DD'),
  2  '','','',0,'',1,'', '','',0,0,0,0,0,0,0,0,1,0,0,0,'',-1,'',-1,'',0,0,1);
 
1 row created.
 
sys@DB27>rollback;
 
Rollback complete.
 
sys@DB27>

居然成功了,再次执行脚本,成功。
一个小小的病急乱投医思路。

— The End —

关键字:
喜欢DBARoad的文章,那就通过 RSS Feed 功能订阅阅读吧!

才1个评论

  1. geirou 说:

    甲骨文看不懂

    以后教教我啊

    [回复]

我要评论

*

* 绝不会泄露


  • 订阅


      抓虾
      google reader
      my yahoo
      bloglines
      鲜果
      有道

站内搜索



返回首页 | 关于我 | 联系我 | 广告合作 | 网站地图 | 友情链接 | 版权声明 |