组复制旨在创建具有内置故障检测和自动恢复功能的容错系统。如果成员服务器实例自愿离开或停止与组通信,剩余成员将自行协商组重新配置,并在需要时选择新的主服务器。被驱逐的成员会自动尝试重新加入组,并通过分布式恢复进行更新。如果组遇到无法联系到大多数成员以达成共识的困难情况,则会将自身识别为失去仲裁并停止处理事务。组复制还具有内置机制和设置,以帮助组适应和管理工作负载和消息大小的变化,并在底层系统和网络资源的限制范围内运行。
组复制的系统变量的默认设置旨在最大限度地提高组的性能和自主性。本节中的信息将帮助您配置复制组以优化对在特定系统中遇到的任何反复出现的问题(例如瞬态网络故障或超出服务器实例资源的工作负载和事务)的自动处理。
如果您发现组成员被驱逐并重新加入组的频率高于您的预期,那么组复制的默认故障检测设置可能对您的系统来说过于敏感。这可能是由于网络或机器速度较慢,网络出现频繁的意外瞬态故障,或者在计划的网络故障期间发生的。有关通过调整设置来处理这种情况的建议,请参阅 第 20.7.7 节“对故障检测和网络分区响应”。
只有在组无法自动处理的情况下,您才需要手动干预组复制设置。一些需要管理员干预的关键问题包括成员处于 ERROR
状态且无法重新加入组,或者网络分区导致组失去仲裁。
如果一个正常运行且配置正确的成员无法使用分布式恢复加入或重新加入组,并一直处于
ERROR
状态,第 20.5.4.4 节“分布式恢复的容错” 解释了可能出现的问题。一个常见原因是加入的成员具有现有组成员没有的额外事务。有关处理这种情况的建议,请参阅 第 20.4.1 节“GTID 和组复制”。如果组失去仲裁,这可能是由于将组分成两部分的网络分区造成的,也可能是由于大多数服务器故障造成的。有关处理这种情况的建议,请参阅 第 20.7.8 节“处理网络分区和失去仲裁”。