standby redo log多少组才合理

为什么要多一组

跟上应用日志的步伐.很特殊的情况下.

比如写日志很快3个很快写满.这样可能dg端的std也是3个写满,这样无法接收日志.应该来不及应用.而多一个就不会出现这样的情况.

当主库的日志文件1写满的时候 切换到2 然后触发归档 写redo的速度大于了归档的速度 所以当三个日志写满的时候 备库的三个日志也是满的 且正在归档 无法被覆盖 多一个就会减少日志等待的性能问题 是吗?

Dataguard 分类:

  Physical Standby(Redo Apply)

  Logical Standby(SQL Apply)

  Dataguard 保护模式:

  maximize performance(最大性能模式)

  maximize availability(最大可用模式)

  maximize protection(最大保护模式)

  Online redo log

  存放着在线事务未归档的更改信息,主库肯定是要配置的。

  如果是Physical Standby,对于备库无法open read write,所以备库而言online redo log几乎无用,但是考虑到备库随时可能切换为主库,就必须配置online redo log;

  如果是Logical Standby,备库可以open read write,所以必须配置online redo log.

  Standby redo log

  备库的remote file server(RFS)进程接收到主库传过来的redo data,然后写到standby redo log中,standby redo log的作用类似于主库的online redo log,只是他存在

  于备库,只存放主库传过来的redo data.在考虑主库可能会切换为备库的情况下,主库也需要配置standby redo log.

  在下面三种情况备库配置必须standby redo log:

  1)在最大保护和最大可用模式下

  2)在实时应用情况下

  3)配置级联dataguard情况下

  Standby redo log日志的配置原则:

  和主库online redo log大小一致,组数至少比主库online redo log组多一组

在Data Guard环境中,Standby Redo Log是一个比较特殊的日志类型。从最新的DG安装指导中,都推荐在Primary和Standby端,都配置Standby Redo Log。
 
简单的说,Standby Redo Log就是在Standby端应用传递Redo Log过程中,逐步执行的online redo log。Standby端虽然也有online redo log,但是在redo apply应用的过程中,是不使用online redo log的。即使是11g Active Data Guard支持apply中读取standby数据,这个操作也是read-only的,并不涉及当前实例redo log的生成(注意是生成)。所以,如果一直是在Standby角色,online redo log是不需要的。
 
Primary传递过来的redo log信息,是存放在standby redo log组内进行apply的。并且随着主库Primary日志的切换动作而切换。这也就是为什么推荐standby redo log的大小和Primary online redo log的大小保持一致的原因。

单机情况下
所有redo_log组数+1


RAC环境下
所有redo log组数+实例数
正常情况下,一般每个实例的redo log组数目是一样的,比如为你,则standbby redo log组数为(n+1)*thread

假如有个rac共三个实例,每个实例都是3个log组,那么如果要做dg的standby log要增加12个standby loggroup
(3+1)*3=12

假如有个rac共三个实例,实例1有3个log组,实例2有4个log组,实例3有5个log组,总共有12个log组,那么如果要做dg的standby log要增加15个standby loggroup
所有redo log组数+实例数=(3+4+5)+3=15

-----SRL

前段时间搭建了一个测试库,主库是双节点rac,备库是单实例。

最近开发测试,老反应主备数据不同步。

检查主备参数配置的都没问题。最后通过dataguard日志,终于找出问题所在。
      1 Log Apply Services       Informational       0        1888          0 NO  2015-08-06 23:26:02 Media Recovery Log /u01/app/oracle/arch/2_1046_884367293.arc
      1 Log Apply Services       Warning             0        1889          0 NO  2015-08-06 23:26:03 Media Recovery Waiting for thread 2 sequence 1047 (in transit)
      1 Remote File Server       Warning             0        1890          0 NO  2015-08-06 23:27:02 RFS[79]: No standby redo logfiles created for thread 2


可以看到,日志报 没有创建thread 2的standby redo logfiles。

为备库添加上thread 2的standby logfile问题就解决了。
alter database add standby logfile thread 2 group 21 size 50M;
alter database add standby logfile thread 2 group 22 size 50M;
alter database add standby logfile thread 2 group 23 size 50M;
alter database add standby logfile thread 2 group 24 size 50M;


原来一直以为rac的单实例备库只需要thread 1的standby logfile,看来这个想法是严重错误的。
rac有几个节点,就要创建几个thread standby logfile。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值