5.4.10upgrade cluster命令

upgrade cluster {--package=|-P }package_name
 [{--nodeid|-n }node_id_list] [--force|-f]
 [--retry|-L] [--set=attribute_assignment_list] cluster_name

node_id_list:
    node_id[, node_id[, ...]]

attribute_assignment_list:
    attribute_assignment[,attribute_assignment][,...]

attribute_assignment:
    attribute_name:process_name[=value]

此命令将名为的集群升级为 指定 cluster_name的软件包 。它通过对集群执行滚动重启来完成升级,其中数据节点重新启动, 并可选择重建其数据文件系统。 package_name--package--initial

新包必须先注册使用 add package,然后才能使用它进行升级;否则,upgrade cluster 失败并出现错误。

要使用该命令对集群进行升级,除非使用一些特殊选项(请参阅下面对 、 和 选项的说明 --force--retry, 否则--nodeid集群必须处于fully operational状态(您可以使用命令 来检查)。在导入完成之前,无法升级为导入创建的集群。有关更多信息,请参阅第 5.4.1 节,“命令”第 4.5 节,“将 MySQL NDB 集群导入 MySQL 集群管理器”show status --cluster cluster_namecreate cluster

假设mycluster正在使用 MySQL NDB Cluster 7.5.22,并且二进制文件已注册到名为 的包 7.5.22,如以下 list clusters命令所示:

mcm> list clusters mysite;
+-----------+---------+
| Cluster   | Package |
+-----------+---------+
| mycluster | 7.5.22  |
+-----------+---------+
1 row in set (1.80 sec)

现在您希望升级mycluster到 MySQL NDB Cluster。假设您已将 NDB 8.0.31 二进制文件放在每个主机上的同一目录中, add package创建一个名为8.0.31包含这些二进制文件的新包的命令可能如下所示:

mcm> add package --basedir=/usr/local/ndb-8.0.31 8.0.31;
+----------------------------+
| Command result             |
+----------------------------+
| Package added successfully |
+----------------------------+
1 row in set (0.88 sec)
笔记

在 Windows 上,您必须将\用于 add package命令 --basedir选项的路径中的任何反斜杠 () 字符替换为正斜杠 ( /)。有关更多信息和示例, 请参阅第 5.3.1 节“add package命令” 。

这两个包现在应该列在命令的输出中 list packages mysite。要执行 8.0.31程序包升级,请使用 upgrade cluster如下所示的命令:

mcm> upgrade cluster --package=8.0.31 mycluster;
+-------------------------------+
| Command result                |
+-------------------------------+
| Cluster upgraded successfully |
+-------------------------------+
1 row in set (3 min 17.00 sec)

命令upgrade cluster 成功执行后,您可以 从相应 命令 的输出中验证mycluster现在正在使用该 包:8.0.31list clusters

mcm> list clusters mysite;
+-----------+---------+
| Cluster   | Package |
+-----------+---------+
| mycluster | 8.0.31  |
+-----------+---------+
1 row in set (1.80 sec)

该命令可以执行主要和次要系列升级。尽管这个命令的名字,upgrade cluster也可以用来执行 MySQL NDB Cluster 降级。

该命令并不支持所有不同版本的 MySQL NDB Cluster 之间的升级和降级。必须满足三个标准:

  • 涉及的 MySQL NDB Cluster 版本必须支持升级或降级。有关允许升级和降级的列表,请参阅 MySQL NDB Cluster 手册中的以下部分:

  • 您升级或降级的版本都必须得到您正在使用的 MySQL Cluster Manager 版本的支持(例如,从 MySQL NDB Cluster 7.4 升级到 8.0 必须手动执行,因为 MySQL Cluster Manager 不再支持 MySQL NDB Cluster 7.4).

使用该upgrade cluster 命令时,您可以使用该 --set选项同时重新配置 MySQL NDB Cluster。当升级需要更改集群的配置时,这尤其有用。该选项将一个属性赋值列表作为其参数,其格式类似于 getset命令一起使用的格式;请参阅set有关制定属性分配列表的正确方法的命令说明。例如:如果要将分配给每个数据节点的用于存储数据库记录的内存更改为 750M, --set请在命令中使用选项指定upgrade cluster

mcm> upgrade cluster --package=8.0.31 --set=DataMemory:ndbd=750M  mycluster;
+-------------------------------+
| Command result                |
+-------------------------------+
| Cluster upgraded successfully |
+-------------------------------+
1 row in set (3 min 17.04 sec)
笔记

与您使用命令的方式不同 ,需要紧跟在 选项 后面的set等号 ( )。=--set

处理失败升级的选项

当您希望在失败的升级尝试以任何失败的管理或数据节点结束后再次 运行该命令时,应使用 该--force 选项(简称)。如果没有该 选项,该命令仅在集群处于状态时运行。 -fupgrade cluster--forceupgrade clusterfully operational

当您希望在失败尝试后重试该命令时应该使用 该--retry 选项(简称),该命令最终导致一些节点被升级,而另一些则没有。如果没有该 选项,则无法使用同一个包在同一个集群上运行该命令两次。 -Lupgrade cluster--retryupgrade cluster

在升级失败或不完整的情况下,除了使用--forceand --retry选项,您还可以选择仅在失败的节点上重试升级,方法是使用 --nodeid选项(-n 简称)指定它们。升级失败后检查任何失败的节点:

mcm> upgrade cluster -P next mycluster;
ERROR 7006 (00MGR): Process error: <reason of failure>
mcm> show status --process mycluster;
+--------+----------+----------+---------+-----------+-----------+
| NodeId | Process  | Host     | Status  | Nodegroup | Package   |
+--------+----------+----------+---------+-----------+-----------+
| 49     | ndb_mgmd | thinkpad | running |           | next      |
| 1      | ndbmtd   | thinkpad | running | 0         | next      |
| 2      | ndbmtd   | thinkpad | running | 0         | next      |
| 50     | mysqld   | thinkpad | running |           | next      |
| 51     | mysqld   | thinkpad | failed  |           | next      |
| 52     | ndbapi   | *        | added   |           |           |
+--------+----------+----------+---------+-----------+-----------+
6 rows in set (0.03 sec)

然后,再次发出命令,使用以下--nodeid 选项指定故障节点:

mcm> upgrade cluster --nodeid=51 -P next mycluster;
+-------------------------------+
| Command result                |
+-------------------------------+
| Cluster upgraded successfully |
+-------------------------------+
1 row in set (26.03 sec)
警告

--nodeid在命令中不恰当地 使用该 选项upgrade cluster可能会导致部分升级。仅当先前的升级尝试失败时才使用它,并且只能在适当的支持人员的指导下使用。