window oracle 只有bak文件怎么恢复_使用rman增量恢复解决DG备库出现的gap问题

9d64ab64cbec5b3811e361b5ed0a6310.png

主库归档被意外删除,备库无法继续recover导致备库出现gap。如果备库当前处于open状态,查看v$archived_log视图可以发现gap以后的归档日志没有应用;如果备库当前处于mount状态,在alter database open时报错:file 1 is inconsistent due to a failed

media recovery session说明出现了不可溶解的gap即

UNRESOLVABLE GAP

以上两种情况出现的原因最常见的情况是主库丢失 了归档,或者主库的归档还没有在备库端应用就被人为的删除了(比如rman备份归档时:delete

input)【文章同步发布于漫兮网:https://www.manxinet.com】

解决该问题的方法目前只能通过rman的增量备份然后恢复到备库。因为主库端归档已经丢失了,不能通过在备库端手动注册缺失的归档来解决gap

一、查看备库的状态和当前scn

SQL> select instance_name,status from v$instance;

2766b98b276ca07a99c9d62928d92061.png

SQL> select CURRENT_SCN from v$database;

de45458208e612839ce92f6ec564701c.png

注:

1、备库出现gap以后,后续的归档日志不能在备库端应用,因此备库的当前scn停止在缺失的第一个归档时的起始scn。只要gap问题未解决,备库的当前scn一直卡在该值。

2、如果查询当前scn显示的是科学计数法格式,说明数值宽度设置的不够。可以通过以下命令来设置:

SQL> set numw 15 ----设置数值宽度为15个字符

二、主库端进行rman的增量备份

【文章同步发布于漫兮网:https://www.manxinet.com】

1、创建备份集的存放目录

[oracle@edsir1p8-PROD4 ~]$ mkdir -p /u01/app/oracle/oradata/backupset/prod4/increment

2、基于scn增量备份全库、当前控制文件、备库控制文件

[oracle@edsir1p8-PROD4 ~]$ export ORACLE_SID=PROD4

[oracle@edsir1p8-PROD4 ~]$ rman target /

RMAN> backup as compressed backupset incrementalfrom SCN 5105432 database format'/u01/app/oracle/oradata/backupset/prod4/increment/standby_%d_%t_%s_%p.bak'includecurrent controlfile for standby filesperset=5 tag 'FOR STANDBY';

使用基于scn的增量备份。因为备库的当前scn卡在5105432处,所以主库的增量备份应该是从scn=5105432往后备份,一直备份完所有的数据文件块。这样备库缺少的gap事物就包含在了备份集中,增量恢复到备库以后缺失的gap对应的事物就被恢复到了数据文件中,gap问题得到解决。

备份过程中的注意事项:

1、主库端要开启控制文件的自动备份

RMAN> show all;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO '/u01/app/oracle/oradata/autobackup/prod4/ctl_%F';

2、备份过程中会产生当前控制文件和standby controlfile的备份集

3、备份命令的解释:

a、as compressed backupset --压缩备份集

b、incremental --增量备份

c、from SCN 5105432 --基于scn的增量备份

d、database --基于scn的全库增量备份

e、include current controlfile for standby --备份当前控制文件和standby controlfile

f、filesperset=5 --每个备份集包含的数据文件个数最多为5个

g、tag 'FOR STANDBY' --备份集的标签

3、确定包含备库控制文件的备份集

RMAN> list backup;

6fcf46b9ee4f4a64f734474ec1dde40b.png

截图显示:备库控制文件在备份集/u01/app/oracle/oradata/backupset/prod4/increment/standby_PROD4_910749273_934_1.bak中。

【文章同步发布于漫兮网:https://www.manxinet.com】

RMAN> exit;

三、备库端进行rman的增量恢复

1、备库端创建与主库相同路径的备份集存放目录

[oracle@edsir4p1-PROD4 ~]$ mkdir -p /u01/app/oracle/oradata/backupset/prod4/increment

2、把增量备份SCP到备库上

[oracle@edsir1p8-PROD4 increment]$ cd/u01/app/oracle/oradata/backupset/prod4/increment

[oracle@edsir1p8-PROD4 increment]$ scp *192.168.33.138:/u01/app/oracle/oradata/backupset/prod4/increment

3、重新启动备库到nomount状态恢复控制文件

SQL> shutdown immediate

SQL> startup nomount

[oracle@edsir4p1-PROD4 ~]$ export ORACLE_SID=PROD4

[oracle@edsir4p1-PROD4 ~]$ rman target /

RMAN> restore standby controlfile from'/u01/app/oracle/oradata/backupset/prod4/increment/standby_PROD4_910749273_934_1.bak';

2c14f524299a1418b0afa8b462f1b741.png

截图显示备库控制文件恢复完成,恢复过程中把所有的备库控制文件全部恢复。原来的备库控制文件control01.ctl, control02.ctl, control03.ctl全部恢复。

4、确认备份集信息

RMAN> alter database mount;

RMAN> list backup;

查看备份集信息,确认控制文件中记录的备份集路径和备库上的备份集的实际路径是否相同。如果不同删除控制文件中记录的备份集信息,重新注册备份集:

【文章同步发布于漫兮网:https://www.manxinet.com】

RMAN>crosscheck backup;

RMAN>crosscheck archivelog all;

RMAN>delete noprompt obsolete;

RMAN>delete noprompt expired backup;

RMAN>delete noprompt expired archivelog all;

RMAN> delete backup;

RMAN> list backup;

RMAN> catalog start with'/u01/app/oracle/oradata/backupset/prod4/increment';

5、增量恢复数据文件

RMAN> recover database noredo;

e4da49f41a73727da45ed099322a1e10.png

打开备库

SQL> alter database open;

【文章同步发布于漫兮网:https://www.manxinet.com】

启动mrp进程

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASEUSING CURRENT LOGFILE DISCONNECT FROM SESSION;

[root@edsir4p1 ~]# ps -ef | grep mrp

92ac87d48b9a8bc5fb4c879b7d54f381.png

主库端切归档

SQL> alter system archive log current;

查看归档日志gap问题是否解决,及归档日志的应用情况

备库端执行:

SQL> selectname,THREAD#,SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,APPLIED from v$archived_log;

4d409ed6bd6d6cc76e130a78b9cd81b6.png

截图显示:最新同步过来的归档日志正在备库端应用,说明gap问题解决了。

因为备库控制文件是最新恢复的控制文件,没有记录之前的任何归档信息,只记录了最新同步过来的归档。

至此,完成使用rman增量恢复解决DG备库的gap问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值