dataguard中出現gap後,採用基於scn的備份和恢復的方法進行恢復.
在恢復的過程中出現報錯:
RMAN> recover database noredo;Starting recover at 05-FEB-20
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/05/2020 12:12:28
RMAN-06094: datafile 71 must be restored
查詢數據字典 發現這個數據文件爲新增的數據文件,standby端還沒有此數據文件,所以需要先將此datafile進restore,否則無法recover.查找新增的數據文件sql如下:
SQL> select file#,name from v$datafile where creation_change#> =139323967;
解決辦法:
找到所有gap之後新增的數據文件,例如71-77號數據文件,先備份進行restore:
原庫:
RMAN> backup datafile 71,72,73,74,75,76,77 format '/rmanbak/backup/newfile_%U.bak';
在備庫進行還原:
RMAN> restore datafile 71,72,73,74,75,76,77;
然後再進行recover即可.
RMAN> recover datafile noredo;