IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    MON_MODS$表ORA-600 13013报错处理

    惜分飞发表于 2016-08-06 04:06:45
    love 0

    联系:手机(+86 13429648788) QQ(107644445)QQ咨询惜分飞

    标题:MON_MODS$表ORA-600 13013报错处理

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    有朋友反馈数据库启动运行一点时间之后,然后就自动crash,让我们帮忙找原因,通过分析是由于smon进程触发ORA-600 13013导致数据库异常
    alert日志报错信息

    Thu Aug  4 18:39:44 2016
    Database Characterset is ZHS16GBK
    replication_dependency_tracking turned off (no async multimaster replication found)
    Starting background process QMNC
    QMNC started with pid=33, OS id=22935
    Thu Aug  4 18:39:44 2016
    Completed: ALTER DATABASE OPEN
    Thu Aug  4 18:39:44 2016
    db_recovery_file_dest_size of 2048 MB is 0.00% used. This is a
    user-specified limit on the amount of space that will be used by this
    database for recovery-related files, and does not reflect the amount of
    space available in the underlying filesystem or ASM diskgroup.
    Thu Aug  4 18:48:41 2016
    Thread 1 advanced to log sequence 86746
      Current log# 3 seq# 86746 mem# 0: /opt/ora10/oradata/ora10g/redo03.log
    Thu Aug  4 18:58:13 2016
    Errors in file /opt/ora10/admin/ora10g/bdump/ora10g_smon_22449.trc:
    ORA-00600: internal error code, arguments: [13013], [5001], [482], [4198075], [40], [4198075], [17], []
    Thu Aug  4 18:58:56 2016
    Non-fatal internal error happenned while SMON was doing flushing of monitored table stats.
    SMON encountered 8 out of maximum 100 non-fatal internal errors.
    Thu Aug  4 18:59:06 2016
    Errors in file /opt/ora10/admin/ora10g/bdump/ora10g_smon_22449.trc:
    ORA-00600: internal error code, arguments: [13013], [5001], [482], [4198075], [40], [4198075], [17], []
    Thu Aug  4 18:59:08 2016
    Errors in file /opt/ora10/admin/ora10g/bdump/ora10g_pmon_22413.trc:
    ORA-00474: SMON process terminated with error
    Thu Aug  4 18:59:08 2016
    PMON: terminating instance due to error 474
    Instance terminated by PMON, pid = 22413
    

    通过trace文件大概可以发现是由于ORA-600 13013错误导致数据库crash,而且这里有类似”SMON was doing flushing of monitored table stats”错误提示,根据经验,很可能是smon把表的dml操作收集信息相关.

    ORA-600 [13013] 含义

    ORA-600 [13013] [a] [b] {c} [d] [e] [f] 
    
    
    This format relates to Oracle Server 8.0.3 to 10.1 
    
    Arg [a] Passcount 
    Arg [b] Data Object number 
    Arg {c} Tablespace Relative DBA of block containing the row to be updated 
    Arg [d] Row Slot number 
    Arg [e] Relative DBA of block being updated (should be same as 1) 
    Arg [f] Code 
    

    根据这个错误信息,以及How to resolve ORA-00600 [13013], [5001] [ID 816784.1]中的描述

    ORA-600 13013 对应对象

    SQL> select object_name from dba_objects where object_id=482
    
    OBJECT_NAME
    --------------------------------------------------------------------------------
    MON_MODS$
    

    该对象正是和监控dml变化相关的表,smon会对其进行相关操作,以前写过一篇:MON_MODS$和MON_MODS_ALL$统计DML操作次数的文章
    对于MON_MODS$表ORA-600 13013处理

    SQL> analyze table mon_mods$ validate structure cascade;
    
    analyze table mon_mods$ validate structure cascade
    *
    ERROR at line 1:
    ORA-01499: table/index cross reference failure - see trace file
    
     
    SQL> select index_name from dba_indexes where table_name='MON_MODS$';
    
    INDEX_NAME
    ------------------------------
    I_MON_MODS$_OBJ
    
    SQL> ALTER INDEX I_MON_MODS$_OBJ REBUILD;
    
    Index altered.
    
    SQL> analyze table mon_mods$ validate structure cascade;
    analyze table mon_mods$ validate structure cascade
    *
    ERROR at line 1:
    ORA-01499: table/index cross reference failure - see trace file
    
    SQL> CREATE TABLE MON_MODS_BAK AS SELECT * FROM MON_MODS$;
    
    Table created.
    
    SQL> SELECT COUNT(*) FROM MON_MODS$;
    
      COUNT(*)
    ----------
          1247
    
    SQL> C/MON_MODS$/MON_MODS_BAK;
      1* SELECT COUNT(*) FROM MON_MODS_BAK
    SQL> /
    
      COUNT(*)
    ----------
          1247
    
    SQL> TRUNCATE TABLE MON_MODS$;
    
    Table truncated.
    
    SQL> INSERT INTO MON_MODS$ SELECT * fROM MON_MODS_BAK;
    
    1247 rows created.
    
    SQL> COMMIT;
    
    Commit complete.
    
    SQL>  analyze table mon_mods$ validate structure cascade;
    
    Table analyzed.
    

    自此关于MON_MODS$表相关的ORA-600 13013异常处理完全,当然也可以通过重建I_MON_MODS$_OBJ索引来解决,但是不能通过rebuild index解决.数据库也就不会因此而crash了.

    • 记录另一起ORA-00600[13013]处理
    • 记录一次ORA-600[13013]处理过程
    • 处理smon清理临时段导致数据库异常案例
    • ORA-607/ORA-600[4194]不一定是重大灾难
    • MON_MODS$和MON_MODS_ALL$统计DML操作次数
    • 记录一次oer 8102.2处理
    • ORA-600 kghstack_free2异常恢复
    • 关于SMON_SCN_TIME若干问题说明
    • ORA-600 999 异常恢复
    • ORA-600[6749] 发生在 SYSMAN.MGMT_METRICS_RAW表
    • ORA-600 kdsgrp1
    • 记录一次system表空间坏块(ORA-01578)数据库恢复


沪ICP备19023445号-2号
友情链接