使用 BR(企业版)恢复数据¶
如果使用备份工具备份了 NebulaGraph 的数据,可以通过备份目录进行数据恢复。本文介绍如何通过备份目录恢复数据。
注意事项¶
- 数据恢复执行成功后,目标集群上已有的数据会被删除,然后替换为备份目录中的数据。建议提前备份目标集群上的数据。
- 数据恢复会有一段时间的服务不可用,建议在业务低峰期进行操作。
准备工作¶
- 已安装 BR 企业版工具和 Agent 插件并在集群中的每个机器上运行 Agent。
- 确认没有应用程序连接到待恢复数据的 NebulaGraph 集群。
- 确认原集群和目标集群的 Storage 主机数量一致。
操作步骤¶
在 BR 工具安装目录下执行以下操作:
-
查看现有备份信息。
-
列出在本地的备份目录。
./br show --storage local://<storage_path>
例如,可以使用以下命令列出在本地
/backup/
路径中的备份目录的信息。./br show --storage "local:///backup/" +----------------------------+---------------------+------------------------+-------------+------------+----------------------------+ | NAME | CREATE TIME | SPACES | FULL BACKUP | ALL SPACES | BASE BACKUP NAME | +----------------------------+---------------------+------------------------+-------------+------------+----------------------------+ | BACKUP_2022_08_11_06_12_43 | 2022-08-11 06:12:43 | basketballplayer | true | true | | | BACKUP_2022_08_11_08_27_14 | 2022-08-11 08:27:15 | basketballplayer,br | false | true | BACKUP_2022_08_11_06_12_43 |
-
列出在兼容 S3 协议的对象存储服务
nebula-br-test
桶下的/
中的备份的信息。./br show --s3.access_key QImbbGDjfQEYxxxx --s3.secret_key dVSJZfl7tnoFq7Z5zt6sfYnvi63bxxxx --s3.region us-east-1 --storage s3://nebula-br-test/ --s3.endpoint http://192.168.8.xxx:9000/
-
-
使用以下命令恢复数据。
-
基于本地备份恢复数据。
./br restore full --meta <ip_address> --storage <storage_path> --name <backup_name>
例如,可以使用以下命令,将本地
/backup/
路径中的BACKUP_2022_08_11_09_11_07
文件数据恢复到为 Meta 地址为192.168.8.129:9559
集群中:./br restore full --meta "192.168.8.129:9559" --storage "local:///backup/" --name BACKUP_2022_08_11_09_11_07
-
基于云存储备份恢复数据。
将兼容 S3 协议的对象存储服务
nebula-br-test
桶下的/
路径中的BACKUP_2022_08_12_07_37_02
备份数据,恢复到 Meta 服务的地址为192.168.8.129:9559
的集群中。./br restore full --meta 192.168.8.129:9559 --s3.accesskey QImbbGDjfQEYxxxx --s3.secretkey dVSJZfl7tnoFq7Z5zt6sfYnvi63bxxxx --s3.region us-east-1 --storage s3://nebula-br-test/ --s3.endpoint http://192.168.8.xxx:9000/ --log "3.log" --name BACKUP_2022_08_12_07_37_02
如果返回以下信息,表示数据已经恢复成功。
Restore succeed.
Note
如果数据恢复失败,BR 会自动执行回滚流程,将集群的数据会自动还原回恢复前的数据。
-
-
执行以下命令清理临时文件。该命令将清理集群和外部存储中的临时文件,同时也可以使用该命令清理旧的备份目录。示例如下:
Note
默认情况下,数据恢复执行发生错误时,BR 会自动清理临时文件。如果自动清理失败,需要手动执行命令清理临时文件。
-
清除本地的备份目录。
./br cleanup --meta 192.168.8.129:9559 --storage "local:///backup/" --name BACKUP_2022_08_11_09_11_07
-
清除云存储服务中的备份目录。
./br cleanup --meta 192.168.8.129:9559 --s3.accesskey QImbbGDjfQEYxxxx --s3.secretkey dVSJZfl7tnoFq7Z5zt6sfYnvi63bxxxx --s3.region us-east-1 --storage s3://nebula-br-test/ --s3.endpoint http://192.168.8.xxx:9000/ --name BACKUP_2022_08_12_07_37_02
-
参数说明¶
以下列出备份命令的相关参数。
参数 | 数据类型 | 是否必需 | 默认值 | 说明 |
---|---|---|---|---|
-h,-help |
- | 否 | - | 查看帮助。 |
--debug |
- | 否 | 无 | 查看更多日志信息。 |
--log |
string | 否 | "br.log" | 日志路径。 |
--concurrency |
int | 否 | 无 | 用来控制数据恢复时,下载文件的并发数量。默认值5 。 |
--meta |
string | 是 | 无 | meta 服务的地址和端口号。 |
--name |
string | 是 | 无 | 备份名字。 |
--storage |
string | 是 | 无 | 备份数据存储位置,格式为:<schema>://<storage_path> 。schema :可选值s3 和local 。选择 s3 时,需要填写s3.access_key 、s3.endpoint 、s3.region 和s3.secret_key 。<storage_path> :备份文件的存储路径。 |
--s3.access_key |
string | 否 | 无 | 用于标识用户。 |
--s3.endpoint |
string | 否 | 无 | S3 对外服务的访问域名的 URL,指定 http 或 https。 |
--s3.region |
string | 否 | 无 | 数据中心所在物理位置。 |
--s3.secret_key |
string | 否 | 无 | 用户用于加密签名字符串和用来验证签名字符串的密钥,必须保密。 |
查看恢复进度¶
在安装目录内可以查看 BR 的日志文件br.log
。日志文件会记录恢复进度,内容类似:
{"level":"info","msg":"download storaged partition finished, progress: 1/20","time":"2023-03-15T02:16:43.430Z"}
{"level":"info","msg":"download storaged partition finished, progress: 2/20","time":"2023-03-15T02:16:43.431Z"}
{"level":"info","msg":"download storaged partition finished, progress: 3/20","time":"2023-03-15T02:16:43.763Z"}
最后更新:
August 14, 2023