本例实验环境19c。在开始前,先断开主库日志发送,在专门在主库制造出一些变更,等生成一些新的归档日志后,故意删除一些,等恢复DG后,就形成了GAP。 在备库确认GAP范围,本例中线程1缺少114号日志。
SQL> SELECT * FROM V$ARCHIVE_GAP; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# CON_ID ---------- ------------- -------------- ---------- 1 114 114 1
尽量寻回缺失日志,放入原目录后DG能自动恢复。本例假定该日志已寻不回。
停用备库DG
DGMGRL> EDIT DATABASE o19dg SET STATE='APPLY-OFF'; Succeeded.
2. 确认备库当前SCN
SQL> select current_scn from v$database; CURRENT_SCN ----------- 3678537
3. 使用该SCN值在主库做增量备份, 完成后相应路径会出现备份
$ cat bak_inc.cmd
connect target /
run
{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental from scn 3678537 database format '/u01/bak/o19_%U';
release channel d1;
release channel d2;
}
4. 在主库生成新的备用控制文件
SQL> alter database create standby controlfile as '/u01/bak/std.ctl'; Database altered.
5. 将备份和备用控制文件传至备库服务器,用新备用控制文件取代旧的,并启动到mount模式。 6. 在备库注册备份
RMAN> CATALOG START WITH '/u01/bak'; Starting implicit crosscheck backup at 2023-01-20 10:21:00 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=15 device type=DISK Crosschecked 8 objects Finished implicit crosscheck backup at 2023-01-20 10:21:03 Starting implicit crosscheck copy at 2023-01-20 10:21:03 using channel ORA_DISK_1 Finished implicit crosscheck copy at 2023-01-20 10:21:03 searching for all files in the recovery area cataloging files... cataloging done List of Cataloged Files ======================= File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_103_kwmt4k75_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_104_kwmt4m41_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_105_kwmv16wy_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_107_kwmwx3z1_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_106_kwmwx401_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_108_kwmwx42f_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_109_kwmwxkkj_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_110_kwmwxkxt_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_111_kwmwxl1n_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_112_kwmwxrnb_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_113_kwmwxskb_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/archivelog/2023_01_20/o1_mf_1_115_kwmwxt28_.arc File Name: /u01/app/oracle/fast_recovery_area/O19DG/autobackup/2023_01_13/o1_mf_s_1125998694_kw1dsy4y_.bkp File Name: /u01/app/oracle/fast_recovery_area/O19DG/autobackup/2023_01_13/o1_mf_s_1126015854_kw1xjkjw_.bkp
7. 增量恢复备库
RMAN> recover database noredo;
8. 重启MRP
DGMGRL> EDIT DATABASE o19dg SET STATE='APPLY-ON'; Succeeded.
完成! 确认GAP已不存在
SQL> SELECT * FROM V$ARCHIVE_GAP; THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# CON_ID ---------- ------------- -------------- ----------
