为什么HDR Secondary会丢失已经提交的交易

http://www-31.ibm.com/support/techdocs/cn/viewdoc/detail?DocId=2697869H05000

[为什么HDR Secondary会丢失已经提交的交易]

内容提要:在HDR 环境中,很多客户都配置了手工切换。但是当Primary因为各种原因非正常关闭时,如果DBA没有直接将Secondary切换成Primary或者Standard,而是直接重启Secondary。在Secondary中的从上次checkpoint点以后的交易都将丢失。

说明:上述情况并非故障或者异常,而是HDR设计原理。该现象可以通过下述步骤重现。

1,建议HDR复制环境(使用手工切换,复制周期DRINTVAL设为1秒)

2,在Primary上创建数据库(Buffered logging 或者Unbuffered logging 没有实质影响)和表

3,在Primary使用简单的insert into向表中插入数据。如果是Buffered logging数据库,那么当Logical log Buffer被写满时数据才会被复制,并且有部分数据因驻留在Logical log buffer中没有被复制。如果是Unbuffered logging数据库,则Primary 与 Secondar数据一致。

无论使用哪种日志模式。由于使用insert into语句,所有数据插入交易都是马上提交的。所以Secondary上看到的数据都是已经提交的数据。

4,kill -9 将Primary杀掉。

5,在Secondary上执行select county(*) from。确认数据仍然存在。

6,onmode -ky;oninit 重启Secondary。

7,select count(*) from 发现表中数据条数是0。

总结:造成该现象的原因是在HDR环境中,Secondary数据一定要与Primary上一致,而Primary 和 Secondary之间同步的点是checkpoint。当Primary被kill掉后,Primary无法给Secondary发送信号,而Secondary在DRTIMEOUT之前都认定Primary是存在的。这时如果直接重启Secondary,它会认定需要从上一个一致点,也就是最后一次checkpoint重新进行复制。因此,将已经提交的数据丢弃掉。

经过分析可以发现,DBA应该正确判断情况采取正确处理措施。上述现象不会对数据和生产造成任何问题。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11134849/viewspace-741622/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11134849/viewspace-741622/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值