10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 236.9 kb
手册页(邮政编码)- 348.5 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

17.5.2调优复苏

每当一个新成员加入复制组时,它都会连接到合适的供体,并获取在声明为在线之前丢失的数据。组复制中的这个关键组件具有容错和可配置性。下面的部分将解释恢复的工作原理以及如何调优设置

供选择

从组中现有的在线成员中随机选择一个捐赠者。这样,当多个成员进入组时,很有可能同一服务器不会被多次选中。

如果到所选的提供程序的连接失败,将自动尝试到新的候选提供程序的新连接。一旦达到连接重试限制,恢复过程将终止并出现错误。

请注意

捐赠者从当前视图中的在线成员列表中随机选择。

增强的自动捐赠者切换

在整个复苏过程中,另一个主要的关注点是确保它能应对失败。因此,组复制提供了健壮的错误检测机制。在Group Replication的早期版本中,当接触到一个提供者时,恢复只能检测到由于身份验证问题或其他一些问题而导致的连接错误。对这种有问题的场景的反应是切换到一个新的捐献者,从而向不同的成员进行新的连接尝试。

此行为被扩展到还包括其他故障场景:

  • 清除数据场景—如果所选的提供程序包含恢复过程所需要的一些被清除的数据,则会发生错误。恢复检测到此错误,并选择一个新的捐献者。

  • 重复的数据—如果加入组的服务器已经包含了一些数据,这些数据与恢复期间来自所选捐献者的数据冲突,则会发生错误。这可能是由于加入组的服务器中存在一些错误事务造成的。

    有人可能会说,回收应该失败,而不是转向另一个捐赠者,但在异质群体中,有可能其他成员共享冲突的交易,而其他成员不共享。因此,一旦出错,recovery从组中选择另一个捐献者。

  • 其他错误—如果任何一个恢复线程失败(接收线程或应用程序线程失败),则会发生错误,恢复将切换到新的提供者。

请注意

如果出现一些持久性故障,甚至是短暂性故障,恢复将自动重新连接到相同的或新的提供程序。

捐赠者连接重试

恢复数据传输依赖于二进制日志和现有的MySQL复制框架,因此,一些瞬时错误可能会导致接收方或应用程序线程中的错误。在这种情况下,提供者切换过程具有重试功能,类似于常规复制中的重试功能。

许多尝试

当试图连接到捐赠者池中的捐赠者时,服务器加入组的尝试次数为10。这是通过group_replication_recovery_retry_count插件变量。下面的命令将连接到捐赠者的最大尝试次数设置为10。

SET GLOBAL group_replication_recovery_retry_count= 10;

注意,这考虑了加入组的服务器连接到每个合适的捐赠者的全局尝试次数。

睡眠的例程

group_replication_recovery_reconnect_intervalPlugin变量定义恢复进程在两次连接尝试之间应该休眠多长时间。这个变量的默认值是60秒,您可以动态地更改这个值。下面的命令将恢复提供程序连接重试间隔设置为120秒。

SET GLOBAL group_replication_recovery_reconnect_interval= 120;

但是,请注意,恢复不会在每次尝试供体连接后休眠。由于加入组的服务器不断地连接到不同的服务器,而不是同一台服务器,因此可以假定影响服务器A的问题不会影响服务器b。因此,恢复仅在通过所有可能的捐献者时才暂停。一旦加入组的服务器尝试连接到组中所有合适的提供程序,但没有剩余,恢复进程将休眠group_replication_recovery_reconnect_interval变量。