记一次ORA-600[13011]
2014-11-17 15:14
309 查看
SunOS 5.10
Oracle 10.2.0.2.0
开发环境某一数据库出现ora-600报错。
alert.log中的报错信息:
Thu Nov 13 15:11:43 2014
Errors in file /oracle/admin/sun/bdump/sun_j000_29589.trc:
ORA-00600: internal error code, arguments: [13011], [298314], [4277430], [0], [4277430], [17], [], []
Thu Nov 13 15:11:45 2014
Errors in file /oracle/admin/sun/bdump/sun_j000_29589.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
ORA-06512: at "REPADMIN.CEF_PUSH_PURGE", line 145
ORA-06512: at line 1
在 /oracle/admin/sun/bdump/sun_j000_29589.trc trace文件中看到当前SQL是删除system.def$_aqcall的一条记录:
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [13011], [298314], [4277430], [0], [4277430], [17], [], []
Current SQL statement for this session:
delete from system.def$_aqcall where (enq_tid = :1)
根据MOS ORA-600 [13011] "Problemoccurredwhentryingtodeletearow"
(文档 ID 28184.1)各参数对比;
SQL> select object_type,object_name,owner from dba_objects where data_object_id='298314';
OBJECT_TYPE OBJECT_NAME OWNER
------------------- ---------------------------------------- ------------------------------
TABLE DEF$_AQCALL SYSTEM
关于DEF$_AQCALL表,该表是高级复制的默认队列表,从ORA-06512: at "REPADMIN.CEF_PUSH_PURGE", line 145这边也可以看出确实是高级复制出现了问题,复制及时完成后,该表会被清空。
出现该ora-600报错是因为在更新语句中使用索引找到一条记录,然后到表中去查询时该记录不存在,出现此报错,一般解决方法是重建索引。----该段引自xifenfei(http://www.xifenfei.com/2623.html)
首先对表做分析:
SQL> analyze table system.DEF$_AQCALL validate structure cascade;
analyze table system.DEF$_AQCALL validate structure cascade
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file
SQL> select index_name,owner,status from dba_indexes where table_name='DEF$_AQCALL';
INDEX_NAME OWNER STATUS
------------------------------ ------------------------------ --------
SYS_IL0000004874C00025$$ SYSTEM VALID
SYS_C001407 SYSTEM VALID
DEF$_TRANORDER SYSTEM VALID
SQL> select index_name,column_name,column_position from dba_ind_columns where table_name='DEF$_AQCALL';
INDEX_NAME COLUMN_NAME COLUMN_POSITION
------------------------------ ------------------------------ ---------------
SYS_C001407 ENQ_TID 1
SYS_C001407 STEP_NO 2
DEF$_TRANORDER CSCN 1
DEF$_TRANORDER ENQ_TID 2
比对数据:全表扫描和走索引时数据对比:
SQL> select /*+ index(t DEF$_TRANORDER) */ CSCN,ENQ_TID from system.DEF$_AQCALL where CSCN is not null or ENQ_TID is not null
2 minus
3 select /*+ FULL(t1) */ CSCN,ENQ_TID from system.DEF$_AQCALL
4 /
CSCN ENQ_TID
---------- ------------------------------
4755684454 8.37.2233719
4755684456 3.14.2235620
4755684458 8.2.2233699
4755684460 10.30.2223096
果然索引上的记录比表上的数据多了四条。
在线重建索引:
SQL>alter index system.DEF$_TRANORDER rebuild onlie;
Index altered.
再次对比索引上和表上的数据:
SQL> select /*+ index(t DEF$_TRANORDER) */ CSCN,ENQ_TID from system.DEF$_AQCALL where CSCN is not null or ENQ_TID is not null
2 minus
3 select /*+ FULL(t1) */ CSCN,ENQ_TID from system.DEF$_AQCALL
4 /
no rows selected
没有多余数据,通过对alert.log的监控,后续未发现ora-600[13011]的报错。
Oracle 10.2.0.2.0
开发环境某一数据库出现ora-600报错。
alert.log中的报错信息:
Thu Nov 13 15:11:43 2014
Errors in file /oracle/admin/sun/bdump/sun_j000_29589.trc:
ORA-00600: internal error code, arguments: [13011], [298314], [4277430], [0], [4277430], [17], [], []
Thu Nov 13 15:11:45 2014
Errors in file /oracle/admin/sun/bdump/sun_j000_29589.trc:
ORA-00600: internal error code, arguments: [], [], [], [], [], [], [], []
ORA-06512: at "REPADMIN.CEF_PUSH_PURGE", line 145
ORA-06512: at line 1
在 /oracle/admin/sun/bdump/sun_j000_29589.trc trace文件中看到当前SQL是删除system.def$_aqcall的一条记录:
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [13011], [298314], [4277430], [0], [4277430], [17], [], []
Current SQL statement for this session:
delete from system.def$_aqcall where (enq_tid = :1)
根据MOS ORA-600 [13011] "Problemoccurredwhentryingtodeletearow"
(文档 ID 28184.1)各参数对比;
SQL> select object_type,object_name,owner from dba_objects where data_object_id='298314';
OBJECT_TYPE OBJECT_NAME OWNER
------------------- ---------------------------------------- ------------------------------
TABLE DEF$_AQCALL SYSTEM
关于DEF$_AQCALL表,该表是高级复制的默认队列表,从ORA-06512: at "REPADMIN.CEF_PUSH_PURGE", line 145这边也可以看出确实是高级复制出现了问题,复制及时完成后,该表会被清空。
出现该ora-600报错是因为在更新语句中使用索引找到一条记录,然后到表中去查询时该记录不存在,出现此报错,一般解决方法是重建索引。----该段引自xifenfei(http://www.xifenfei.com/2623.html)
首先对表做分析:
SQL> analyze table system.DEF$_AQCALL validate structure cascade;
analyze table system.DEF$_AQCALL validate structure cascade
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file
SQL> select index_name,owner,status from dba_indexes where table_name='DEF$_AQCALL';
INDEX_NAME OWNER STATUS
------------------------------ ------------------------------ --------
SYS_IL0000004874C00025$$ SYSTEM VALID
SYS_C001407 SYSTEM VALID
DEF$_TRANORDER SYSTEM VALID
SQL> select index_name,column_name,column_position from dba_ind_columns where table_name='DEF$_AQCALL';
INDEX_NAME COLUMN_NAME COLUMN_POSITION
------------------------------ ------------------------------ ---------------
SYS_C001407 ENQ_TID 1
SYS_C001407 STEP_NO 2
DEF$_TRANORDER CSCN 1
DEF$_TRANORDER ENQ_TID 2
比对数据:全表扫描和走索引时数据对比:
SQL> select /*+ index(t DEF$_TRANORDER) */ CSCN,ENQ_TID from system.DEF$_AQCALL where CSCN is not null or ENQ_TID is not null
2 minus
3 select /*+ FULL(t1) */ CSCN,ENQ_TID from system.DEF$_AQCALL
4 /
CSCN ENQ_TID
---------- ------------------------------
4755684454 8.37.2233719
4755684456 3.14.2235620
4755684458 8.2.2233699
4755684460 10.30.2223096
果然索引上的记录比表上的数据多了四条。
在线重建索引:
SQL>alter index system.DEF$_TRANORDER rebuild onlie;
Index altered.
再次对比索引上和表上的数据:
SQL> select /*+ index(t DEF$_TRANORDER) */ CSCN,ENQ_TID from system.DEF$_AQCALL where CSCN is not null or ENQ_TID is not null
2 minus
3 select /*+ FULL(t1) */ CSCN,ENQ_TID from system.DEF$_AQCALL
4 /
no rows selected
没有多余数据,通过对alert.log的监控,后续未发现ora-600[13011]的报错。
相关文章推荐
- 记一次ORA-600[13011]
- 记一次ORA-600[13011]
- 一次Exadata上的ORA-600[kjbmprlst:shadow]故障分析
- 一次ora-600 ktubko_1故障简单分析
- 记一次数据库在线current redo损坏故障,2662,ora-600
- 记一次 ORA-600 [12700] 故障案例
- 一次Exadata上的ORA-600[kjbmprlst:shadow]故障分析
- 记一次非归档RAC恢复(大量的ORA-600 错误)
- 记一次非归档RAC恢复(大量的ORA-600 错误)
- 偶遇问题之ORA 600 [kkpoxgsoh1
- 简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错
- UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
- ORA-01102 一次因tmpfs小于memory_target和共享锁引发的事件(两个独立事件)
- ORA-600 [ksuinfos_modact1]
- 一次ORA-39083,ORA-01917的问题解决过程
- 一次ORA-3136的处理
- ORA-600 各个参数含义说明
- ORA-600 [2662] Block SCN is ahead of Current SCN 处理方法 说明
- Bug 14275161 - ORA-600 [rwoirw: check ret val] on CTAS with predicate move around
- ora-600 [keltnfy-ldmlnit] 错误处理一DBCA建库时报错