MySQL Cluster Manager 8.0.31 用户手册  / 第 4 章使用 MySQL 集群管理器  /  3.7 备份和恢复 MySQL Cluster Manager 代理

3.7 备份和恢复 MySQL Cluster Manager 代理

本节介绍如何备份 mcmd代理的配置数据以及如何恢复备份的代理数据。与该命令一起使用backup cluster,该backup agents命令允许您备份和恢复完整的 cluster-plus-manager 设置。

如果命令没有给出主机名backup agents,则会为站点的所有代理创建备份:

mcm> backup agents mysite;
+-----------------------------------+
| Command result                    |
+-----------------------------------+
| Agent backup created successfully |
+-----------------------------------+
1 row in set (0.07 sec)

要备份一个或多个特定代理,请使用以下 --hosts选项指定它们:

mcm> backup agents --hosts=tonfisk mysite;
+-----------------------------------+
| Command result                    |
+-----------------------------------+
| Agent backup created successfully |
+-----------------------------------+
1 row in set (0.07 sec)

如果未提供站点名称,则仅 备份 mcm客户端连接到的代理。

每个代理的备份包括代理存储库(mcm_data文件夹)中的以下内容:

  • rep文件夹

  • 元数据文件high_water_markrepchksum

备份正在进行时存储库被锁定,以避免创建不一致的备份。每个代理的备份都在 代理文件夹下命名的子文件夹中创建,并 反映了备份开始的时间。如果您希望备份在另一个地方,请创建一个软链接 到您想要的存储位置。 rep_backup/timestampmcm_datatimestampmcm_data/rep_backup

对于 MySQL Cluster Manager 1.4.6 及更高版本:您可以使用带有选项和站点名称 list backups 命令 列出代理备份--agent

mcm> list backups --agent mysite;
+------------+-------+---------+----------------------+---------+
| BackupId   | Agent | Host    | Timestamp            | Comment |
+------------+-------+---------+----------------------+---------+
| 1522914101 | 0     | tonfisk | 2018-04-05 07:41:41Z |         |
| 1522914105 | 0     | tonfisk | 2018-04-05 07:41:45Z |         |
| 1522914121 | 0     | tonfisk | 2018-04-05 07:42:01Z |         |
+------------+-------+---------+----------------------+---------+
3 rows in set (0.00 sec)

要恢复代理的备份:

  • 擦除代理 mcm_data/rep文件夹 的内容

  • 从 文件夹 high_water_mark中 删除元数据文件 repchksummcm_data

  • 将文件夹中的内容复制 回 文件夹 中mcm_data/rep_backup/timestamp/repmcm_data/rep

  • 将元数据文件从 文件high_water_mark 夹 复制回文件夹 repchksummcm_data/rep_backup/timestampmcm_data

  • 重启代理

步骤如下图所示:

mysql@tonfisk$ cd mcm_data

mysql@tonfisk$ cp mcm_data/rep_backup/timestamp/rep/* ./rep/

mysql@tonfisk$ cp mcm_data/rep_backup/timestamp/high_water_mark ./

mysql@tonfisk$ cp mcm_data/rep_backup/timestamp/repchksum ./

mysql@tonfisk$ mcm1.4.8/bin/mcmd

可以仅在一个或多个代理上手动恢复备份。如果只为主机 A 上的一个代理恢复备份,则主机 A 将联系该站点的其他代理,让他们使用通常的代理恢复机制从主机 A 恢复其存储库。如果手动恢复并重启所有主机上的所有代理,情况将类似于在略有不同的时间点停止所有代理后正常重启所有代理。

如果在创建还原备份后对集群进行了配置更改,则必须在代理还原完成后再次进行相同的更改,以确保代理的配置与实际运行的集群的配置相匹配。例如:备份完成后的某个时间,set MaxNoOfTables:ndbmtd=500 mycluster发出了一条命令,不久之后发生了一些事情并损坏了代理存储库;恢复代理备份后, set必须重新运行相同的命令才能更新mcmd代理的配置。虽然该命令不会有效地更改集群本身的任何内容,但在运行后,restart cluster仍然需要使用该命令滚动重启集群进程。