1. 环境信息
系 统 版 本: RHEL 6.7
数据库版本: 11.2.0.4.0
架 构: RAC
数据库补丁: N/A
2. 问题现象
开发老师反应应用报ORA-00600错误:
ORA-00600: internal error code, arguments: [ktecgsc:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], []复制
3. 问题分析
3.1 登录服务器检查alert日志
发现节点2的alter日志报大量ORA-00600:[ktecgsc:kcbz_objdchk]错误,节点1并未出现此错误。
3.2 检查Trace文件信息
搜索百度,查到一篇记录相似报错博客文章,依据文章步骤进行trace文件中信息确认。
文章链接:https://blog.csdn.net/weixin_39867327/article/details/116542041
1.查询相关段信息
col owner format a10
col object_name format a30
select object_id, data_object_id, owner, object_name, object_type from dba_objects where data_object_id in(6353769, 6351075) or object_id in (6353769, 6351075);
2.查询段详细信息
select * from seg$ where file#=36 and
block#=546106;
3.查询相关数据文件
col name format a30
select name from v$datafile where file#=36;
4.查询表空间信息
select * from v$tablespace wherets#=36;
5.查询相关区信息
select
owner,segment_name,partition_name,segment_type,block_id from dba_extents where
relative_fno=36 and 546106 between block_id and block_id+blocks;
4. 问题原因:
经过MOS查询分析,该错误触发BUG:19689979。
该BUG是由于truncate或者drop一个正在被访问的表分区导致。
触发该BUG的对象为:
select
owner,segment_name,partition_name,segment_type,block_id from dba_extents where
relative_fno=36 and 546106 between block_id and block_id+blocks;
5. 解决方案:
1.当出现问题时flush共享池。
2.修改隐含参数 _part_access_version_by_number为false。(RAC需要将各个节点同时重启以修改该参数)。
3.安装补丁至 11.2.0.4.170718
(Jul 2017) Database Patch Set Update (DB PSU)。