dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复

发现DG日志未应用,却已被删除.10g及以上版本可用如下方式处理,9i需要重建备库
 SEQUENCE#    DEST_ID ARC APP DEL S TO_CHAR(FIRST_TIME,
---------- ---------- --- --- --- - -------------------
      8029          1 YES NO  NO  A 2016-01-20 09:37:40
      8030          1 YES NO  NO  A 2016-01-20 09:59:22
      8031          1 YES NO  NO  A 2016-01-20 10:20:47
      9307          1 YES NO  NO  A 2016-01-18 11:14:43
      9308          1 YES NO  NO  A 2016-01-18 11:56:25
      9309          1 YES NO  NO  A 2016-01-18 13:15:42


alert中出现如下告警,提示有gap产生
FAL[client]: Failed to request gap sequence 
 GAP - thread 2 sequence 9300-9300
 DBID 1203244586 branch 881971762
FAL[client]: All defined FAL servers have been attempted.
-------------------------------------------------------------
Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
parameter is defined to a value that is sufficiently large
enough to maintain adequate log switch information to resolve
archivelog gaps.
-------------------------------------------------------------


SQL> select name,sequence#,applied from v$archived_log a where a.sequence#=(select max(sequence#) from v$archived_log


NAME                                                                                      SEQUENCE# APP
---------------------------------------------------------------------------------------- ---------- ---
+BMDATA/orcl/archivelog/2016_01_20/thread_2_seq_9382.578.901619965                             9382 NO


而此时主库归档已经被删除。
恢复步骤如下:


【备库】
SQL> SELECT CURRENT_SCN FROM V$DATABASE;


           CURRENT_SCN
----------------------
        11088491280088


【主库】
RMAN> BACKUP INCREMENTAL FROM SCN  11088491280088 DATABASE FORMAT '/backup/backupset/dg_gap_%U' tag 'dg_gap';
SQL> ALTER DATABASE CREATE standby controlfile AS '/backup/backupset/dg_gap_standby.ctl'


【备库】
scp -P 10030 192.168.40.12:/backup/backupset/dg_gap* /backup/backupset/


【备库】
SQL> shutdown immediate;
SQL> startup nomount;
RMAN> restore controlfile from '/backup/backupset/dg_gap_standby.ctl';
RMAN> alter database mount;


清空备库日志组
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
注:如果采用了standby log模式,不需要清空,如果清空会出现
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
ALTER DATABASE CLEAR LOGFILE GROUP 1
*
ERROR at line 1:
ORA-19527: physical standby redo log must be renamed
ORA-00312: online log 1 thread 1: '/u01/oradata/xienfei/redo01.log'


说明:如果没有采用standby log模式,有几组需要清空几组
备库重设flashback
SQL> ALTER DATABASE FLASHBACK OFF;
SQL> ALTER DATABASE FLASHBACK ON;


RMAN> catalog start with '/backup/backupset';
RMAN> recover database noredo;
查看alert可以看到Incremental restore
Incremental restore complete of datafile 1 +BMDATA/orcl/datafile/system01.dbf
  checkpoint is 11088529914068
  last deallocation scn is 11085244558503
SQL> alter database recover managed standby database disconnect from session;
SQL> alter database switch logfile;


注:可能会遇到recover database noredo时出现提示RMAN-06094: datafile 36 must be restored,这时候只要对数据文件单独先进行restore再进行recover即可。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值