本节介绍如何备份
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_mark
和repchksum
备份正在进行时存储库被锁定,以避免创建不一致的备份。每个代理的备份都在
代理文件夹下命名的子文件夹中创建,并
反映了备份开始的时间。如果您希望备份在另一个地方,请创建一个软链接
到您想要的存储位置。
rep_backup/
timestamp
mcm_data
timestamp
mcm_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
中 删除元数据文件repchksum
mcm_data
将文件夹中的内容复制 回 文件夹 中
mcm_data/rep_backup/
timestamp
/repmcm_data/rep
将元数据文件从 文件
high_water_mark
夹 复制回文件夹repchksum
mcm_data/rep_backup/
timestamp
mcm_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
仍然需要使用该命令滚动重启集群进程。