分布式事务数据库HotDB的存储节点故障切换后数据正确性保障

无论是异步复制还是半同步复制,都可能会存在这样一种情况:

**在故障切换全部完成后,**原主库恢复,新主库(原从库)复制IO线程可能自动重连并获取到切换前没有获取到的事务,而这样的事务在切换的处理过程中,已经是被认定没有提交成功的事务,不能再继续复制,否则会有数据混乱的风险。
因此增加计算节点参数failoverAutoresetslave,默认关闭。
<propertyname=“failoverAutoresetslave”>false
**故障切换后,**会暂停原主从之间IO线程,并对原主库每分钟进行一次心跳检测直到原主库恢复正常。原主库恢复正常后,对比原主库的binlog位置,检测原从库(现主库)是否存在切换前没有获取到的事务,若存在,开启此参数则自动重置主从复制关系。若不存在未接收的事务,则重新开启IO线程并不再做任何处理。
注意:
Ø 检测是否有未接收的事务的前提是主从库都需要开启GTID,否则此参数开启时,故障切换完成会自动重置主从复制关系。
Ø 若原主库在心跳检测时重试超过10080次,仍然为不可用状态,此时,参数为开启状态,也会自动重置主从复制关系。
Ø 若发生自动重置复制关系后,计算节点记录warning级别的报警日志如下:
you should decide whether to manuallyexecute the unexecuted part of binlog or rebuild the replication according tothe actual situation.

且管理平台中的主备状态会显示异常,鼠标悬浮显示如图提示信息:

在这里插入图片描述
Ø 若故障切换完成后,主从库未开启GTID或存在未接收的事务,但此参数为关闭状态,计算节点也会记录warning级别的报警日志如下:
DBA is required to deal with the new master,which is the original slave before switching and decide whether to stopreplication or continue replication regardless. In addition, there is risk ofdata error caused by automatic reconnection of replication after manual orunexpected restart of the new master.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值