重庆思庄Oracle、Redhat认证学习论坛

标题: rman使用增量scn恢复oracle dg备库 [打印本页]

作者: 郑全    时间: 2019-3-29 19:56
标题: rman使用增量scn恢复oracle dg备库
本帖最后由 郑全 于 2019-3-29 20:12 编辑

dg 环境中,由于各种原因,比如网络等,导致主库的归档日志没有传输到备库,时间长了,主库空间不够,就直接删除了这部分归档日志,但备库还没有得到这部分归档日志,
等网络通了,但这部分归档日志已经永久丢失,无法再传到备库,就出现永久的 gap,针对这种情况,怎么办呢?

难道只有重建备库一条路可以走吗?



作者: 郑全    时间: 2019-3-29 20:04
就这种情况,在 11g r2,答案是肯定的 ,那就是可以使用 增量scn备份来进行快速恢复备库。

详情如下 :

【主要步骤】
1.在备库上找出当前scn;
2.根据此scn,在主库上使用rman完成增量备份;
3.传输增量备份到备库,同时在备库上恢复;
4.重新启动备库同步。

详细过程

==利用rman进行增量scn的恢复==
1.在备库上取消日志应用
SQL> alter database recover managed standby database cancel;
2.查看备库scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
    2026280
   
3.根据scn,在主库上进行rman增量备份
Primary:
rman>  rman target /
RMAN> backup incremental from scn 2026280 database format '/home/oracle/ForStandby_%U.bka' tag 'forstandby';
RMAN> backup current controlfile for standby format '/home/oracle/ForStandbyCTRL.bkc';
4.查看增量备份信息
[oracle@ocm1 ~]$ ls -ltr /home/oracle/ForStandby*
-rw-r----- 1 oracle oinstall  6938624 Mar 29 19:16 /home/oracle/ForStandby_0tttm1vk_1_1.bka
-rw-r----- 1 oracle oinstall 10092544 Mar 29 19:16 /home/oracle/ForStandby_0uttm20o_1_1.bka
-rw-r----- 1 oracle oinstall 10092544 Mar 29 19:17 /home/oracle/ForStandbyCTRL.bkc

5.copy增量备份到备库主机 一目录,如:  /home/oracle
[oracle@ocm1 ~]$ scp ForStandby* 192.168.133.14:/home/oracle/.
oracle@192.168.133.14's password:
ForStandby_0tttm1vk_1_1.bka                          100% 6776KB   6.6MB/s   00:00   
ForStandby_0uttm20o_1_1.bka                          100% 9856KB   9.6MB/s   00:00   
ForStandbyCTRL.bkc                                   100% 9856KB   9.6MB/s   00:00   
[oracle@ocm1 ~]$

6.将备库启动到mount状态

SQL> shutdown immediate;
SQL> startup mount;
SQL> exit
7.rman恢复增量备份和控制文件备份
rman target / nocatalog
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> DELETE  ARCHIVELOG ALL;
RMAN> catalog start with '/home/oracle/For';  ####注册增量备份文件
Do you really want to catalog the above files (enter YES or NO)? yes


RMAN> RECOVER DATABASE NOREDO;  #### 注意 NOREDO 选项


SQL> shutdown;
SQL> startup nomount;
RMAN> restore standby controlfile from '/home/oracle/ForStandbyCTRL.bkc';
RMAN> shutdown;
RMAN> exit

8.启动备库到mount状态
SQL> startup nomount;
SQL> alter database mount standby database;
9.由于恢复了控制文件,因此需要重新添加新的standby redo log file(若先前有,可忽略此步)
alter database add standby logfile group 11 ('/u01/app/oracle/oradata/sbdb1/STANDBY11.LOG') size 1024m;
alter database add standby logfile group 12 ('/u01/app/oracle/oradata/sbdb1/STANDBY12.LOG') size 1024m;
alter database add standby logfile group 13 ('/u01/app/oracle/oradata/sbdb1/STANDBY13.LOG') size 1024m;
alter database add standby logfile group 14 ('/u01/app/oracle/oradata/sbdb1/STANDBY14.LOG') size 1024m;
alter database add standby logfile group 15 ('/u01/app/oracle/oradata/sbdb1/STANDBY15.LOG') size 1024m;
alter database add standby logfile group 16 ('/u01/app/oracle/oradata/sbdb1/STANDBY16.LOG') size 1024m;
10.启动备库同步
SQL> alter database open read only;
Database altered.
SQL> alter database recover managed standby database disconnect from session using current logfile;
Database altered.

到此,利用增量scn 备份重建dg备库完成。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2