当前日志组全部损坏的恢复

        当前日志组是指在被后台进程LGWR写入事务变化的日志组。如果在关闭状态下,当前日志组全部损坏或出现介质失败,那么数据库不能重启。

1)查看当前的日志组状态。

SQL> select group#,member,type,status from v$logfile;

    GROUP# MEMBER                                   TYPE    STATUS             
---------- ---------------------------------------- ------- -------            
         3 F:\APP\YANG\ORADATA\ORACL\REDO03.LOG     ONLINE                     
         2 F:\APP\YANG\ORADATA\ORACL\REDO02.LOG     ONLINE                     
         1 F:\APP\YANG\ORADATA\ORACL\REDO01.LOG     ONLINE                     

SQL> select group#,members,sequence#,status from v$log;

    GROUP#    MEMBERS  SEQUENCE# STATUS                                        
---------- ---------- ---------- ----------------                              
         1          1          7 ACTIVE                                        
         2          1          8 ACTIVE                                        
         3          1          9 CURRENT
       

2)在关闭状态下,删除日志组以模拟当前日志组全部损坏。                                

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

-----删除当前日志组。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes                                      
Fixed Size                  1334380 bytes                                      
Variable Size             142607252 bytes                                      
Database Buffers          385875968 bytes                                      
Redo Buffers                5844992 bytes                                      
数据库装载完毕。

ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员
ORA-00312: 联机日志 3 线程 1: 'F:\APP\YANG\ORADATA\ORACL\REDO03.LOG'

3)当在关闭情况下,当前日志组所有日志成员全部出现介质损坏时,因为数据文件和控制文件处于一致状态,所以我们只需使用RECOVER DATABASE UNTIL CANCEL 命令执行基于取消的不完全的恢复。然后使用RESETLOGS 方式打开数据库

SQL> recover database until cancel
完成介质恢复。
SQL> alter database open resetlogs;

数据库已更改。

SQL> select group#,member,type,status from v$logfile;

    GROUP# MEMBER                                   TYPE    STATUS             
---------- ---------------------------------------- ------- -------            
         3 F:\APP\YANG\ORADATA\ORACL\REDO03.LOG     ONLINE                     
         2 F:\APP\YANG\ORADATA\ORACL\REDO02.LOG     ONLINE                     
         1 F:\APP\YANG\ORADATA\ORACL\REDO01.LOG     ONLINE                     

SQL> select group#,members,sequence#,status from v$log;

    GROUP#    MEMBERS  SEQUENCE# STATUS                                        
---------- ---------- ---------- ----------------                              
         1          1          1 CURRENT                                       
         2          1          0 UNUSED                                        
         3          1          0 UNUSED
                                        

注意:别忘了 备份全数据库。

上一篇:关于Eclipse生成和导入Patch文件.


下一篇:《Python机器学习——预测分析核心算法》——小结