在在线升级过程中,如果组处于单主模式,所有未因升级而离线的服务器都将按照升级前的状态运行。组在需要时会选举新的主节点,遵循第 20.1.3.1 节,“单主模式” 中描述的选举策略。请注意,如果您需要主节点在整个过程中保持不变(除了它本身正在升级时),您必须先将所有从节点升级到高于或等于目标主节点成员版本的版本,然后最后升级主节点。除非运行组中最低的 MySQL Server 版本,否则主节点无法保持为主节点。主节点升级完成后,可以使用group_replication_set_as_primary()
函数将其重新指定为主节点。
如果组处于多主模式,升级过程中可用于执行写入的在线成员更少,因为升级后的成员在升级后以只读模式加入。当所有成员都升级到相同的版本时,它们会自动全部恢复为读写模式。
为了处理问题情况,例如您必须将升级回滚到之前的 major 版本或在紧急情况下向组添加额外的容量,可以允许成员从无法正常加入在线组的版本加入。已弃用的组复制系统变量group_replication_allow_local_lower_version_join
可用于此类情况下,以覆盖正常兼容性策略。
将group_replication_allow_local_lower_version_join
设置为ON
不会 使新成员与组兼容;这样做只是允许它加入组,没有任何保障措施来防止现有成员发生不兼容的行为。因此,这只能在特定情况下谨慎使用,并且您必须采取额外的预防措施,以避免新成员因正常组活动而失败。有关更多信息,请参阅此变量的描述。
您应该知道,group_replication_allow_local_lower_version_join
已被弃用;预计它将在未来的 MySQL 版本中被删除。设置它会生成ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT
级别的警告。没有计划替换。