1、查看alert log 报错如下:
Thu Nov 7 17:21:27 2013
Errors in file /eas2/oracle/oraeas/udump/oraeas_ora_12596.trc:
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
Thu Nov 7 17:21:33 2013
Errors in file /eas2/oracle/oraeas/bdump/oraeas_j001_22164.trc:
Thu Nov 7 17:21:37 2013
Errors in file /eas2/oracle/oraeas/udump/oraeas_ora_12596.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
2、查看对应trc文件报错如下:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/ora10g/oracle/product/10.2.0
System name: SunOS
Node name: oracle
Release: 5.10
Version: Generic_127127-11
Machine: sun4u
Instance name: oraeas
Redo thread mounted by this instance: 1
Oracle process number: 55
Unix process pid: 10499, image: oracle@oracle (TNS V1-V3)
*** 2013-11-07 17:12:58.074
*** ACTION NAME:() 2013-11-07 17:12:58.073
*** MODULE NAME:(sqlplus@oracle (TNS V1-V3)) 2013-11-07 17:12:58.073
*** SERVICE NAME:(SYS$USERS) 2013-11-07 17:12:58.073
*** SESSION ID:(509.36) 2013-11-07 17:12:58.073
row 1944a08a.25 continuation at
file# 101 block# 303242 slot 38 not found
**************************************************
KDSTABN_GET: 0 ..... ntab: 1
curSlot: 38 ..... nrows: 196
**************************************************
*** 2013-11-07 17:12:58.074
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], []
Current SQL statement for this session:
select o.owner#, u.name, o.name, o.namespace, o.obj#, d.d_timestamp, nvl(d.property,0), o.type#, o.subname, d.d_attrs from dependency$ d, obj$ o, user$ u where d.p_obj#=:1 and (d.p_timestamp=:2 or d.property=2) and d.d_obj#=o.obj# and o.owner#=u.user# order by o.obj#
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedmp()+744 CALL ksedst() 000000840 ?
FFFFFFFF7FFF210C ?
file# 101 block# 303242 slot 38 not found 出现了一个逻辑坏块。
查看坏块所在的对象;
Select owner,segment_name,segment_type from dba_extents where file_id='101' and 303242 between block_id and block_id+blocks-1;
是DEPENDENCY$ 表,可以把表move然后在重建索引。如果逻辑坏块是一个索引重建索引即可。
3、查看表DEPENDENCY$ 的索引
select owner,index_name,tablespace_name,status from dba_indexes where table_name='DEPENDENCY$';
OWNER INDEX_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ------------------------------ --------
SYS I_DEPENDENCY1 SYSTEM VALID
SYS I_DEPENDENCY2 SYSTEM VALID
4、move表DEPENDENCY$
SQL> alter table DEPENDENCY$ move tablespace system;
Table altered.
5、重建索引
SQL> alter index I_DEPENDENCY1 rebuild online;
Index altered.
SQL> alter index I_DEPENDENCY2 rebuild online;
Index altered.
问题已解决。