standby redo log的作用

大家都知道dataguard有三種數據保護模式,最大保護模式,最高可用模式,最高性能模式.在最大保護模式,最高可用模式中必須使用standb

大家都知道dataguard有三種數據保護模式,最大保護模式,最高可用模式,最高性能模式.
在最大保護模式,最高可用模式中必須使用standby redo log.最高性能模式中,官方推薦也使用
standby redo log.那到底使用standby redo log和不使用有什么區別呢?

db Oracle 10.2.0.1 物理standby
/u09/standbyarchivelog 為standby_archive_dest的路徑
/u09/archivelog 為log_archive_dest_1的路徑

以下測試后結果:
———1
主庫log_archive_dest_2的配置:
log_archive_dest_2=’service=dba01 arch ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dba01′
是否使用standby redo log: no
產生的測試結果:
主庫切換日志時,才會傳已歸檔的日志到備庫standby_archive_dest的路徑,并使用mrp進程應用.
———2
主庫log_archive_dest_2的配置:
log_archive_dest_2=’service=dba01 arch ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dba01′
是否使用standby redo log: yes
產生的測試結果:
主庫切換日志時,才會傳已歸檔的日志到備庫的standby redolog,并在log_archive_dest_1的路徑中產生一個歸檔,并使用mrp進程應用.
———-3
主庫log_archive_dest_2的配置:
log_archive_dest_2=’service=dba01 lgwr ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dba01′
是否使用standby redo log: no
產生的測試結果:
備庫standby_archive_dest的路徑中會多出一個歸檔文件去對應primary的當前日志文件,
mrp在主庫進行日志切換時才應用此歸檔文件.
如果備庫要failover,當前沒有歸檔的日志文件不會被應用.
———-4
主庫log_archive_dest_2的配置:
log_archive_dest_2=’service=dba01 lgwr ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dba01′
是否使用standby redo log: yes
產生的測試結果:
主庫的當前日志會傳到standby redo log中,歸檔時standby redo log歸檔到log_archive_dest_1的路徑.
mrp在主庫日志切換時才應用此standby redo log.
如果備庫要failover,當前的standby redolog會被應用.

結論:
使用arch傳輸歸檔,有無standby redo log無差別,因為要傳的日志都是歸檔日志.
使用logwr 傳輸歸檔,在沒有standby redo log的情況下,如果備庫執行failover,只會應用主庫歸檔過的log,未歸檔的就算已經傳到備庫,也是不應用的;
使用logwr 傳輸歸檔,在有standby redo log的情況下,如果備庫執行failover,不僅會應用歸檔過的log,未歸檔的standby redo
log也可以應用.這就減少了數據的丟失.我想這也是為什么最大保護和最高可用必須使用standby redo log的原因吧~

本文永久更新鏈接地址

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享