视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ORA-600[13011]错误解决一例
2020-11-09 12:48:17 责编:小采
文档


SunOS 5.10Oracle 10.2.0.2.0开发环境某一数据库出现ORA-600报错。

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_295.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_295.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_295.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] "Problem occurred when trying to delete a row" (文档 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报错是因为在更新语句中使用索引找到一条记录,然后到表中去查询时该记录不存在,出现此报错,一般解决方法是重建索引。

首先对表做分析:
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 单实例 从32位 迁移到 位 方法

在CentOS 6.4下安装Oracle 11gR2(x)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

本文永久更新链接地址:

下载本文
显示全文
专题