2.5 升级MySQL集群管理器

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

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

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

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

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

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

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

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

第 2 步:配置新安装。  为了让新的 MySQL Cluster Manager 代理二进制文件管理相同的 MySQL Cluster 实例,它们必须能够找到旧安装的二进制文件使用的代理存储库中包含的数据,这是 ../mcm_data(相对于 MySQL Cluster Manager 的安装目录) ) 默认情况下,但可以 manager-directory使用 mcmd.ini.

如果代理存储库和代理配置文件位于代理安装目录的外部,则 MySQL Cluster Manager 软件升级最简单。假设旧版本的代理安装到/opt/mcm-1.2.4,并且它使用该目录/var/opt/mcm作为代理存储库和/etc/mcm/mcmd.ini配置文件。在这种情况下,要使新的二进制文件使用相同的配置和存储库,只需启动新的mcmd进程,以便它们使用相同的配置文件(参见 步骤 4)。否则,您应该将默认配置文件复制到安装目录之外的位置,例如 /etc/mcm/mcmd.ini,如下所示:

$> cp -r /opt/mcm-1.2.4/etc/mcmd.ini /etc/mcm/mcmd.ini

然后,将以下行添加到 mcmd.ini文件的新副本中:

manager-directory=/var/opt/mcm

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

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

mcm> stop agents mysite;

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

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

$> mcmd --defaults-file=/etc/mcm/mcmd.ini &
笔记

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

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

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

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

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

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客户端执行常见集群管理任务的更多信息, 请参阅第 3 章,使用 MySQL 集群管理器

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