• 记一次ORA-600[13011]


    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] "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报错是由于在更新语句中使用索引找到一条记录。然后到表中去查询时该记录不存在,出现此报错。一般解决方法是重建索引。----该段引自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]的报错。

  • 相关阅读:
    shell函数使用
    laravel调试神器tinker
    laravel 5.1 单元测试 Cannot modify header information 错误
    angular 使用rxjs 监听同级兄弟组件数据变化
    angular 有关侦测组件变化的 ChangeDetectorRef 对象
    XML文件操作类--创建XML文件
    (收藏)C#实现截屏
    (转)C#操作PPT
    (转).NET代码混淆实践
    (整理)RPC
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6846648.html
Copyright © 2020-2023  润新知