转载:
接到一个ORA-600[6122]的报错:
Fri Aug 5 04:03:41 2011
Errors in file /ora/admin/SCRM01P/udump/scrm01p5_ora_11314.trc:
ORA-00600: internal error code, arguments: [6122], [0], [1], [0], [], [], [], []
Errors in file /ora/admin/SCRM01P/udump/scrm01p5_ora_11314.trc:
ORA-00600: internal error code, arguments: [6122], [0], [1], [0], [], [], [], []
根据oracle metalink的Doc ID 99300.1,这是关于index block corrupt的问题,我们来看看该报错的trace文件:
au11qapcwctels2:SCRM01P5:/ora/admin>more /ora/admin/SCRM01P/udump/scrm01p5_ora_11314.trc Dump file /ora/admin/SCRM01P/udump/scrm01p5_ora_11314.trc Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining options JServer Release 9.2.0.8.0 - Production ORACLE_HOME = /ora/product/v920 System name: SunOS Node name: au11qapcwctels2 Release: 5.9 Version: Generic_118558-39 Machine: sun4u Instance name: SCRM01P5 Redo thread mounted by this instance: 5 Oracle process number: 959 Unix process pid: 11314, image: oracle@au11qapcwctels2 (TNS V1-V3) *** 2011-08-05 04:03:41.468 *** SESSION ID:(261.840) 2011-08-05 04:03:41.466 Block header dump: 0xab6090bc Object id on Block? Y seg/obj: 0xedddb csc: 0x9d0.1d45fd41 itc: 10 flg: - typ: 2 - INDEX fsl: 0 fnx: 0x0 ver: 0x01
从trace文件中,我们可以获得一些信息:
在21行,seg/obj: 0xedddb,这里显示了data object id,在72行开始,还显示了一个很长的sql,这个sql就是引起ora600[6122]的sql。
那么究竟是这个sql中的哪个表,哪个索引引起了ora600?
根据21行的seg/obj: 0xedddb,我们把edddb从16进制转换成十进制,974299,然后找其对象:
1* select OBJECT_NAME,OWNER,OBJECT_TYPE from dba_objects where DATA_OBJECT_ID=974299
SQL> /
OBJECT_NAME OWNER OBJECT_TYPE
------------------------------ ------------------------------ ------------------
ITEM_S_ORDER_U1 BELSIE INDEX
SQL> /
OBJECT_NAME OWNER OBJECT_TYPE
------------------------------ ------------------------------ ------------------
ITEM_S_ORDER_U1 BELSIE INDEX
我们检验一下这个索引说对应的表,是不是trace文件中的表:
SQL> select owner,table_name from dba_indexes where index_name='ITEM_S_ORDER_U1';
OWNER TABLE_NAME
------------------------------ ------------------------------
BELSIE ITEM_S_ORDER
SQL>
OWNER TABLE_NAME
------------------------------ ------------------------------
BELSIE ITEM_S_ORDER
SQL>
我们看到该表确实是在539行出现。
因此,找到该对象后,找个时间进行索引的drop,create重建,问题解决。
ORA-600 [6122] "Index Block Corrupt" [ID 99300.1] Note: For additional ORA-600 related information please read Note:146580.1
PURPOSE:
This article discusses the internal error "ORA-600 [6122]", what
it means and possible actions. The information here is only applicable
to the versions listed and is provided only for guidance.
ERROR:
ORA-600 [6122] [a] [b] [c]
VERSIONS:
versions 7.1 to 10.1
DESCRIPTION:
Block checking has found a logically corrupt block.
In most cases the bad block will have been marked as soft corrupt
and so will result in ORA-1578 errors after this error has occured.
ARGUMENTS:
Arg [a] Number of rows deleted in the block
Arg [b] Number of row locks left
Arg [c] Number of rows left in the block
FUNCTIONALITY:
Kernel Data indeX block
IMPACT:
PROCESS FAILURE
INDEX BLOCK CORRUPTION
SUGGESTIONS:
This error would indicate an index block corruption.
Please refer to the following Metalink article for information:
Note:28814.1 Handling Oracle Block Corruptions in Oracle7/8/8i
If the Known Issues section below does not help in terms of identifying
a solution, please submit the trace files and alert.log to Oracle
Support Services for further analysis.
Known Issues:
Bug# 2909160 See Note:2909160.8
OERI[6122] / index corruption for DML against AUTO space managed indexes
Fixed: 9.2.0.4, 10.1.0.2
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/507279/viewspace-706733/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/507279/viewspace-706733/