Oracle 报错 ORA-00600 解决实例
Trace file /opt/oracle/app/oracle/diag/rdbms/SUSEora/suseora2/trace/suseora2_ora_36386.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORACLE_HOME = /opt/oracle/app/oracle/product/11.2.0/db
System name: Linux
Node name: usdprac2
Release: 2.6.32.12-0.7-default
Version: #1 SMP 2010-05-20 11:14:20 0200
Machine: x86_64
Instance name: suseora2
Redo thread mounted by this instance: 2
Oracle process number: 299
Unix process pid: 36386, image: oracle@usdprac2
*** 2017-05-08 15:39:49.842
*** SESSION ID:(2080.60679) 2017-05-08 15:39:49.842
*** CLIENT ID:() 2017-05-08 15:39:49.842
*** SERVICE NAME:(suseora) 2017-05-08 15:39:49.842
*** MODULE NAME:(JDBC Thin Client) 2017-05-08 15:39:49.842
*** ACTION NAME:() 2017-05-08 15:39:49.842
*** SESSION ID:(2080.60679) 2017-05-08 15:39:49.842
OBJD MISMATCH typ=35, seg.obj=-2, diskobj=8677570, dsflg=0, dsobj=489719, tid=489719, cls=4
DDE: Problem Key 'ORA 600 [ktecgsc:kcbz_objdchk]' was flood controlled (0x2) (incident: 227593)
ORA-00600: 内部错误代码, 参数: [ktecgsc:kcbz_objdchk], [0], [0], [1], [], [], [], [], [], [], [], []
Input data (nil), 0, 0
Formatted dump of block:
buffer tsn: 7 rdba: 0x0826fc91 (32/2555025)
scn: 0x00a2.032d48c7 seq: 0x02 flg: 0x04 tail: 0x48c72302
frmt: 0x02 chkval: 0xc05e type: 0x23=PAGETABLE SEGMENT HEADER
Hex dump of block: st=0, typ_found=1
查询:
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 (8677570, 489718) or object_id in (8677570, 489718);
2.查询段详细信息
select * from seg$ where file#=32 and block#=2555025;
3.查询相关数据文件
col name format a30
select name from v$datafile where file#=32;
4.查询表空间信息
select * from v$tablespace where ts#=7;
5.查询相关区信息
select owner,segment_name,partition_name,segment_type,block_id from dba_extents where relative_fno=32 and 2555025 between block_id and block_id blocks;
select owner,segment_name,partition_name,segment_type,block_id from dba_extents where block_id=;
原因:
经过MOS查询分析,该错误触发BUG:19689979 。
该BUG是由于truncate或者drop一个正在被访问的表分区导致。
触发该BUG的对象为:
SYS@suseora2> select OWNER,SEGMENT_NAME,PARTITION_NAME,SEGMENT_TYPE,BLOCK_ID from DBA_EXTENTS where RELATIVE_FNO=9 and 424849 between BLOCK_ID and BLOCK_ID BLOCKS; OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE BLOCK_ID ------------------------------ --------------------------------------------------------------------------------- ------------------------------ ------------------ ---------- USDPCENTER T_PERSONALLIB P42 TABLE PARTITION 424832
解决方案:
1.当出现问题时flush共享池。
2.修改隐含参数_part_access_version_by_number为false。(RAC需要将各个节点同时重启以修改该参数)
目前已经将flush共享池。flush之后没有发现该报错。