增量備份修復(fù)物理備庫(kù)gap
適用場(chǎng)景:主備不同步,主庫(kù)歸檔日志已刪除且無(wú)備份.
解決方案:主庫(kù)增量備份修復(fù)dg備庫(kù)中的gap.
具體步驟:
1、停止同步
> alter database recover managed standby database cancel;
2、最小scn
備庫(kù)查詢(xún)最小scn號(hào).
> select to_char(current_scn) from v$database;
3、備份
在主庫(kù)進(jìn)行增量備份.
說(shuō)明:3162298為第2部查詢(xún)出來(lái)的最小scn.
$ rman target /RMAN> backup as compressed backupset incremental from scn3162298database format '
/home/oracle/fsbak/forstandby_%U' tag 'FORSTANDBY';
RMAN> backup current controlfile for standby format '
/home/oracle/fsbak/forstandbyctl.bck';
說(shuō)明:使用基于scn的增量備份.因?yàn)閭鋷?kù)的當(dāng)前scn卡在3162298處,所以主庫(kù)的增量備份應(yīng)該是從scn=3162298往后備份,一直備份完所有的數(shù)據(jù)文件塊.這樣備庫(kù)缺少的gap事務(wù)就包含在備份集中,增量恢復(fù)到備庫(kù)后缺失的gap對(duì)應(yīng)的事務(wù)就被恢復(fù)到數(shù)據(jù)文件中.
4、傳輸備份集
將備份拷貝至備庫(kù).
scp /home/oracle/fsbak/*oracle@
s192.168.133.120:/home/oracle/fsbak/
5、恢復(fù)控制文件
備庫(kù)恢復(fù)控制文件.
RMAN> shutdown immediate;
RMAN> startup nomount;
RMAN> restore standby controlfile from '
/home/oracle/fsbak/forstandbyctl.bck';
6、恢復(fù)數(shù)據(jù)文件
備庫(kù)查看備份集信息,確認(rèn)控制文件中記錄的備份集路徑和備庫(kù)上的備份集的實(shí)際路徑是否相同。如果不同刪除控制文件中記錄的備份集信息,重新注冊(cè)備份集.
RMAN> alter database mount;
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 '/home/oracle/fsbak/';
RMAN> recover database noredo;
SQL> alter database open;
7、實(shí)時(shí)同步
開(kāi)啟實(shí)時(shí)同步.
SQL> alter database recover managed standby database using current logfile disconnect from session;
$ ps -ef | grepmrp
