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

    ORA 600 3005故障恢复

    惜分飞发表于 2017-03-09 01:40:07
    love 0

    联系:手机(13429648788) QQ(107644445)

    链接:http://www.orasos.com/ora-600-3005%e6%95%85%e9%9a%9c%e6%81%a2%e5%a4%8d.html

    标题:ORA 600 3005故障恢复

    作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

    数据库打开报ora-600 3005错误

    D:\>sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 7 23:04:25 2017
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    
    连接到:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL> recover datafile 1;
    完成介质恢复。
    SQL> recover datafile 2;
    完成介质恢复。
    SQL> recover datafile 3;
    完成介质恢复。
    SQL> recover datafile 4;
    完成介质恢复。
    SQL> recover datafile 5;
    完成介质恢复。
    SQL> recover datafile 6;
    完成介质恢复。
    SQL> alter database open;
    alter database open
    *
    第 1 行出现错误:
    ORA-00600: 内部错误代码, 参数: [3005], [1], [8242], [29937], [0], [0], [], [],
    [], [], [], []
    

    查询数据库信息

    SQL> SELECT status,
      2  checkpoint_change#,
      3  checkpoint_time,FUZZY,
      4  count(*) ROW_NUM
      5  FROM v$datafile_header
      6  GROUP BY status, checkpoint_change#, checkpoint_time,fuzzy
      7  ORDER BY status, checkpoint_change#, checkpoint_time;
    
    STATUS         CHECKPOINT_CHANGE# CHECKPOINT_TIM FUZZY     ROW_NUM
    -------------- ------------------ -------------- ------ ----------
    ONLINE                  227036249 06-3月 -17     NO              5
    ONLINE                  227036252 06-3月 -17     NO              1
    
    SQL> set numw 16
    SQL> SELECT status,
      2  checkpoint_change#,
      3  checkpoint_time,last_change#,
      4  count(*) ROW_NUM
      5  FROM v$datafile
      6  GROUP BY status, checkpoint_change#, checkpoint_time,last_change#
      7  ORDER BY status, checkpoint_change#, checkpoint_time;
    
    STATUS         CHECKPOINT_CHANGE# CHECKPOINT_TIM     LAST_CHANGE#
    -------------- ------------------ -------------- ----------------
             ROW_NUM
    ----------------
    ONLINE                  227036249 06-3月 -17
                   4
    
    ONLINE                  227036252 06-3月 -17
                   1
    
    SYSTEM                  227036249 06-3月 -17
                   1
    
    

    mos上关于ora-600 3005描述

    VERSIONS:
    versions 10.2 and later
    DESCRIPTION:
    Raised during pass one of the two pass recovery processing, which
    reads and merges open redo threads into a hash table of blocks
    that need recovery.
    During examination of the the change vectors of online redologs, this
    error is raised if no online redo log could be opened to cover the start RBA.
    ARGUMENTS:
    Arg [a] Thread
    Arg [b] Redo Log File Sequence
    Arg {c} Redo Log File Block Number
    Arg [d] SCN Wrap
    Arg [e] SCN Base
    

    根据官方描述,出现该错误的原因是由于在数据库启动的过程中,通过控制文件读取的redo信息不匹配,从而出现该问题,通过重建控制文件可以绕过去该问题

    SQL> shutdown immediate;
    ORA-01109: 数据库未打开
    
    
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup nomount pfile='d:/pfile.txt'
    ORACLE 例程已经启动。
    
    Total System Global Area      10288615424 bytes
    Fixed Size                        2184672 bytes
    Variable Size                  7482640928 bytes
    Database Buffers               2785017856 bytes
    Redo Buffers                     18771968 bytes
    SQL> CREATE CONTROLFILE REUSE DATABASE "ORACLEDO" NORESETLOGS  NOARCHIVELOG
      2      MAXLOGFILES 16
      3      MAXLOGMEMBERS 3
      4      MAXDATAFILES 100
      5      MAXINSTANCES 8
      6      MAXLOGHISTORY 2336
      7  LOGFILE
      8    GROUP 1 'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
      9    GROUP 2 'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
     10    GROUP 3 'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
     11  DATAFILE
     12    'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\SYSTEM01.DBF',
     13    'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\SYSAUX01.DBF',
     14    'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\UNDOTBS01.DBF',
     15    'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\USERS01.DBF',
     16    'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\XIFENFEI01.DBF',
     17    'D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\XIFENFEI0102.DBF'
     18  CHARACTER SET AL32UTF8
     19  ;
    
    控制文件已创建。
    
    SQL> recover database;
    完成介质恢复。
    SQL> alter database open;
    alter database open
    *
    第 1 行出现错误:
    ORA-00603: ORACLE server session terminated by fatal error
    ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [],
    [], [], [], []
    ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [],
    [], [], [], []
    ORA-01092: ORACLE instance terminated. Disconnection forced
    ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [],
    [], [], [], []
    ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [],
    [], [], [], []
    ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [],
    [], [], [], []
    ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [],
    [], [], [], []
    进程 ID: 4036
    会话 ID: 96 序列号: 1
    

    这个错误就比较熟悉了,按照undo异常方案处理即可
    补充说明
    ora-600 3005的错误可能需要internal 帐号才能够查询到准确描述和处理方法,其实在这个库的运行最后crash之前,就已经报了控制文件异常,然后库crash掉了.

    Mon Mar 06 10:16:37 2017
    Thread 1 advanced to log sequence 8242 (LGWR switch)
      Current log# 1 seq# 8242 mem# 0: D:\APP\ADMINISTRATOR\ORADATA\ORACLEDOC\REDO01.LOG
    Mon Mar 06 11:06:31 2017
    ********************* ATTENTION: ******************** 
     The controlfile header block returned by the OS
     has a sequence number that is too old. 
     The controlfile might be corrupted.
     PLEASE DO NOT ATTEMPT TO START UP THE INSTANCE 
     without following the steps below.
     RE-STARTING THE INSTANCE CAN CAUSE SERIOUS DAMAGE 
     TO THE DATABASE, if the controlfile is truly corrupted.
     In order to re-start the instance safely, 
     please do the following:
     (1) Save all copies of the controlfile for later 
         analysis and contact your OS vendor and Oracle support.
     (2) Mount the instance and issue: 
         ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
     (3) Unmount the instance. 
     (4) Use the script in the trace file to
         RE-CREATE THE CONTROLFILE and open the database. 
    *****************************************************
    MMON (ospid: 3320): terminating the instance
    Mon Mar 06 11:06:32 2017
    opiodr aborting process unknown ospid (1528) as a result of ORA-1092
    Mon Mar 06 11:06:32 2017
    ORA-1092 : opitsk aborting process
    Mon Mar 06 11:06:32 2017
    opiodr aborting process unknown ospid (2852) as a result of ORA-1092
    Mon Mar 06 11:06:32 2017
    ORA-1092 : opitsk aborting process
    Mon Mar 06 11:06:33 2017
    opiodr aborting process unknown ospid (3836) as a result of ORA-1092
    Mon Mar 06 11:06:33 2017
    ORA-1092 : opitsk aborting process
    Instance terminated by MMON, pid = 3320
    
    • 数据库恢复遭遇ORA-00600[3705]
    • recreate crontrolfile lost datafile—-MISSING0000N
    • 分享一次ORA-01113 ORA-01110故障处理过程
    • ORA-600 kcratr_nab_less_than_odr故障解决
    • 异常断电导致current redo损坏处理
    • 记录一次ORA-600 3004 恢复过程和处理思路
    • win中创建控制文件出现ORA-01565 ORA-27041 OSD-04002
    • ORA-600 999
    • 创建控制文件遭遇ORA-600 kccscf_1
    • ORA-00600[kcrf_resilver_log_1]异常恢复
    • ORA-01207/ORA-00338恢复
    • ORACLE REDO各种异常恢复
    • 记录一次 ORA-600 2663 故障恢复
    • 重建控制文件丢失undo异常恢复—ORA-01173模拟与恢复
    • undo异常总结和恢复思路


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