不可轻言放弃,否则对不起自己!

rman备份与恢复-3

上一篇 / 下一篇  2011-06-07 14:02:13 / 个人分类:数据库

6、重做日志文件的恢复
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
SQL> recover database using backup controlfile until cancel;
SQL> alter database open resetlogs;

7、归档日志文件的恢复
RMAN>shutdown immediate
RMAN>startup mount
RMAN> run
2> {
3> allocate channel c1 device type disk;
4> restore archivelog all;
5> }


8、损坏非当前联机日志
步骤一  启动数据库,报错:ORA-00313和ORA-00312
步骤二  查看v$log视图
步骤三   用CLEAR命令重建该日志文件 SQL> alter database clear logfile group 3;
         如果是该日志组还没有归档,则需要用
         SQL>alter database clear unarchived logfile group 3;
步骤四   打开数据库,并备份数据库  SQL> alter database open;

9、损坏当前联机日志
一、数据库正常关闭,日志文件中没有未决的事务需要实例恢复,当前日志组的损坏,可以直接使用alter database clear unarchived logfile group N;命令来重建
    SQL> alter database clear unarchived logfile group 2;
    SQL> alter database open;
二、日志组中有活动事务,需要介质恢复,日志组需要用来数据同步,有两种解决方法:
1、通过不完全恢复,保持数据库数据一致性,这种方法要求数据库运行在归档方式下,且有可用的数据文件的备份
   步骤一  启动数据库,报错:ORA-00313 ,ORA-00312, ORA-27037
   步骤二  模拟当前日志组中日志文件损坏 SQL> select * from v$log;
   步骤三  拷贝有效的备份,进行不完全恢复(包括所有的控制文件、数据文件、redo文件)
   步骤四  数据库启动到mount状态,进行不完全恢复:
           SQL> startup mount
           SQL> recover database until cancel;
           SQL> alter database open resetlogs;
           注:这个时候是不能用rman进行恢复的!
  
2、通过强制性恢复,这种方法会导致数据的不一致性,推荐使用方法一
   步骤一 模拟当前日志组中日志成员被损坏  SQL> select * from v$log;
   步骤二  修改pfile文件,增加隐性参数
   vi /opt/oracle/admin/mmsgdb/pfile/init.ora.232011183420
   #add for test by wangyunzeng
   _allow_resetlogs_corruption=TRUE


TAG:

 

评分:0

我来说两句

日历

« 2024-03-12  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 72175
  • 日志数: 162
  • 图片数: 1
  • 文件数: 13
  • 建立时间: 2008-06-11
  • 更新时间: 2015-09-22

RSS订阅

Open Toolbar