理解standby redo log

在創建Oracle Dataguard的時候,難免會碰到Standby Redo LogSRL),它和ORL到底有何不同,下面是我自己的一點理解,大部分都是翻的Oracle官方文檔:

1. SRL只有在數據庫standby角色是才起作用,Oracle建議我們爲primary也配置SRL只是爲了以後主從切換時不用人爲干預

2. standbySRL完全等同與primary上的ORL,在primary發生日誌切換時,Remote File SystemRFS)進程把primary上的ORL寫到standbySRL,同時standby歸檔上一個SRL

3. standby通過應用並歸檔SRL以達到與primary一致。

如果standby log應用服務會等待單個歸檔文件全部接收之後再啓動應用(在前面redo傳輸服務中我們介紹了不同形式的傳輸方式),如果standby端使 用了standby redologs,就可以打開實時應用(real-time apply),這樣dg就不需要再等待接收完歸檔文件,只要rfs redo數據寫入standby redologs,即可通過MRP/LSP實時寫向standby

物理standby啓用實時應用通過下列語句:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE ;邏輯standby啓用實時應用通過下列語句:
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
2
REDO數據延遲應用

實時就有延遲,某些情況下你可能不希望standbyprimary太過同步:),那就可以在log_archive_dest_n參數中指定 delay屬性(單位爲分鐘,如果指定了delay屬性,但沒有指定值,則默認是30分鐘)。注意,該屬性並不是說延遲發送redo數據到standby,而是指明歸檔到standby後,開始應用的時候。不過,即使在log_archive_dest_n中指定了delay屬性,但如果你應用數據時指定了實時應用,則standby會忽略delay屬性。另外Oracle 11gstandby端還可以通過下列的語句取消延遲應用。物理standby取消延遲應用可以通過下列語句:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;邏輯standby取消延遲應用可以通過下列語句:
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY NODELAY;提示:flashback database也可視爲延遲應用的一種方式。二、應用redo數據到物理standby
注意:啓動redo應用,物理standby需要首先啓動到mount狀態,然後再執行下列語句啓動,或者停止redo應用。

1、啓動redo應用
v 前臺應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
v
後臺應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;Oracle數據庫
v 啓動實時應用,附加USING CURRENT LOGFILE子句即可
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
停止redo應用

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