1. 程式人生 > >adg的資料傳輸應用三大模式轉換

adg的資料傳輸應用三大模式轉換

1.最大可用性模式(Maximum Availability)

1)該模式提供了僅次於“最大保護模式”的資料保護能力;

2)要求至少一個物理備庫收到重做日誌後,主庫的事務才能夠提交;

3)主庫找不到合適的備庫寫入時,主庫不會關閉,而是臨時降低到“最大效能模式”模式,直到問題得到處理;

4)優點:該模式可以在沒有問題出現的情況下,保證備庫沒有資料丟失,是一種折中的方法;

5)缺點:在正常執行的過程中缺點是主庫的效能受到諸多因素的影響。

2.最大效能模式(Maximum Performance)

1)該模式是預設模式,可以保證主資料庫的最高可用性;

2)保證主庫執行過程中不受備庫的影響,主庫事務正常提交,不因備庫的任何問題影響到主庫的執行;

4)優點:避免了備庫對主資料庫的效能和可用性影響;

5)缺點:如果與主庫提交的事務相關的恢復資料沒有傳送到備庫,這些事務資料將被丟失,不能保證資料無損失。

3.最大保護模式(Maximum Protection)

1)這種模式提供了最高級別的資料保護能力;

2)要求至少一個物理備庫收到重做日誌後,主庫的事務才能夠提交;

3)主庫找不到合適的備庫寫入時,主庫會自動關閉,防止未受保護的資料出現;

4)優點:該模式可以保證備庫沒有資料丟失;

5)缺點:主庫的自動關閉會影響到主庫的可用性,同時需要備庫恢復後才能提交,對網路等客觀條件要求非常的高,主庫的效能會因此受到非常大的衝擊。

三種模式

比較項

最大保護

最高可用

最大效能

Redo寫或傳輸程序

lgwr

lgwr

lgwr或者arch

網路傳輸模式

sync

sync

sync或者async

是否落盤確認

affirm

affirm

affirm或者noaffirm

standby redologs

需要

需要

可有可無

ARCH傳輸模式只能用於最大效能模式下

最大保護和最高可用模式下只能使用LGWR SYNC傳輸模式

AFFIRM:在日誌寫程序進行之前,所以的歸檔日誌和備庫日誌必須同步寫完

NOFFIRM:在主庫的日誌寫程序不等所有磁碟IO完成

引數如預設的 則是NOFFIRM

使用AFFIRM時,可以確保以下三點:

1能確保資料沒有丟失在主庫失敗後

2 可以在本地或遠端使用

3 影響主庫的效能

LGWR和AFFIRM,日誌寫程序同步寫REDO DATA到磁碟,在DISK寫完前,控制權不交給使用者,還有主庫的線上日誌可能不可用在歸檔完成之前

ARCH和AFFIRM ARCn程序同步寫REDO DATA到磁碟,歸檔操作可能發生時間比較長,主庫的線上日誌在歸檔完成日誌前可能不可用。

ASYNC和AFFIRM,效能不受影響。

設定引數位置

主庫log_archive_dest_n引數設定

示例:*.log_archive_dest_2='service=orcl  lgwr sync affirm

valid_for=(online_logfiles,primary_role)  db_unique_name=orcl'

重要引數分析

arch:只支援最大效能模式。歸檔日誌通過primary上的arch程序傳送給standby的rfs程序,儲存到指定路徑(如果有standby redo logfile,則儲存到該位置,然後再歸檔),然後redo應用。

309180323562

lgwr:primary使用LGWR即時將日誌傳送到standby的rfs程序,並儲存到standby redo logfile中,而不再需要等到歸檔操作時才傳送,儲存到standbyredo logfile,然後再歸檔,然後redo應用。

用LGWR傳輸大致如下:

1)主庫:只要有新的重做日誌產生,lgwr程序將觸發LNSn程序把新生成的日誌傳輸給備庫rfs程序。

2)備庫:rfs程序接收到日誌後,將其寫入standby重做日誌,如果備庫開啟了實時應用,就立即做日誌應用,如果沒有開啟,則等standby重做日誌歸檔後再應用。

3)其中,async和sync的區別在於:sync是在redo還在記憶體時,LNSn程序就開始傳輸,而async是在redo寫到online redo log後,LNSn才開始傳輸。

同步的實時性來看,lgwr(sync) > lgwr(async)> arch

sync模式下,主庫產生任何redo時,同時馬上觸發網路傳輸給備庫RFS程序;

309180557479

async模式下,主庫產生redo時,先寫到本地online redo logfile檔案中,LNSn程序從online redo logfile檔案中取redo資料網路傳輸給備庫RFS程序。

309180830529

模式切換

首次performance>>availability>>protection順序需要在主庫執行且主庫必須處於mount狀態;

如果已經由performance>> availability>>protection資料保護級別操作過1次,那麼再次操作時可直接操作;

protection>>availability>>performance順序直接操作即可

主備庫操作:SQL>select database_role,protection_mode,protection_level from v$database;

主庫更改log_archive_dest_n引數配置,如:

SQL>alter system set log_archive_dest_2='service=orcldg lgwr sync valid_for=(online_logfiles,primary_role) db_unique_name=orcldg';

主庫操作:SQL> shutdown immediate;

備庫操作:alter database recover managed standby database cancel;

主庫操作:SQL>startup mount;

主庫操作:SQL>alter database set standby database to maximize availability;

主庫操作:SQL>alter database open

完成。

-----------------------------------------------------------------------------------------上下一樣的--------------------------------------------------------------------------------------------------

切換方式

1.主庫啟動到mount狀態

2.主庫中執行如下SQL語句

SQL> ALTER SYSTEM SET log_archive_dest_2='SERVICE=DG LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DG';

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};

3.查詢保護模式語句

SQL> SELECT PROTECTION_MODE FROM V$DATABASE;