0
点赞
收藏
分享

微信扫一扫

standby redo log的作用

扒皮狼 2022-02-13 阅读 82


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


举报

相关推荐

0 条评论