跳转至

使用BR备份数据Graph

BR编译成功后,您可以备份指定图空间的数据,本文介绍如何使用BR备份数据。

准备工作Graph

  • BR编译完成。如何编译BR,请参见Graph。
  • 确认NebulaGraph服务正在运行中。
  • 确认需要备份的图空间名称。本文示例为basketballplayer
  • 确认NebulaGraph的绝对安装路径。本文示例为/usr/local/nebula/
  • 确认Meta服务器和Storage服务器的IP和端口。

    • 在NebulaGraph的安装路径内查看nebula-metad.conf文件(例如/usr/local/nebula/etc/nebula-metad.conf),确认Meta服务器的IP和端口。本文示例为192.168.8.161:9559
    • 在NebulaGraph的安装路径内查看和nebula-storaged.conf文件(例如/usr/local/nebula/etc/nebula-storaged.conf),确认Storage服务器的IP和端口。本文示例为192.168.8.161:9779

    注意:确保配置文件中使用的是实际的IP地址,而不是127.0.0.1

  • BR可以免密登录服务器,即您在BR机器上的账号可以通过SSH免密登录到Meta服务器和Storage服务器。详情请参见Graph。本文示例账号名称为nebula
  • 如果您使用Alibaba Cloud OSS或Amazon S3保存备份文件,请确保Meta服务器、Storage服务器和BR机器都已安装相应的客户端。详情请参见Graph。

    注意:请创建软链接方便使用ossutil命令。命令为ln -s /<ossutil_tool_installation_path>/<ossutil64 or ossutil> /usr/local/bin/ossutil,根据实际路径和系统替换内容。

  • 如果您在本地保存备份文件,需要在Meta服务器、Storage服务器和BR机器上创建绝对路径相同的目录,并记录绝对路径,同时需要保证账号对该目录有写权限。本文示例为/home/user/backup/

    注意:在生产环境中,我们建议您将NFS (Network File System)存储设备挂载到Meta服务器、Storage服务器和BR机器上进行本地备份,或者使用Alibaba Cloud OSS、Amazon S3进行远程备份。否则当您需要通过本地文件恢复数据时,必须手动将这些备份文件移动到指定目录,会导致数据冗余和某些问题。更多信息,请参见Graph。

操作步骤Graph

  1. nebula-storage/util/br/config目录内创建配置文件backup.yaml。您可以参考如下配置,目录内也有示例文件backup_example.yaml

    ```yaml meta_nodes: - # 配置一个Meta服务器的IP和端口 addrs: "192.168.8.161:9559" # 配置NebulaGraph的绝对安装路径 root: "/usr/local/nebula/" # 配置metad进程数据目录的绝对路径 data: "/usr/local/nebula/data/meta" # 配置可以免密登录服务器的账号名称,需要对备份存储目录有读写权限 user: "nebula" #- # 如果存在多个metad进程,请参考上述配置继续添加 # addrs: "192.168.8.161:9559" # root: "/usr/local/nebula/" # data: "/usr/local/nebula/data/meta" # user: "nebula" #- addrs: "192.168.8.161:9559" # root: "/usr/local/nebula/" # data: "/usr/local/nebula/data/meta" # user: "nebula"

    storage_nodes: - # 配置一个Storage服务器的IP和端口 addrs: "192.168.8.161:9779" # 配置NebulaGraph的绝对安装路径 root: "/usr/local/nebula/" # 配置storaged进程数据目录的绝对路径 data: "/usr/local/nebula/data/storage" # 配置可以免密登录服务器的账号名称,需要对备份存储目录有读写权限 user: "nebula" #- # 如果存在多个storaged进程,请参考上述配置继续添加 # addrs: "192.168.8.161:9779" # root: "/usr/local/nebula/" # data: "/usr/local/nebula/data/storage" # user: "nebula" #- addrs: "192.168.8.161:9779" # root: "/usr/local/nebula/" # data: "/usr/local/nebula/data/storage" # user: "nebula"

    # 设置备份文件的存储路径 # 如果在本地存储备份文件,请设置: backend: "local:///home/user/backup/" # 如果使用HDFS存储备份文件,请设置: # hdfs://namenode:port/nebulabackup # 如果使用Alibaba Cloud OSS存储备份文件,请设置: # backend: "oss://nebulabackup" # 如果使用Amazon S3存储备份文件,请设置: # backend: "s3://nebulabackup"

    # 设置要备份的图空间 # 如果需要备份多个图空间,请设置: # space_names: ["space_name1", "space_name2", ..., "space_name"] space_name: ["basketballplayer"] ```

  2. 切换到nebula-storage/util/br/bin/目录。

     cd nebula-storage/util/br/bin/
    
  3. 执行如下命令备份数据。

    ./br backup full --config "/home/vesoft/nebula-storage/util/br/config/backup.yaml"
    
    • backup full: 表示备份数据。
    • --config "/home/vesoft/nebula-storage/util/br/config/backup.yaml": 填写配置文件的绝对路径,通过配置文件进行备份。
  4. (可选)默认情况下,备份完成后,所有快照都会被删除。如果删除过程中出错,您可以执行如下命令手动删除快照。

    ./br cleanup --backup_name [backup file name] --meta 192.168.8.161:9559
    
    • cleanup: 表示删除Meta服务器和Storage服务器上的所有临时文件,包括快照。
    • --backup_name BACKUP_YY_MM_DD_HH_mm_SS: 指定要删除的备份文件名称。
    • --meta <IP address:port>: 指定Meta服务器的IP和端口。

下一步Graph

备份文件生成后,您可以使用BR将备份文件的数据恢复到NebulaGraph中。具体操作,请参见Graph。


最后更新: 2021年4月13日