日志的傳輸以及應用可以算作是Dataguard的核心所在.在我們搭建DG的過程中,如何配置優化日志傳輸服務,關系到整個DG體系的性能以及可用性.而且,不同的保護模式也需要不用的參數組合.10g下,影響配置日志傳輸的參數主要有以下幾個:
1. ARCH/LGWR
設定日志的傳送模式,預設使用arch傳送.傳送發生在日志切換邊沿,最大可用和最大保護模式下,需要使用lgwr來傳送日志.使用lgwr傳送日志,需要備庫建立standby logfile,并且支援日志的實時應用.
2. SYNC /ASYNC
該參數表示網絡I/O的操作方式, SYNC表示網絡I/O将與重做日志的寫入同步進行,等待網絡i/o完成收到響應後繼續下一個寫操作.而ASYNC表示日志的傳送是異步的,oracle利于LNS程序,接收lgwr發送過來的重做日志資訊放入緩沖區,并異步傳送到備機,也可以手動指定緩沖區的大小
最大保護和最大可用模式下,需要設定為SYNC AFFIM模式.
3. AFFIM/NOAFFIRM
該參數是LGWR傳送模式下的一個屬性,表示重做日志的磁盤I/O模式, AFFIM表示同步并且發送成功寫操作狀态到主資料庫, NOAFFIRM表示主庫無需等待備庫的日志寫成功.
一般來說, SYNC AFFIM 與ASYNC NOAFFIRM是最常用合理的組合方式.
4. MANDATORY /OPTIONAL
該參數表示歸檔的模式,預設值為OPTIONAL. MANDATORY表示強制歸檔,如果歸檔不成功會引起主庫的歸檔等待.
5. REOPEN/NOREOPEN
該參數表示歸檔檔案收到錯誤資訊後,是否重試以及重試的最小間隔時間.
6. MAX_FAILURE/ NOMAX_FAILUR
該參數表示由于故障而被關閉的目标檔案的最大重試次數.超過設定次數,将不再重試.
NOMAX_FAILUR表示不斷重試
7. NET_TIMEOUT
該參數表示在網絡出現異常或者某些情況下,主資料庫的LNS程序放棄網絡連接配接之前的最大等待時間.
8. DELAY/NODELAY
該參數表示日志的應用模式,delay表示延時指定時間應用傳送過來的日志,nodelay表示不延時.
該參數作用也可以通過釋出alter database recover managed standby database delay ** 來實作.
9. VALID_FOR
VALID_FOR的引入,為了更好的實作主備平滑切換,用于說明目标檔案何時可用以及歸檔的重做日志類型.
VALID_FOR屬性由2部分組成:archive_source(online_logfile,standby_logfile,all_logfiles)和database_role(primary_role,standby_role,all_role).
online_logfile: 表示歸檔聯機重做日志
standby_logfile:表示歸檔備用資料庫的重做日志/接受的重做日志
all_logfiles: online_logfile && standby_logfile
primary_role: 僅當資料庫角色為主庫時候歸檔生效
standby_role: 僅當資料庫角色為備庫時候歸檔生效
all_role: 任意角色歸檔均生效
例如:
SQL> show parameter log_archive_dest_1 log_archive_dest_2 NAME TYPE VALUE ———————————— ———– —————————— log_archive_dest_1 string location=E:\Oracle\archive\demo VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=demo log_archive_dest_2 string SERVICE=test_standby VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby1
在主庫上,歸檔聯機日志到本地磁盤,并傳送到備庫, 在備庫上,同時歸檔日志到本地磁盤.同理,備庫上也做相應配置,這樣可以在不修改參數的前提下盡可能實作平滑switchover.