20.8.3.2 组复制成员升级
本节解释了升级组成员的步骤。这一过程是第20.8.3.3节,“组复制在线升级方法”中描述的方法的一部分。升级组成员的过程对于所有方法都是通用的,首先解释该过程。根据您所跟随的方法和其他因素,如单主或多主模式,您可以将升级后的成员加入组。使用 either in-place 或 provision 方法升级服务器实例不会影响这里描述的方法。
升级成员的过程包括从组中移除它、按照您选择的方法升级成员,然后将升级后的成员重新加入组。在单主模式下,推荐的升级成员顺序是先升级所有副本,然后最后升级主服务器。如果在升级前升级了主服务器,则会选择使用更旧MySQL版本的新主服务器,但这步骤并不是必要的。
升级组成员:
-
连接客户端到组成员,并执行
STOP GROUP_REPLICATION
。在继续前,请确保成员的状态为OFFLINE
,通过监控replication_group_members
表来确定。 -
在升级后连接到成员之前,禁用Group Replication自动启动,以避免在配置过程中它重新加入组。设置
group_Replication_start_on_boot=0
。Important如果升级后的成员有
group_Replication_start_on_boot=1
,那么在执行MySQL升级程序前,它可能重新加入组,这可能会导致问题。例如,如果升级失败并且服务器重启,那么可能已经损坏的服务器可能尝试加入组。 -
停止成员,例如使用mysqladmin shutdown或
SHUTDOWN
语句。组中的其他成员继续运行。 -
升级成员,使用in-place或provisioning方法。见第3章,《Upgrading MySQL》了解详细信息。在重启升级后的成员时,因为
group_Replication_start_on_boot
设置为0,Group Replication不在实例上启动,因此它不重新加入组。 -
在对成员进行 MySQL 升级操作后,需要将
group_replication_start_on_boot
设置为 1,以确保 Group Replication 在重启后正确启动。重启成员。 -
连接到升级后的成员,并执行
START GROUP_REPLICATION
。这将重新加入成员到组中。由于升级后的服务器上已经存在 Group Replication 元数据,因此通常不需要重新配置 Group Replication。服务器需要追赶由组处理的交易,而在服务器离线期间处理的交易。在服务器追赶完成后,它将成为在线组成员。Note升级服务器所需时间越长,成员离线时间也就越长,因此加入组时服务器需要更多时间来追赶。
当一个升级后的成员加入由运行早期 MySQL Server 版本的成员组时,该升级后的成员将以super_read_only=on
方式加入。这样可以确保直到所有成员都运行最新版本后,不对升级后的成员进行写操作。在多主模式组中,当升级完成且组准备处理事务时,需要将意图为可写的主服务器设置为读写模式。当一个组中的所有成员都升级到同一版本后,他们都会自动切换回读写模式。