10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

18.5.3.4分布式恢复的容错容错

组复制的分布式恢复过程具有许多内置措施,以确保在此过程中存在任何问题时的容错措施。

从当前视图中的合适的在线组成员的现有列表中随机选择用于分布式恢复的捐赠者。选择一个随机捐赠者意味着当多个成员输入组时,不止一次选择同一服务器的良好机会。来自MySQL 8.0.17,对于从二进制日志传输的状态转移,Joiner仅选择运行较低或等于PysQL Server的捐赠者的捐赠者MySQL Server。对于早期的发布,所有在线成员都被允许成为捐赠者。对于远程克隆操作,Joiner仅选择运行与本身相同的补丁版本的捐赠者。注意,当连接成员在操作结束时重新启动时,它建立了与来自二进制日志的状态传输的新捐赠者的连接,这可能是来自用于远程克隆操作的原始捐赠者的不同成员。

在以下情况下,组复制检测到分布式恢复中的错误,自动切换到新捐赠者,然后重试状态转移:

  • 连接错误- 将与候选人的捐赠者的连接有身份验证问题或其他问题。

  • 复制错误- 从二进制日志中使用用于状态传输的复制线程(接收器或应用程序线程)失败。由于这种状态转移方法使用现有的MySQL Replication框架,因此某些瞬态错误可能会导致接收器或应用程序线程中的错误。

  • 远程克隆操作错误- 在完成之前,远程克隆操作失败或停止。

  • 捐赠者离开了小组- 供体留下该组,或者在捐助者上停止群体复制,而国家转移正在进行中。

性能模式表Replication_applier_Status_By_Worker.显示导致最后重试的错误。在这些情况下,尝试使用新候选捐赠者进行错误后的新连接。在错误的情况下选择不同的捐赠者意味着新的候选捐赠者没有相同的错误。如果安装了克隆插件,则组复制尝试将远程克隆操作与每个合适的在线克隆支持捐赠者一起尝试。如果所有这些尝试失败,则组复制尝试使用所有合适的捐赠者从二进制日志传输,如果可能的话,所有合适的捐赠者都可以。

警告

对于远程克隆操作,在远程克隆操作开始从捐赠者转移数据之前,删除用户创建的表空间和接收方(连接成员)上的数据。如果远程克隆操作开始但不完整,则可以使用其原始数据文件的部分集或未使用用户数据来留下连接成员。如果在数据完全克隆之前停止克隆操作,则由供体传送的数据从接收器中移除。通过重试克隆操作来修复这种情况,该克隆操作自动进行组复制。

在以下情况下,无法完成分布式恢复过程,加入成员离开该组:

  • 清除交易- 加入成员所需的事务不存在于任何在线组成员的二进制日志文件中,并且无法通过远程克隆操作获得数据(因为未安装克隆插件,或者因为尝试了所有可能的捐赠者的克隆但失败了)。因此,连接构件无法赶上该组。

  • 冲突的交易- 加入成员已包含组中不存在的事务。如果执行了远程克隆操作,则会删除这些事务并丢失,因为加入成员上的数据目录被删除。如果执行从捐赠者的二进制日志的状态转移,则这些交易可能与本集团的交易发生冲突。

  • 连接重试限制达到- 连接成员通过连接重试限制使所有连接尝试进行了所有连接尝试。您可以使用此操作group_replication_recovery_retry_count.系统变量(见第18.5.3.3节“配置分布式恢复”)。

  • 没有更多的捐助者- 连接成员依次尝试使用每个在线克隆支持捐赠者进行远程克隆操作(如果安装了克隆插件),则依次从二进制日志的二进制日志中尝试不成功地尝试状态转移, 如果可能的话。

  • 加入会员离开了小组- 当状态转移正在进行时,加入成员离开组或组复制在加入成员上停止。

如果加入会员无意中留下了小组,所以在上面列出的任何情况下,除了最后一个情况,它还采取了所指定的行动group_replication_exit_state_action.系统变量。