欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

standby redo log的作用

程序员文章站 2024-02-05 23:25:10
...

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

本文永久更新链接地址