作者:Nuno Carvalho 译:徐轶韬
通过群组复制,用户可以将系统状态复制到一组服务器来创建具有冗余性的容错系统。即使某些服务器发生故障,只要不是全部或大多数的情况下,该系统仍然持续可用。 这篇博客将重点讨论发生故障的服务器(脱离群组的情况),即通过配置群组,防止发生故障后,服务器仍接受客户端请求。
遇到下列情况时,群组成员会离开群组:
退出群组后失败成员的行为通过选项group_replication_exit_state_action控制。
8.0.17之前,该成员的行为包括:
在8.0.18上,我们添加了:
这三种行为使DBA可以自定义发生故障的服务器的动作,在严重的情况下可以保证系统正常运行。例如,在所有成员因为内部网络故障而变得无法访问的情况下,所有成员将遵循配置的行为。
如果DBA使用READ_ONLY,则只能阻止写入。使用OFFLINE_MODE阻止所有操作;甚至使用ABORT_SERVER完全停止服务器。
当配置为group_replication_exit_state_action = OFFLINE_MODE的故障服务器离开该群组时,我们可以在performance_schema.replication_group_members表上看到其ERROR状态:
离线模式可以通过以下方式检查:
修复了导致意外退出的故障之后,DBA需要取消设置offline_mode
我希望这种新的防护模式可以帮助用户改善和更好地配置系统的HA属性,从而使用户可以专注于应用程序!
本文分享自 MySQL解决方案工程师 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!