standby redo log的作用

大家都知道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的原因吧~

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