使用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
。 - 在NebulaGraph的安装路径内查看
- 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
-
在
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"] ```
-
切换到
nebula-storage/util/br/bin/
目录。cd nebula-storage/util/br/bin/
-
执行如下命令备份数据。
./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"
: 填写配置文件的绝对路径,通过配置文件进行备份。
-
(可选)默认情况下,备份完成后,所有快照都会被删除。如果删除过程中出错,您可以执行如下命令手动删除快照。
./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。