文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  升级或降级复制拓扑

19.5.3 升级或降级复制拓扑

当您升级参与复制拓扑的服务器时,您需要考虑每个服务器在拓扑中的角色,并注意复制特有的问题。有关升级 MySQL 服务器实例的一般信息和说明,请参阅 第 3 章,升级 MySQL.

第 19.5.2 节,“复制版本之间的兼容性” 所述,MySQL 支持从旧源到新副本的复制,适用于我们支持从源版本升级到副本版本的版本组合,如 第 1.3 节,“MySQL 发行版:创新版和 LTS 版”第 3.2 节,“升级路径” 所述,但不支持从运行较新发行版的源复制到运行较早发行版的副本。运行较早发行版的副本可能没有处理较晚发行版的源可以处理的事务所需的必要功能。因此,您必须在将源服务器升级到目标发行版之前,将复制拓扑中的所有副本升级到目标 MySQL 服务器发行版。这样,您将永远不会遇到运行较早发行版的副本尝试处理来自运行较晚发行版的源的事务的情况。

在有多个源的复制拓扑(多源复制)中,无论源或副本 MySQL 服务器的数量如何,都不支持使用两个以上的 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. 如果存在多层副本(副本的副本),请从最远离源的副本开始升级,以自下而上的方式执行升级。

  3. 当所有副本都升级完毕,只剩下源时,执行切换到其中一个副本。换句话说,停止源上的客户端更新,等待至少一个副本应用所有更改,重新配置复制拓扑,使副本成为源,并将源留在复制拓扑之外。根据单服务器的升级步骤升级旧的源,然后将其重新插入拓扑中。

如果需要降级复制拓扑中的服务器,则必须先降级源,然后再降级副本。在副本上,您必须确保二进制日志和中继日志已完全处理,并在继续降级之前将其清除。

滚动降级过程
  1. 停止更新。

  2. 等待副本接收所有更新。不必等待它们应用所有更改。如果它们没有应用所有更改,请让它们的应用程序运行,以便它们可以在后台处理接收到的事务。

  3. 根据单服务器降级说明,降级源服务器。

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

  5. 再次允许更新。

  6. 等待所有副本应用来自先前主服务器的所有剩余事务。

  7. 对于每个副本,将其从拓扑中移除,等待它应用所有中继日志,根据单服务器降级说明将其降级,然后将其重新插入拓扑。如果存在多个副本级别(副本的副本),则从最靠近源服务器的副本开始自上而下地降级。