21.2.9.1 升级和降级 NDB 7.5

本节提供有关不同 NDB Cluster 7.5 版本之间在执行升级和降级以及兼容性矩阵和说明方面的兼容性的信息。还可以在此处找到有关从 NDB 7.5 降级到以前的 NDB 版本系列的其他信息。在尝试升级或降级之前,您应该已经熟悉安装和配置 NDB Cluster。参见第 21.3 节“ NDB 群集的配置”

在任何数据节点重新启动时,以及因此在群集的联机升级或降级期间,无法执行包括 SQL DDL 语句在内的架构操作。有关用于执行在线升级的滚动重新启动过程的其他信息,请参阅第 21.5.5 节“执行 NDB 群集的滚动重启”

Important

本节仅考虑 MySQL 版本之间关于NDBCLUSTER的兼容性,并且可能还会考虑其他问题。 与其他任何 MySQL 软件的升级或降级一样,强烈建议您在尝试升级或降级 NDB Cluster 软件之前,先阅读《 MySQL 手册》中与要迁移的 MySQL 版本相关的部分 。参见第 2.11 节“升级 MySQL”。有关升级到 NDB 7.6 的信息,请参见第 21.2.9.2 节“升级和降级 NDB 7.6”

此处显示的 table 提供了有关 NDB 7.5 不同发行版之间的 NDB 群集升级和降级兼容性的信息。可以在该 table 后找到有关在 NDB Cluster 7.5 版本系列中进行升级或降级的其他说明。

图 21.36 NDB 群集升级和降级兼容性,MySQL NDB 群集 7.5

NDB 7.5 源代码树中包含在文件 storage/ndb/src/common/util/version.cpp 中的升级/降级矩阵的图形 table 示。

版本支持. 以下版本的 NDB Cluster 支持升级到 NDB Cluster 7.5(7.5.4 及更高版本)的 GA 版本:

  • NDB Cluster 7.4 GA 版本(7.4.4 及更高版本)

  • NDB Cluster 7.3 GA 版本(7.3.2 和更高版本)

已知问题. 升级到 NDB 7.5 版本或在 NDB 7.5 版本之间升级时,会发生以下问题:

当使用--initialize运行时,服务器不需要NDB支持。此时启用NDB可能会导致ndbinfo个 table 出现问题。为了避免这种情况的发生,如果同时指定了--ndbcluster选项,则--initialize选项现在使mysqld忽略--ndbcluster选项。

由于以下原因而失败的升级解决方法可以完成:

  • 滚动重启整个集群

  • 删除data/ndbinfo目录中的所有.frm文件

  • Run mysql_upgrade.

(错误#81689,错误#82724,错误#24521927,错误#23518923)

  • 从 NDB Cluster 7.3 版本联机升级到 NDB 7.4(或更高版本)版本期间,在本地检查点(LCP)期间以及刚升级这些节点之前,运行较低版本的多个数据节点发生故障,导致其他节点故障升级之后。这是由于较旧的节点作为 LCP 加重启序列的一部分而启动的EMPTY_LCP协议的残留元素,在 NDB 7.4 中不再使用,后来由于在这些版本中实现的 LCP 优化而不再使用。此问题已在 NDB 7.5.4 中修复。 (缺陷#23129433)

  • 从 NDB 7.5.2 开始,ndb_binlog_indextable 使用InnoDB存储引擎。 (为了向后兼容,continue 支持使用此 table 的MyISAM存储引擎.)

将以前的版本升级到 NDB 7.5.2 或更高版本时,可以将--force --upgrade-system-tables选项与mysql_upgrade一起使用,以便它对ndb_binlog_indextable 执行ALTER TABLE ... ENGINE = INNODB

有关更多信息,请参见第 21.6.4 节“ NDB 群集复制架构和 table”

  • 由于用于测试版本之间的升级兼容性的矩阵中缺少条目,因此无法从 NDB Cluster 的早期版本进行在线升级到 NDB 7.5.1. (缺陷号 22024947)

同样在 NDB 7.5.1 中,如果sys数据库目录存在但为空,则mysql_upgrade无法升级sys模式。 (错误#81352,错误#23249846,错误#22875519)