本节提供关于NDB Cluster软件和不同版本之间的表文件兼容性的信息,包括执行升级和降级,以及兼容性矩阵和注意事项。在尝试升级或降级之前,您应该已经熟悉NDB集群的安装和配置。看到第23.3节“新db集群配置”.
模式操作(包括SQL DDL语句)不能在任何数据节点重新启动时执行,因此也不能在集群在线升级或降级期间执行。有关用于执行在线升级的滚动重新启动过程的其他信息,请参见第23.5.5节“NDB集群滚动重启”.
仅MySQL版本之间的兼容性有关NDBCLUSTER
在这一节已经考虑到,而且可能还有其他问题要考虑。与任何其他MySQL软件升级或降级一样,在尝试升级或降级NDB集群软件之前,强烈建议您查看MySQL手册的相关部分,以了解您打算从哪个版本迁移到哪个版本.看到第2.11节“升级MySQL”.
下表提供了NDB 8.0不同版本间的NDB集群升级和降级兼容性信息。关于从NDB Cluster 8.0版本系列升级到、从NDB Cluster 8.0版本系列升级到或在NDB Cluster 8.0版本系列内部升级和降级的其他说明,请参见下表。
升级和降级,NDB集群8.0
版本支持。升级到NDB Cluster 8.0(8.0.19及更高版本)的GA版本,支持以下NDB Cluster版本:
NDB集群7.6:NDB 7.6.4及以上版本
NDB集群7.5:NDB 7.5.4及以上版本
NDB集群7.4:NDB 7.4.6及以上版本
要从NDB 7.4之前的版本系列升级到NDB 7.4,必须分阶段升级,首先升级到刚刚列出的一个版本,然后从该版本升级到最新的NDB 8.0版本。在这种情况下,建议第一步升级到最新的NDB 7.6版本。
已知问题。在升级到NDB 8.0版本或升级到NDB 8.0版本之间时,已知会出现以下问题:
不支持NDB 8.0.14到以前版本的在线降级。在NDB 8.0.14中创建的表与以前的版本不向后兼容。实现的额外元数据属性的用法发生了变化
NDB
表提供了对MySQL数据字典的全面支持。有关更多信息,请参见修改NDB表额外的元数据.另请参阅第14章,MySQL数据字典.
在NDB 8.0中,默认值更改为
log_bin
(从0到1)和ndb_log_bin
(从1到0)。这意味着您现在必须显式设置ndb_log_bin
到1以启用二进制日志记录。MySQL服务器之间共享的分布式特权在以前的版本系列中实现使用共享授权表的分布式特权)在NDB Cluster 8.0中不支持。开始时,mysqld的授权表是否存在
NDB
存储引擎;如果找到任何副本,则创建本地副本(”影子表”)InnoDB
.对于连接到NDB集群的每个MySQL服务器都是如此。在所有作为NDB集群SQL节点的MySQL服务器上执行此操作后,将NDB
方法可以安全地删除授权表ndb_drop_tableNDB集群发行版提供的实用程序,如下所示:Ndb_drop_table -d mysql user db columns_priv tables_priv proxies_priv procs_priv
保存是安全的
NDB
授予表,但它们不用于访问控制,并且会被有效地忽略。有关NDB 8.0中使用的MySQL特权系统的更多信息,请参见第23.5.12节“NDB_STORED_USER的分布式MySQL特权”,以及第6.2.3节“授予表格”.
在NDB 8.0.18中,对二进制配置文件格式进行了增强,以提供比以前版本更多的节点数量支持。新的格式不能被8.0.17和较旧的节点访问,尽管新的管理服务器可以检测到较旧的节点并使用适当的格式与它们通信。
从8.0.17或更早版本升级到NDB 8.0.18或更高版本在这方面应该不会有问题。如果从NDB 8.0.18或更高版本降级到8.0.17或更早版本,因为旧的管理服务器无法读取更新的二进制配置文件格式,就需要进行一些手动干预。当执行这样的降级时,在使用较旧的配置文件开始管理之前,有必要删除所有缓存的二进制配置文件
NDB
软件版本,并有明文配置文件可供管理服务器读取。方法启动旧的管理服务器——初始
选项(同样,它必须具有config.ini
可用)。如果集群使用多个管理服务器,则必须为每个管理服务器二进制文件执行以下两种操作中的一种。另外,由于NDB 8.0.18在数据节点LCP中实现了不兼容的更改,因此还支持增加节点数量
Sysfile
,当从NDB 8.0.18(或更高版本)在线降级到任何以前的版本时,有必要使用——初始
选择。重新启动数据节点
——初始
当将NDB 7.6.4之前的任何版本升级到NDB 8.0版本时也需要。不支持将运行超过48个数据节点的集群,或节点id大于48的数据节点的集群,从NDB 8.0.18或更高版本直接降级到8.0.17及之前版本。在这种情况下,有必要减少数据节点的数量,更改所有数据节点的配置,以便它们使用小于或等于48的节点id,或两者都使用,以确保不超过旧的最大值。
如果您要从NDB 8.0降级到NDB 7.5或NDB 7.4,则必须为
IndexMemory
在集群配置文件中。这是因为NDB 8.0没有使用该参数(在NDB 7.6中删除了),并将其默认设置为0,而在NDB 7.5和NDB 7.4中需要该参数,而在这两个版本中集群都拒绝从该参数启动从管理服务器收到无效的配置…如果IndexMemory
没有设置为非零值。设置
IndexMemory
是不从NDB 8.0降级到NDB 7.6。NDB 8.0.22为管理节点和数据节点增加了IPv6寻址支持
config.ini
文件。要开始使用IPv6地址作为升级的一部分,请执行以下步骤:按照正常方式升级到8.0.22及以上版本的NDB集群软件。
中使用的地址
config.ini
文件到IPv6地址。重新启动集群系统。
由于内部的变化
mysql.ndb_schema
表,如果您升级到8.0.24之前的NDB 8.0版本,那么建议使用ndb_schema_dist_upgrade_allowed = 0
以避免意外中断(Bug #30876990, Bug #31016905)。