3.5 升级 MySQL 集群管理器

本节讨论将 MySQL Cluster Manager 从以前的版本升级到最新版本(当前为 8.0.31),并提供有关升级捆绑的 MySQL NDB Cluster 软件的基本指南。

笔记

仅支持从 1.4.0 版及更高版本升级。

此处列出了升级 MySQL Cluster Manager 安装的基本步骤:

  1. 在所需位置安装新版本的 MySQL Cluster Manager 软件。

  2. 为新安装创建配置,使其使用以前安装的数据。

  3. 停止所有主机上所有正在运行的 MySQL Cluster Manager 代理进程。

  4. 启动新代理进程,确保它们使用刚刚创建的新配置。

在接下来的几段中,将对每个步骤进行更详细的解释。出于示例的目的,我们假设从现有的 MySQL Cluster Manager 1.4.8 安装升级到 MySQL Cluster Manager 8.0.31 的新安装。对于Linux或类Unix系统,我们假设安装目录分别为 /opt/mcm-1.4.8/opt/mcm-8.0.31;在 Windows 上,我们假设安装目录分别是 C:\Program Files\MySQL\MySQL Cluster Manager 1.4.8\C:\Program Files\MySQL\MySQL Cluster Manager 8.0.31\

第 1 步:安装新的 MySQL Cluster Manager 版本。  您可以按照与新安装相同的方式获取和安装新版本的 MySQL Cluster Manager(请参阅 第 3.1 节,“获取 MySQL Cluster Manager”第 3.3 节,“MySQL Cluster Manager 安装”),附加要求是您不应尝试将新版本安装在与当前使用的版本相同的位置。

第 2 步:配置新安装。  为了让新的 MySQL Cluster Manager 代理二进制文件管理相同的 MySQL NDB Cluster 实例,它们必须能够找到旧安装二进制文件使用的代理存储库中包含的数据,该存储库mcm_data位于 MySQL Cluster Manager 的父目录中默认安装目录,但可以使用data_folder代理配置文件中的选项进行设置。

如果代理存储库和代理配置文件位于代理安装目录之外,则 MySQL Cluster Manager 软件升级最简单。假设旧版本的代理安装到/opt/mcm-1.4.8,并且它使用该目录/var/opt/mcm作为代理存储库和/etc/mcm/mcmd.ini配置文件。在这种情况下,要使新的二进制文件使用相同的配置和存储库,首先在所需位置创建新的配置文件(格式为 MySQL Cluster Manager 8.0 格式)。您可以通过将示例配置文件复制到所述位置来执行此操作。

cp /mcm-install-dir/doc/sample_mcmd.conf /etc/mcm/mcmd.conf

然后,您应该将旧配置设置从 1.4 配置文件复制到新配置文件,特别注意配置文件格式和 MySQL Cluster Manager 8.0 代理选项的差异(请参阅 第 2 章,MySQL 中的新增功能Cluster Manager 8.0Section 3.4, “MySQL Cluster Manager Configuration File”了解详情。(8.0系列内的升级,可以直接复用旧的配置文件,只对版本不同的选项进行调整。)

要使用旧数据存储库,请将以下行添加到mcmd.conf文件的新副本中:

data_folder=/var/opt/mcm

在此之后,您可以保存并关闭文件。另见 第 3.4 节,“MySQL 集群管理器配置文件”

第 3 步:停止所有代理。  在构成管理安装的所有主机上停止使用旧二进制文件的代理进程。您可以停止给定站点的所有代理,例如mysite,使用stop agentsMySQL Cluster Manager 客户端中的命令,如下所示:

mcm> stop agents mysite;

您应该stop agents 为 的输出中列出的每个站点执行类似于刚才显示的命令list sites

第 4 步:启动新的 MySQL Cluster Manager 二进制文件。  使用选项启动新的mcmd代理二进制文件, --config以便它使用正确的配置文件,如下所示:

$> mcmd --config=/etc/mcm/mcmd.conf &
笔记

大多数代理(即至少总数的一半加一个)应在 10 秒内启动;否则,缺乏用于决策的节点法定人数可能会导致节点之间的通信中断。

您现在应该能够从新安装启动mcm客户端并像往常一样执行管理任务。客户端成功启动并连接到代理后,您可以使用以下命令验证它是否正在运行正确版本的 MySQL Cluster Manager 软件version ,如下所示:

mcm> version;
+------------------------------+
| Version                      |
+------------------------------+
| MySQL Cluster Manager 8.0.31 |
+------------------------------+
1 row in set (0.00 sec)

接下来,检查所有站点上的所有主机、集群和进程是否对新的mcm客户端可见,并且可以运行;例如:

mcm> list hosts mysite;
+-----------+-----------+----------+
| Host      | Status    | Version  |
+-----------+-----------+----------+
| tonfisk   | Available | 8.0.31   |
| flundra   | Available | 8.0.31   |
| alpha     | Available | 8.0.31   |
| beta      | Available | 8.0.31   |
| gamma     | Available | 8.0.31   |
+-----------+-----------+----------+

5 rows in set (0.16 sec)

mcmc> list clusters mysite;
+------------------+-----------+
| Cluster          | Package   |
+------------------+-----------+
| mycluster        | mypackage |
| yourcluster      | mypackage |
+------------------+-----------+
2 rows in set (2.07 sec)

mcm> show status --cluster mycluster;
+-----------+-------------------+---------+
| Cluster   | Status            | Comment |
+-----------+-------------------+---------+
| mycluster | fully operational |         |
+-----------+-------------------+---------+
1 row in set (0.01 sec)

mcm> show status --cluster yourcluster;
+-------------+-------------------+---------+
| Cluster     | Status            | Comment |
+-------------+-------------------+---------+
| yourcluster | fully operational |         |
+-------------+-------------------+---------+
1 row in set (0.01 sec)

mcm> show status -r mycluster;
+--------+----------+----------+---------+-----------+-----------+
| NodeId | Process  | Host     | Status  | Nodegroup | Package   |
+--------+----------+----------+---------+-----------+-----------+
| 49     | ndb_mgmd | tonfisk  | running |           | mypackage |
| 1      | ndbd     | tonfisk  | running | 0         | mypackage |
| 2      | ndbd     | flundra  | running | 0         | mypackage |
| 50     | mysqld   | tonfisk  | running |           | mypackage |
| 51     | mysqld   | flundra  | running |           | mypackage |
| 52     | ndbapi   | *tonfisk | added   |           |           |
| 53     | ndbapi   | *flundra | added   |           |           |
+--------+----------+----------+---------+-----------+-----------+
7 rows in set (0.08 sec)

mcm> show status -r yourcluster;
+--------+----------+-------+---------+-----------+-----------+
| NodeId | Process  | Host  | Status  | Nodegroup | Package   |
+--------+----------+-------+---------+-----------+-----------+
| 50     | ndb_mgmd | alpha | running |           | mypackage |
| 5      | ndbd     | beta  | running | n/a       | mypackage |
| 6      | ndbd     | gamma | running | n/a       | mypackage |
+--------+----------+-------+---------+-----------+-----------+
3 rows in set (0.01 sec)

有关使用mcm客户端执行常见集群管理任务的更多信息, 请参阅第 4 章,使用 MySQL 集群管理器

升级 MySQL NDB Cluster。  尽管 MySQL NDB Cluster 软件通常与 MySQL Cluster Manager 发行版捆绑在一起,但请务必记住,升级 MySQL Cluster Manager 软件不会升级 任何现有的 MySQL NDB Cluster 安装。由于新的 MySQL Cluster Manager 安装使用与旧版本相同的配置,因此其控制下的集群保持不变。如果你想使用捆绑的 MySQL NDB Cluster 软件升级集群,你应该移动cluster目录(参见 MySQL Cluster Manager Unix Distribution Archive 的内容) 及其所有内容到 MySQL Cluster Manager 安装目录之外的位置。在此之后,您可以使用add packageupgrade cluster将一个或多个集群升级到新版本的 MySQL NDB Cluster 软件。