Oracle 11g Dataguard 暫停物理備庫的日誌傳輸

kakaxi9521發表於2017-07-18

這兩天生產端的日誌產生過多導致災備端的歸檔日誌目錄滿的現象,在清除災備端的日誌後發現log_archive_dest_2處於error狀態,需要將其enable。在實際生產系統中,通常有這樣的場景,例如在系統維護日,對主庫進行大量的業務更新,會有大量的DML操作;為了避免主庫中的業務更新對備庫造成影響,可以暫停主庫對備庫的日誌傳輸,這樣的話,如果主庫的更新出現問題,備庫還保留一份完整的資料映象,可以執行 failover(失敗切換)。

1、在主庫上面檢視備份的歸檔路徑

SQL> show parameter log_archive_dest_2


NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2     string SERVICE=flame ASYNC VALID_FOR=
(ONLINE_LOGFILES,PRIMARY_ROLE)
 DB_UNIQUE_NAME=flame

SQL> show parameter log_archive_dest_state_2


NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2     string ENABLE

2、透過設定 defer 引數來暫停主庫對備庫的日誌傳輸

SQL> alter system set log_archive_dest_state_2 = 'defer';


System altered.

執行歸檔日誌切換

SQL> alter system switch logfile;


System altered.

3、恢復主庫到備份的日誌傳輸,暫停日誌傳輸後的歸檔日誌會全部傳輸到備庫,不會導致備庫的歸檔日誌 gap

SQL> alter system set log_archive_dest_state_2 = 'enable';
System altered.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2142212/,如需轉載,請註明出處,否則將追究法律責任。

相關文章