
半同步下的一主一丛,如果从库关机,主库会有啥结果?
半同步下的一主一丛,如果从库关机,主库会有啥结果?
是主库事务会挂起,还是说因为收不到备库的ack,主库会降级成异步模式,主库事务不影响提交
mysql 8.0
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~

半同步下的一主一丛,如果从库关机,主库会有啥结果?
是主库事务会挂起,还是说因为收不到备库的ack,主库会降级成异步模式,主库事务不影响提交
mysql 8.0
在MySQL的半同步复制(也称为半同步复制模式)中,主库在提交一个事务前,必须等待至少一个从库(slave)确认收到这个事务的二进制日志(binlog)事件。这是为了提高数据的一致性和减少数据丢失的风险。
如果在半同步复制模式下,从库(slave)突然关机或者网络中断,导致主库(master)收不到从库的ACK(确认信息),主库的处理方式取决于其配置的半同步复制策略。
等待至少一个从库确认:在这种配置下,主库会挂起事务提交,直到至少一个从库确认接收到事务。这意味着,如果从库关机,主库上处于等待ACK状态的事务将被挂起,直到从库恢复或管理员手动干预。
自动降级为异步复制:有些实现允许主库在一定时间后(如超时后)自动降级为异步复制模式,以避免事务长期挂起。这意味着主库在无法收到从库确认的ACK后,会继续提交事务,但这种方式增加了数据不一致的风险。
对于MySQL的半同步复制,如果从库关机,通常的配置会是主库事务挂起,直到从库恢复或超时策略生效。超时阈值可以通过rpl_semi_sync_master_timeout
参数配置,超时后,事务将不再等待ACK而继续提交,这实际上是一种降级为异步模式的行为,但通常不会永久改变复制模式,只是在特定条件下暂时绕过半同步的等待。
在半同步模式下,管理员可以通过监控和调整超时参数、从库数量和配置,来平衡数据安全性和系统性能。在设计系统时,考虑到从库的高可用性和网络稳定性是非常重要的,以减少这种情况下对主库性能的影响。