Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Upgrading or Downgrading a Replication Topology

19.5.3 升级或降级复制拓扑结构

当您升级参与复制拓扑结构的服务器时,您需要考虑每个服务器在拓扑结构中的角色,并注意复制相关的问题。对于升级 MySQL 服务器实例的通用信息和指南,请见第 3 章 《升级 MySQL》

第 19.5.2 节,“MySQL 版本之间的复制兼容性”所述,MySQL 支持从较早的源服务器到较新的副本服务器的复制,条件是源服务器可以升级到副本服务器的版本,如第 1.3 节,“MySQL 发布:创新和 LTS”第 3.2 节,“升级路径”所述。但是,MySQL 不支持从源服务器运行较新版本到副本服务器运行较早版本的复制。副本服务器在较早版本可能不能处理源服务器在较新版本中可以处理的交易。因此,您需要将所有副本服务器升级到目标 MySQL 服务器版本,然后再升级源服务器到目标版本。在这种情况下,您永远不会遇到副本服务器仍在较早版本尝试处理来自较新版本源服务器的交易的情况。

在具有多个源服务器(多源复制)的复制拓扑结构中,不支持使用超过两个 MySQL 服务器版本, REGARDLESS OF THE NUMBER OF SOURCE OR REPLICA MySQL 服务器。例如,您不能使用 MySQL X.Y.1、MySQL X.Y.2 和 MySQL X.Y.3 一起使用,但是可以使用任意两个这些版本。

在复制从较早版本的源服务器到较新版本的副本服务器时,您可能会遇到复制问题。这可能发生在源服务器使用了不再支持的语句或依赖于不再支持的行为,而副本服务器已经升级到较新版本。您可以使用 MySQL Shell 升级检查工具 util.checkForServerUpgrade() 检查 MySQL 8.0 服务器实例是否可以升级到 MySQL 8.4 版本。这个工具识别可能会导致升级问题的配置和存储数据,包括不再支持的特性和行为。见升级检查工具以获取升级检查工具的信息。

要升级复制拓扑结构,请按照第 3 章 《升级 MySQL》中的每个单个 MySQL 服务器实例的指南进行操作,使用以下总体过程:

  1. 首先升级副本服务器。在每个副本实例上:

    • 执行第 3.6 节,“准备升级前”中描述的预检查和步骤。

    • 关闭 MySQL 服务器。

    • 升级 MySQL 服务器二进制文件或软件包。

    • 重新启动 MySQL 服务器。

    • MySQL 服务器自动执行整个 MySQL 升级过程,禁用二进制日志记录过程中。

    • START REPLICA重启复制。

  2. 如果存在多层复制(replicas-of-replicas),从最远的源开始升级复制,按照从下到上的顺序进行升级。

  3. 当所有复制都升级完成,只剩下源时,执行切换操作,将源停用,等待至少一个复制应用所有更改,然后重新配置复制拓扑,使得该复制成为新源,源被排除在拓扑之外。升级旧源按照单个服务器升级过程,然后重新插入拓扑。

如果需要降级复制拓扑中的服务器,源服务器必须在复制服务器降级之前降级。在复制服务器上,您必须确保二进制日志和中继日志已经完全处理,然后清除它们,以便继续降级。

  1. 停止更新。

  2. 等待复制服务器接收所有更新。无需等待它们应用所有更改。如果它们尚未应用所有更改,请让它们继续运行,以便在后台处理已接收的事务。

  3. 降级源服务器,按照单个服务器降级指南。

  4. 将降级的源服务器重新插入拓扑。

  5. 允许更新。

  6. 等待所有复制服务器应用所有剩余事务。

  7. 对于每个复制服务器,先将其从拓扑中取出,等待它应用所有中继日志,然后降级它按照单个服务器降级指南,然后重新插入拓扑。如果存在多层复制(replicas-of-replicas),则从源服务器最近的复制开始降级。