天天看點

Oracle DG gap 手動同步

oralce 11g 單節點主備同步環境,備庫提供read(open狀态)。實時同步方式。

主庫重新開機後,沒有按照正常順序啟動和關閉備庫及日志應用。早上發現後,已經出現很多gap。

1.在備庫的日志裡去檢視,說是等待sequence 3362的日志,其實主庫上的最小(最早的)的日志已經到3370了。。也就是主庫已經沒有3362的日志了。是以要恢複出來。

2.當然可以通過sequence或者scn恢複,這裡通過scn恢複。比較穩妥。

先查出備庫3362對應的first_change 号:

select first_change# from v$archived_log where sequence#='3362';

  1216228833
           

3 . rman 基于scn恢複出來

這裡有3個地方要恢複和注意的

1.資料檔案恢複。

2.也要恢複當時的control 檔案。

3.主庫的密碼檔案也要重新傳一份到備庫。

backup incremental from scn  database format '/data/ora11g/archivelog/gap_%U';
 backup current controlfile for standby format '/data/ora11g/archivelog/gap.ctl'
           

4 . 把備份集,控制檔案及密碼檔案傳輸到備庫

scp gap* oracle@dgtest:/data/ora11g/archivelog/
scp orapwjktoa oralce@dgtest:/data/ora11g/product/../db_1/dbs
           

5 .在備庫開始恢複,啟動到nomount狀态

restore standby controlfile from '/data/ora11g/archivelog/gap.ctl';

rman> catalog start with '/data/ora11g/archivelog/';
(按說這步控制檔案裡已經有,但是有時候還是會報錯,幹脆直接注冊進去。)

rman> recover database noredo;
           

6 . 把備庫切到open狀态,這時候alert.log裡面報警:

SRL log  needs clearing because log has not been created
SRL log  needs clearing because log has not been created
SRL log  needs clearing because log has not been created
SRL log  needs clearing because log has not been created
           

原因是剛才的standby redo 沒有清空(有幾組清幾組,網上有的說的删除重建,我這是clear 一樣,省點事情。)

7.之後就正常了,開啟同步,在主庫切換幾次log試試,驗證同步。