1. 程式人生 > >oracle dataguard 主庫歸檔日誌缺失,導致主備庫不一致故障處理

oracle dataguard 主庫歸檔日誌缺失,導致主備庫不一致故障處理

背景描述:

主庫上由於歸檔日誌未及時清理,導致根目錄滿了,虛擬化環境,系統ping通,但連線不上,只好重啟。

由於主庫上堆積了大量歸檔日誌未應用到備庫,所以備庫上一直在追加日誌,然後在我低頭沉思賣萌的瞬間,再擡頭髮現備庫alert日誌報錯,缺失歸檔日誌。

火急火燎的檢視主庫歸檔日誌情況,特麼的,原先100多g的歸檔全沒了,開發那邊真是為民請命,隨手刪了歸檔騰了空間。。。

問題處理思路:

一、重建dataguard(嫌累)

二、根據當前備庫的scn號,對主庫進行增量備份,然後將備份應用到備庫上(是不是很完美)

毫無疑問的選擇思路2,大致步驟如下:

1、查詢備庫上scn號:

select current_scn from v$database;

  14372327

2、取消掉備庫上的日誌應用

alter database recover managed standby database cancel;

3、主庫上進行備份

rman target  /

backup incremental from scn 14372327 database format '/home/oracle/incre_bak.bk';

4、將備份檔案傳到備庫的/home/oracle目錄下面

5、在備庫上,先還原控制檔案

rman target /

restore standby controlfile to '/home/oracle/control01.ctl'

6、用還原出來的控制檔案,替換現有庫上的控制檔案

7、再次進入rman,進行恢復資料(此時要先將備庫啟動mount狀態,之前我在read only狀態,導致恢復失敗)

catalog start with '/home/oracle/’;

recover database noredo;

8、恢復完以後將備庫的日誌應用開啟,讓資料庫自己追加日誌即可。

alter database recover managed standby database using current logfile disconnect from session;

----------------------------------------------------------------------------------------------------------------------------

ps:大致流程便是如此,具體細節需要自己加以琢磨,過程中遇到點情況是難免的,根據錯誤提示,一步步解決問題方能加深理解。