Mysql主备延迟

正常情况下,当主库执行更新生成binlog后,都会传到备库并执行,使得主从达到最终一致。 但只有最终一致性并不能完全的保证mysql的高可用能力,还可能存在如下情况:

主备延迟

主备延迟指的是主库执行完成的时间和备库执行完成的时间的差距,可查看mysql备库延迟时间:

 show slave status 

计算方式为事务的binlog的会有时间字段用于记录主库的写入时间,再在备库取出正在执行的事务的时间字段值,计算两边的差值。
在网络正常的情况下,主备延迟的主要原因就是备库接收到binlog到执行这个事务之间的时间差。
可能造成主备延迟的原因:
1.备库机器比主库性能差
2.备库压力大,虽然备库无法写入,但其若再备库上进行大量的查询,同样可能导致其资源消耗过多。
3.大事务,如果主库上的进行的事务操作复杂,导致主库执行花费大量时间,就有可能导致从库延迟(delete语句删除大量数据时,应分次删除而不是一次删除巨量数据)
4.备库并行复制能力

备库并行复制能力

在进行主库和备库切换时,常使用以下策略:

1.可靠性优先策略

备库和从库切换时,走一下步骤:
1.判断备库的延迟,若小于某个值则继续否则就重试
2.把主库改成只读
3.判断备库延迟,直到其值为0
4.备库改成可读写状态
5.业务请求切换到备库

这个过程中步骤3比较耗时,可能会导致业务有一小段时间无法进行写入。根据不同的策略,对这个情况进行抉择。

2.可用性优先策略

如果在上面直接将4,5放到最前面执行,即不等主备数据同步,直接切换,那么就没有不可用的时间,但是可能会出现数据不一致的情况,因此一般还是选u你则可靠性策略。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值