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_name
create 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.31
list 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 NDB Cluster 8.0:请参阅 升级和降级 NDB Cluster。
对于 MySQL NDB Cluster 7.5 和 7.6:请参阅 升级和降级 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。当升级需要更改集群的配置时,这尤其有用。该选项将一个属性赋值列表作为其参数,其格式类似于
get
与
set
命令一起使用的格式;请参阅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
选项(简称)。如果没有该
选项,该命令仅在集群处于状态时运行。
-f
upgrade cluster
--force
upgrade cluster
fully
operational
当您希望在失败尝试后重试该命令时应该使用
该--retry
选项(简称),该命令最终导致一些节点被升级,而另一些则没有。如果没有该
选项,则无法使用同一个包在同一个集群上运行该命令两次。
-L
upgrade cluster
--retry
upgrade cluster
在升级失败或不完整的情况下,除了使用--force
and
--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
可能会导致部分升级。仅当先前的升级尝试失败时才使用它,并且只能在适当的支持人员的指导下使用。