MySQL 外壳 8.0  / 第 7 章 MySQL InnoDB 集群  /  7.10 升级InnoDB集群

7.10 升级InnoDB集群

本节介绍如何升级集群。升级 InnoDB Cluster 的大部分过程包括以 升级组复制中记录的相同方式升级实例。本节重点介绍升级 InnoDB Cluster 的其他注意事项。在开始升级之前,您可以使用 MySQL Shell 第 11.1 节“升级检查器实用程序”来验证实例是否已准备好进行升级。

重要的

由于元数据查询中的错误,MySQL Shell 8.0.27 无法用于管理运行 MySQL Server 8.0.25 的 InnoDB Cluster。要解决此问题,请在将 MySQL Shell 8.0.27 与集群一起使用之前,将 InnoDB 集群成员实例上的 MySQL Server 升级到 8.0.26 或 8.0.27 版本。该问题将在 MySQL Shell 8.0.28 中修复。

从 8.0.19 版本开始,如果您尝试针对集群引导 MySQL Router 并且它发现元数据版本为 0.0.0,这表明正在进行元数据升级,并且引导失败。等待元数据升级完成,然后再尝试引导。当 MySQL Router 正常运行(不是引导)并且发现元数据版本为 0.0.0(正在进行升级)时,MySQL Router 不会继续刷新它即将开始的元数据。相反,MySQL Router 继续使用它缓存的最后一个元数据。所有现有的用户连接都得到维护,任何新连接都根据缓存的元数据进行路由。当元数据版本不再是 0.0.0 时,元数据刷新将重新启动。在常规(非引导)模式下,MySQL Router 使用版本 1.xx 和 2.xx 的元数据。版本可以在 TTL 刷新之间更改。此更改可确保路由在您升级集群时继续进行。

尽管集群中的实例可以运行多个 MySQL 版本,例如版本 5.7 和 8.0。不建议长时间使用这种混合物。例如,在使用不同版本的集群中,运行5.7版本的实例离开集群,然后使用MySQL Clone进行恢复操作,运行低版本的实例无法再加入集群,因为 BACKUP_ADMIN权限成为要求。运行具有多个版本的集群旨在作为一种临时情况,以帮助从一个版本迁移到另一个版本,不适合长期使用。