zoukankan      html  css  js  c++  java
  • redo日志全部丢失的情况下。Oracle的实例恢复

    场景:
    redo日志全部丢失的场景。

    alert日志报错如下:

    ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
    ORA-00312: 联机日志 1 线程 1: '/u01/app/oradata/oradb/redo01.log'
    ORA-27037: 无法获得文件状态
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
    Thu Oct 15 16:22:08 2020
    Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_m000_2835.trc:
    ORA-00322: log 1 of thread 1 is not current copy
    ORA-00312: online log 1 thread 1: '/u01/app/oradata/oradb/redo01.log'
    Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_m000_2835.trc:
    ORA-00313: open failed for members of log group 2 of thread 1
    ORA-00312: online log 2 thread 1: '/u01/app/oradata/oradb/redo02.log'
    ORA-27037: unable to obtain file status
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
    Completed: ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1
    Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_m000_2835.trc:
    ORA-00313: open failed for members of log group 3 of thread 1
    ORA-00312: online log 3 thread 1: '/u01/app/oradata/oradb/redo03.log'
    ORA-27037: unable to obtain file status
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
    Checker run found 6 new persistent data failures
    ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2
    Clearing online log 2 of thread 1 sequence number 4430
    Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_ora_2826.trc:
    ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
    ORA-00312: 联机日志 2 线程 1: '/u01/app/oradata/oradb/redo02.log'
    ORA-27037: 无法获得文件状态
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
    Errors in file /u01/app/diag/rdbms/oradb/oradb/trace/oradb_ora_2826.trc:
    ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
    ORA-00312: 联机日志 2 线程 1: '/u01/app/oradata/oradb/redo02.log'
    

    也可以看到redo在线日志丢失。

    这里可以看看redo日志的位置和状态:

    SYS@oradb> select * from v$log;
    
        GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE	  MEMBERS ARC STATUS	       FIRST_CHANGE# FIRST_TIME
    ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
    NEXT_CHANGE# NEXT_TIME
    ------------ --------------
    	 1	    1	    4429   52428800	   512		1 YES INACTIVE		  1.0235E+13 15-10月-20
      1.0235E+13 15-10月-20
    
    	 3	    1	    4431   52428800	   512		1 NO  CURRENT		  1.0235E+13 15-10月-20
      2.8147E+14
    
    	 2	    1	    4430   52428800	   512		1 YES INACTIVE		  1.0235E+13 15-10月-20
      1.0235E+13 15-10月-20
    
    
    SYS@oradb> select * from v$logfile;
    
        GROUP# STATUS  TYPE
    ---------- ------- -------
    MEMBER
    ------------------------------------------------------------------------------------------------------------------------
    IS_
    ---
    	 3	   ONLINE
    /u01/app/oradata/oradb/redo03.log
    NO
    
    	 2	   ONLINE
    /u01/app/oradata/oradb/redo02.log
    NO
    
    	 1	   ONLINE
    /u01/app/oradata/oradb/redo01.log
    NO
    

    可以看到group1和group2是inactive。可以通过如下命令恢复重建

    SYS@oradb> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1;    
    
    数据库已更改。
    
    SYS@oradb> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;
    
    数据库已更改。
    

    但是,对于current的redo日志来说,就是很大的问题了。
    这里是通过一个实例恢复的方式,命令如下:
    正常关闭数据库

    SYS@oradb> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    

    启动数据库至mount状态,恢复数据库实例

    SYS@oradb> startup mount;
    ORACLE 例程已经启动。
    
    Total System Global Area 1.0260E+10 bytes
    Fixed Size 2347880 bytes
    Variable Size 2583694488 bytes
    Database Buffers 7667187712 bytes
    Redo Buffers 6402048 bytes
    数据库装载完毕。
    SYS@oradb> recover database until cancel;
    完成介质恢复。
    SYS@oradb> alter database open resetlogs;
    

    NOTE: If the current online log, needed for instance recovery, is lost, the database must be restored and recovered through the last available archivelog file(PITR).

    至此,模拟环境的oracle恢复成功,文献参考:

    How to Recover from Loss Of Online Redo Log And ORA-312 And ORA-313 (Doc ID 117481.1) To BottomTo Bottom

  • 相关阅读:
    5.19 省选模拟赛 T1 小B的棋盘 双指针 性质
    5.15 省选模拟赛 容斥 生成函数 dp
    5.15 省选模拟赛 T1 点分治 FFT
    5.15 牛客挑战赛40 B 小V的序列 关于随机均摊分析 二进制
    luogu P4929 【模板】舞蹈链 DLX
    CF 878E Numbers on the blackboard 并查集 离线 贪心
    5.10 省选模拟赛 拍卖 博弈 dp
    5.12 省选模拟赛 T2 贪心 dp 搜索 差分
    5.10 省选模拟赛 tree 树形dp 逆元
    luogu P6088 [JSOI2015]字符串树 可持久化trie 线段树合并 树链剖分 trie树
  • 原文地址:https://www.cnblogs.com/zhangshengdong/p/13821420.html
Copyright © 2011-2022 走看看