读书人

rman实验之存档模式无备份正常关机丢

发布时间: 2012-08-22 09:50:35 作者: rapoo

rman实验之归档模式无备份,正常关机丢失当前联机重做日志文件的恢复

所有的备份软件都没有备份联机重做日志文件的说法。因为,它几乎时刻都在写,单独备份某个时刻,没啥意义。再者,归档日志在某种意义上,也是对联机重做日志的备份。对联机重做日志文件的保护,核心就两个字:冗余。包括:多路镜像、RAID方式、HA的运用(如DG)。

1)查看当前的联机重做日志文件

sys@ORCL> select group#,members,sequence#,status from v$log;    GROUP#    MEMBERS  SEQUENCE# STATUS---------- ---------- ---------- ----------------         1          2          5 CURRENT         2          2          4 INACTIVE         3          2          3 INACTIVEsys@ORCL> col member for a70 wrappedsys@ORCL> select group#,member from v$logfile where group#=1;    GROUP# MEMBER---------- ----------------------------------         1 /u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_1_8050hhn1_.log         1 /u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_1_8050hkdv_.l           og


2)模拟文件丢失

sys@ORCL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.sys@ORCL> host rm -rf /u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_1_8050hhn1_.logsys@ORCL> host rm -rf /u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_1_8050hkdv_.logsys@ORCL> startupORACLE instance started.Total System Global Area  419430400 bytesFixed Size                  1219760 bytesVariable Size             155190096 bytesDatabase Buffers          260046848 bytesRedo Buffers                2973696 bytesDatabase mounted.ORA-00313: open failed for members of log group 1 of thread 1ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_1_8050hhn1_.log'ORA-00312: online log 1 thread 1:'/u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_1_8050hkdv_.log'


3)修改_ALLOW_RESETLOGS_CORRUPTION
因为没有备份,就只能强制恢复了。所以在这里我们需要修改一个隐藏的初始化参数:

sys@ORCL> alter system set "_ALLOW_RESETLOGS_CORRUPTION"=TRUE SCOPE=SPFILE;


设置该参数为true后,oracle在open时会跳过一些一致性的检查。

4)关闭并重新mount数据库

sys@ORCL> shutdown immediateORA-01109: database not openDatabase dismounted.ORACLE instance shut down.sys@ORCL> startup mountORACLE instance started.Total System Global Area  419430400 bytesFixed Size                  1219760 bytesVariable Size             155190096 bytesDatabase Buffers          260046848 bytesRedo Buffers                2973696 bytesDatabase mounted.

5)执行不完全恢复

sys@ORCL> recover database until cancel;Media recovery complete.


6)通过open resetlogs打开数据库

sys@ORCL> alter database open resetlogs;Database altered.

7)善后处理
这是种走投无路的做法了。“邪魔外道的功夫”。以这种方式恢复,有可能导致数据库中数据的不一致,如已提交的未写入,未提交的已写入。在告警日志中,可能有报600错误了。强烈建议马上通过exp执行一次full exp,然后新建数据库,再通过imp导入之前导出的二进制文件。

读书人网 >其他数据库

热点推荐