使用 BR 恢复数据
如果使用 BR 备份了 悦数图数据库 的数据,可以通过备份文件进行数据恢复。本文介绍如何通过备份文件恢复数据。
警告
恢复执行成功后,目标集群上已有的数据会被删除,然后替换为备份文件中的数据。建议提前备份目标集群上的数据。
警告
数据恢复需要离线进行。
准备工作
-
安装 BR 和 Agent 并在集群中的每个主机上运行 Agent。
-
确认没有应用程序连接到待恢复数据的 悦数图数据库 集群。
-
确认集群的拓扑结构一致,即原集群和目标集群的主机数量一致,且每个主机数据文件夹数量分布一致。
操作步骤
在 BR 工具的安装路径下(编译安装的默认路径为./bin/br),完成以下操作。
- 用户可以使用以下命令列出现有备份信息:
$ ./br show --storage <storage_path>
例如,可以使用以下命令列出在本地 /home/nebula/backup 路径中的备份的信息。
$ ./br show --storage "local:///home/nebula/backup"
+----------------------------+---------------------+------------------------+-------------+------------+
| NAME | CREATE TIME | SPACES | FULL BACKUP | ALL SPACES |
+----------------------------+---------------------+------------------------+-------------+------------+
| BACKUP_2022_02_10_07_40_41 | 2022-02-10 07:40:41 | basketballplayer | true | true |
| BACKUP_2022_02_11_08_26_43 | 2022-02-11 08:26:47 | basketballplayer,foesa | true | true |
+----------------------------+---------------------+------------------------+-------------+------------+
或使用以下命令列出在兼容 s3 协议的对象存储服务 br-test 桶下的backup中的备份的信息。
$ ./br show --s3.endpoint "http://192.168.8.129:9000" --storage="s3://br-test/backup/" --s3.access_key=minioadmin --s3.secret_key=minioadmin --s3.region=default
以下列出命令的相关参数。
| 参数 | 数据类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|
-h,-help | - | 否 | 无 | 查看帮助。 |
--debug | - | 否 | 无 | 查看更多日志信息。 |
--log | string | 否 | "br.log" | 日志路径。 |
--storage | string | 是 | 无 | BR 备份数据存储位置,格式为:<Schema\>://<PATH\> Schema:可选值为 local 和 s3。选择 s3 时,需要填写s3.access_key、s3.endpoint、s3.region和 s3.secret_key。PATH:存储位置的路径。 |
--s3.access_key | string | 否 | 无 | 用于标识用户。 |
--s3.endpoint | string | 否 | 无 | S3 对外服务的访问域名的 URL,指定 http 或 https。 |
--s3.region | string | 否 | 无 | 数据中心所在物理位置。 |
--s3.secret_key | string | 否 | 无 | 用户用于加密签名字符串和用来验证签名字符串的密钥,必须保密。 |
- 用户可以使用以下命令恢复数据:
$ ./br restore full --meta <ip_address> --storage <storage_path> --name <backup_name>
例如,可以使用以下命令,将本地 /home/nebula/backup/ 路径中的数据恢复到为 meta 地址为192.168.8.129:9559集群中:
$ ./br restore full --meta "192.168.8.129:9559" --storage "local:///home/nebula/backup/" --name BACKUP_2021_12_08_18_38_08
或者使用以下命令,将兼容 s3 协议的对象存储服务 br-test 桶下的backup的备份,恢复到 meta 服务的地址为192.168.8.129:9559的集群中。
$ ./br restore full --meta "192.168.8.129:9559" --s3.endpoint "http://192.168.8.129:9000" --storage="s3://br-test/backup/" --s3.access_key=minioadmin --s3.secret_key=minioadmin --s3.region="default" --name BACKUP_2021_12_08_18_38_08
如果返回如下信息,表示数据已经恢复成功。
Restore succeed.
警告
如果用户新集群的IP和备份集群不同,在恢复集群后需要使用add host向新集群中添加 Storage 主机。
以下列出命令的相关参数。
| 参数 | 数据类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|
-h,-help | - | 否 | - | 查看帮助。 |
--debug | - | 否 | 无 | 查看更多日志信息。 |
--log | string | 否 | "br.log" | 日志路径。 |
--meta | string | 是 | 无 | meta 服务的地址和端口号。 |
--name | string | 是 | 无 | 备份名字。 |
--storage | string | 是 | 无 | BR 备份数据存储位置,格式为:<Schema\>://<PATH\> Schema:可选值为 local 和 s3。选择 s3 时,需要填写s3.access_key、s3.endpoint、s3.region和 s3.secret_key。PATH:存储位置的路径。 |
--s3.access_key | string | 否 | 无 | 用于标识用户。 |
--s3.endpoint | string | 否 | 无 | S3 对外服务的访问域名的 URL,指定 http 或 https。 |
--s3.region | string | 否 | 无 | 数据中心所在物理位置。 |
--s3.secret_key | string | 否 | 无 | 用户用于加密签名字符串和用来验证签名字符串的密钥,必须保密。 |
- 如果在备份期间发现任何错误,用户可以使用以下命令清理临时文件。该命令将清理集群和外部存储中的文件,同时用户也可以使用该命令清理外部存储中的旧的备份文件。
$ ./br cleanup --meta <ip_address> --storage <storage_path> --name <backup_name>
以下列出命令的相关参数。
| 参数 | 数据类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|
-h,-help | - | 否 | - | 查看帮助。 |
--debug | - | 否 | 无 | 查看更多日志信息。 |
--log | string | 否 | "br.log" | 日志路径。 |
--meta | string | 是 | 无 | meta 服务的地址和端口号。 |
--name | string | 是 | 无 | 备份名字。 |
--storage | string | 是 | 无 | BR 备份数据存储位置,格式为:<Schema\>://<PATH\> Schema:可选值为 local 和 s3。选择 s3 时,需要填写s3.access_key、s3.endpoint、s3.region和 s3.secret_key。PATH:存储位置的路径。 |
--s3.access_key | string | 否 | 无 | 用于标识用户。 |
--s3.endpoint | string | 否 | 无 | S3 对外服务的访问域名的 URL,指定 http 或 https。 |
--s3.region | string | 否 | 无 | 数据中心所在物理位置。 |
--s3.secret_key | string | 否 | 无 | 用户用于加密签名字符串和用来验证签名字符串的密钥,必须保密。 |