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

18.8.3.3组复制在线升级方式

升级“组复制组”的方法如下所示:

滚动群体升级

提供此方法,提供了运行较新版本的服务器不是生成组的工作负载,而仍然存在具有较旧版本的服务器。换句话说,具有较新版本的服务器只能将该组连接为SIFFARIES。在此方法中,只有一个组,每个服务器实例都从组中删除,升级后,然后重新加入该组。

该方法非常适合单程组。当该组以单程模式运行时,如果您需要始终保持相同的(除非升级为升级),则应该是要升级的最后一个成员。除非它在组中运行最低的MySQL服务器版本,否则主要不能保存为主。升级主要后,您可以使用group_replication_set_as_primary ()UDF再次任命其为初选候选人。如果您不介意哪个成员是主要的,则可以以任何顺序升级成员。这个组在必要时从运行最低MySQL Server版本的成员中选择一个新的主节点,遵循下面所述的选举策略第18.1.3.1节,“单主模式”

对于以多主模式运行的组,在滚动的组内升级期间,主的数量会减少,从而导致写可用性的减少。这是因为,如果一个成员加入一个组时,它运行的MySQL Server版本高于现有组成员运行的最低版本,它将自动保持只读模式(super_read_only =上).注意,运行MySQL 8.0.17或更高版本的成员在检查这个时,会考虑发布版的补丁版本,但运行MySQL 8.0.16或更低版本,或MySQL 5.7的成员,只考虑主版本。当所有成员从MySQL 8.0.17升级到相同的版本时,他们都会自动变回读写模式。对于较早的版本,您必须设置super_read_only =关闭手动对升级后应作为主要成员的每个成员进行操作。

有关组中的版本兼容性以及这如何影响升级过程中组的行为的完整信息,请参见第18.8.1节,“在组中合并不同的成员版本”

滚动迁移升级

在此方法中,您可以从组中删除成员,升级它们,然后使用升级后的成员创建第二个组。对于在多主模式下操作的组,在此过程中,主模式的数量会减少,从而导致写可用性的减少。这不会影响在单主模式下运行的组。

由于在升级成员时运行旧版本的组在线运行,因此需要运行较新版本的组以追赶成员升级时执行的任何事务。因此,新组中的一个服务器配置为来自旧组的主要组的副本。这确保了新组与旧组赶上。因为此方法依赖于用于将数据从一个组复制到另一组的异步复制信道,所以它在异步源 - 副本复制的相同假设和要求下支持它17章,复制.对于以单程模式运行的组,对旧组的异步复制连接必须将数据发送到新组中的主机,对于多主组,异步复制通道可以连接到任何主要的主机。

这个过程是:

  • 删除从原始组的成员逐个运行旧服务器版本,查看第18.8.3.2节,“升级组复制成员”

  • 升级成员上运行的服务器版本,请参见第2.11节,“升级MySQL”.您可以采用就地升级或供应升级的方法。

  • 创建一个带有升级成员的新组,请参见第18章,组复制.在这种情况下,您需要在每个成员上配置一个新的组名(因为旧组仍在运行并使用旧名),引导一个初始升级成员,然后添加剩余的升级成员。

  • 在旧组和新组之间建立异步复制通道,请参见第17.1.3.4节“使用GTID设置复制”.将旧的主服务器配置为异步复制源服务器,将新的组成员配置为基于gtid的副本。

在您可以将应用程序重定向到新组之前,必须确保新组具有合适数量的成员,例如,该组可以处理成员的故障。问题SELECT * FROM performance_schema.replication_group_members并比较初始组大小和新组大小。等待,直到旧组中的所有数据都传播到新组,然后删除异步复制连接并升级任何丢失的成员。

滚动重复升级

在此方法中,您将创建由运行新版本的成员组成的第二个组,并将旧组中丢失的数据复制到新组中。这假设您有足够的服务器同时运行两个组。因为在这个过程中初选的数量是减少,对于在多主模式下操作的组,写可用性没有减少。这使得滚动复制升级非常适合以多主模式运行的组。这不会影响在单主模式下运行的组。

由于在将成员配置为新组时运行旧版本的组在线运行,因此您需要运行较新版本的组以追赶,以便在配置成员时执行的任何事务。因此,新组中的一个服务器配置为来自旧组的主要组的副本。这确保了新组与旧组赶上。因为此方法依赖于用于将数据从一个组复制到另一组的异步复制信道,所以它在异步源 - 副本复制的相同假设和要求下支持它17章,复制.对于以单程模式运行的组,对旧组的异步复制连接必须将数据发送到新组中的主机,对于多主组,异步复制通道可以连接到任何主要的主机。

这个过程是:

  • 部署合适数量的成员,以便运行较新版本的组可以处理成员的故障

  • 从组的成员中获取现有数据的备份

  • 使用旧成员的备份来提供新组的成员,请参见第18.8.3.4节,“使用mysqlbackup一个方法。

    笔记

    您必须将备份还原到备份所在的MySQL版本,然后执行就地升级。说明,请参阅第2.11节,“升级MySQL”

  • 创建一个带有升级成员的新组,请参见第18章,组复制.在这种情况下,您需要在每个成员上配置一个新的组名(因为旧组仍在运行并使用旧名),引导一个初始升级成员,然后添加剩余的升级成员。

  • 在旧组和新组之间建立异步复制通道,请参见第17.1.3.4节“使用GTID设置复制”.将旧的主服务器配置为异步复制源服务器,将新的组成员配置为基于gtid的副本。

一旦从较新组丢失的正在进行的数据足够小以快速传输,必须将写入操作重定向到新组。等到从旧组的所有数据传播到新组,然后删除异步复制连接。