跳转至

使用 BR(企业版)恢复数据

如果使用备份工具备份了 NebulaGraph 的数据,可以通过备份目录进行数据恢复。本文介绍如何通过备份目录恢复数据。

注意事项

  • 数据恢复执行成功后,目标集群上已有的数据会被删除,然后替换为备份目录中的数据。建议提前备份目标集群上的数据。
  • 数据恢复会有一段时间的服务不可用,建议在业务低峰期进行操作。

准备工作

  • 确认没有应用程序连接到待恢复数据的 NebulaGraph 集群。
  • 确认原集群和目标集群的 Storage 主机数量一致。

操作步骤

在 BR 工具安装目录下执行以下操作:

  1. 查看现有备份信息。

    • 列出在本地的备份目录。

      ./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/
      
  2. 使用以下命令恢复数据。

    • 基于本地备份恢复数据。

      ./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 会自动执行回滚流程,将集群的数据会自动还原回恢复前的数据。

  3. 执行以下命令清理临时文件。该命令将清理集群和外部存储中的临时文件,同时也可以使用该命令清理旧的备份目录。示例如下:

    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:可选值s3local
选择s3时,需要填写s3.access_keys3.endpoints3.regions3.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