分享好友 站长动态首页 网站导航

MySQL主从如何保证高可用

2022-03-31 09:46 · 头闻号数据库

什么时候是主备切换的最佳时机?

主从延迟越小越好。

如何查看备库的同步延迟?

-- 在slave上执行以下命令
show slave statusG

上图返回结果中包含一个seconds_behind_master字段,用于表示当前备库延迟了多少秒。

seconds_behind_master的计算逻辑

什么情况下会发生主备切换?

主备延迟的原因?

主备切换策略由哪几种?

什么是可靠性优先策略?

可靠性优先策略优先保证数据的可靠性,通常由专门HA系统实现。

可靠性优先策略下的主备切换逻辑

  1. 判断Slave B现在的seconds_behind_master,如果小于某个值(比如5s)继续下一步,否则重试这一步
  2. 把Master A修改为只读状态
  3. 判断Slave B的seconds_behind_master的值,直到这个值变为0为之
  4. 把Slave B改为可读写状态
  5. 把业务请求切到备库B,此时Slave B就正式晋升为主库

可靠性优先策略假设主从延迟很大,无法快速切换,主节点又不可用,这将会导致服务长时间的不可用。

可用性优先策略

可用性优先策略是不再等待主从同步完成,如果主节点一旦宕机,立马进行切换,但是此时可能会导致数据一致性问题。

尤其是当binlog模式是statement或者mixed模式下的时候,很容易造成数据不一致。如果binlog模式是ROW模式,由于记录的是某个行记录的全字段,在插入数据的时候可能会因为主键冲突,使得同步线程报错并停止。

在实际使用中,我更建议使用可靠性优先策略,毕竟对于数据服务来说,数据可靠性重要程度要高于可用性。


免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

评论

0

收藏

点赞