增量備份解決dg庫日誌gap


有時候備庫滯後於主庫很長時間了,而主庫的歸檔日誌已經不存在了,此時的日誌間隔如何消除那,很多人選擇重建備庫,這個是很麻煩的,尤其當主庫數據量很大的時候,此時我們還有另外一種選擇,那就是使用增量數據庫備份來前滾備庫,消除日誌間隔,具體作法如下:


1.備庫查看丟失的歸檔時的scn號

idle> select current_scn from v$database;

CURRENT_SCN

-----------

    96458277

2.主庫創建基於丟失歸檔scn號爲起始的增量備份(要確定主庫和備庫的目標目錄有足夠的空間,這裏使用/tmp文件夾)

RMAN>
run{
BACKUP DEVICE TYPE DISK INCREMENTAL FROM SCN 96458277 DATABASE FORMAT '/tmp/stb_bk/%U_for_stb.bk' include current controlfile for standby;
}

3.備份好之後,從主庫傳到備份庫的目錄中,可以與上文的目錄不同。

 

RMAN> CATALOG START WITH '/tmp/stb_bk/';

 

 

4.查看一下controlfile的位置,因爲接下來要使用備份的控制文件。

idle> show parameter control

再查看一下standby_log文件的位置,因爲接下來可能需要重建。

idle> select *from v$logfile ;

 

 

5.使用如下命令在rman中恢復

RMAN>
run{
restore standby controlfile to '/tmp/stb_controlfile01.ctl';
recover database noredo;
}

如果報如下錯誤,可能是recover managed standby命令正在執行:

ORA-19870: errorwhile restoring backup piece /tmp/stb_bk/05n5a31s_1_1_for_stb.bk

ORA-19573: cannotobtain exclusive enqueue for datafile 1

執行如下命令,或者重啓數據庫到mount狀態:

idle>alter database recover managed standby database cancel ;

然後在rman中再次執行:

RMAN>

run{

restore standby controlfile to '/tmp/stb_controlfile01.ctl' ;

recover database noredo;

}

 

 

6.關閉數據庫,將恢復出來的備份控制文件覆蓋掉原有的控制文件。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章