说明:
本文整理自我的ITPUB博客,链接如下:
https://blog.itpub.net/29785807/viewspace-2104959/
环境说明:
数据库版本: Oracle 10.2.0.5.0
数据库服务器操作系统: Windows server 2008
问题现象:
业务人员在前台执行某些计算操作时, ORA-00600: 内部错误代码 , 参数 : [kcbchg1_14] ], [], [], [], [], [], [], [] ;
解决方案:
查看 alert 警告日志,查找对应的 trace 文件 ;
*** CLIENT ID:(ncMem01#WebContainer : 3) 2016-03-03 09:02:56.796
*** SESSION ID:(1075.1160) 2016-03-03 09:02:56.796
BH (00000003D8F89438) file #: 8 rdba: 0x0205ef69 ( 8 / 388969 ) class: 1 ba: 00000003D8244000
发现:问题出现在 8 号数据文件, 388969 块对应的对象上;
Block header dump: 0x0205ef69
Object id on Block? Y
seg/obj: 0x2c7d3 csc: 0x00.14d8d008 itc: 3 flg: E typ: 2 - INDEX
brn: 1 bdba: 0x205ef59 ver: 0x01 opc: 0
inc: 0 exflg: 0
发现:此对象类型为 INDEX;
找到触发此 bug 的 sql 语句如下:
Current SQL statement for this session:
INSERT INTO TAB_1(COL_1,COL_2,COL_3) VALUES(:1,:2,:3);
根据 MOS 查看,和 Bug 8255717 比较匹配,但没有提供解决方案;
解决方案:
找到具体出现问题的索引对象,进行删除重建索引,或者升级数据库,跳过此 BUG ;
一:通过 file_id 和 block_id 查找具体索引对象
select segment_name,owner,tablespace_name from dba_extents where 388969 between BLOCK_ID and BLOCK_ID+BLOCKS-1 and FILE_ID=8;
select index_name,table_name,column_name from user_ind_columns where index_name='INDEX_NAME';
二:删除重建该索引
select dbms_metadata.get_ddl('INDEX','INDEX_NAME','USER_NAME') from dual;
drop index ......;
create index ......;
参考: ORA-600 [kcbchg1_14] ( 文档 ID 1267223.1)
欢迎关注我的微信公众号"IT小Chen"