什么是Backup&RestoreGraph
Backup&Restore(简称BR)是一款命令行界面(CLI)工具,可以帮助您备份NebulaGraph的图空间数据,或者通过备份文件恢复数据。
功能Graph
- 支持备份一个或多个图空间的数据。
- 支持基于本地磁盘(SSD或HDD)、Hadoop分布式文件系统(HDFS)、阿里云对象存储(Alibaba Cloud OSS)或亚马逊对象存储(Amazon S3)中的备份文件恢复数据。
限制Graph
- NebulaGraph版本需要为v2.0.0-RC或更新版本。
- 数据备份暂时仅支持全量备份,不支持增量备份。
- 数据备份过程中,指定图空间中的DDL和DML语句将会阻塞,我们建议您在业务低峰期进行操作,例如凌晨2点至5点。
- 数据恢复仅支持在相同拓扑的集群上进行,即原集群和目标集群的主机数量必须相同。
- 数据恢复需要删除数据并重启,建议离线进行。
- 备份或恢复部署在Docker中的数据时,需要做好网络配置,例如IP和端口的映射。
工作原理Graph
备份Graph
为了备份数据,BR会发送备份请求给leader的metad进程,触发备份。详细说明如下:
-
验证BR访问Meta服务器和Storage服务器的SSH登录信息。
!!! Note
如果必须使用云存储,例如Alibaba Cloud OSS或Amazon S3,还需要验证它们的客户端安装和配置。
-
BR发起请求创建备份文件。
-
leader的metad进程被锁定。
!!! Note
从此时起至第9步结束,您无法在指定图空间内执行任何nGQL的DDL语句。
-
leader的metad进程阻塞指定图空间的写请求。
!!! Note
从此时起至第7步结束,您无法在指定图空间内执行任何nGQL的DML语句,但是可以执行DQL语句。
-
leader的metad进程发送请求至storaged进程,请求快照文件名称。
- leader的metad进程扫描本地RocksDB文件,输出为SST(Static Sorted Table)格式文件。
-
leader的metad进程解除阻塞指定图空间的写请求。
!!! Note
从此时起,您可以在指定图空间内执行nGQL的DML语句。
- leader的metad进程回应BR,包含的Meta数据和快照信息如下: - thrift格式信息 - 图空间分区信息 - 每个分区的Raft日志提交ID - 快照信息(每个快照存储进程的目录) - Meta服务器SST格式文件名称 - 备份文件名称
-
leader的metad进程解除锁定。
Note
从此时起,您可以在指定图空间内执行任何nGQL的DDL语句。
-
BR通过SSH登录至leader所在的Meta服务器和所有Storage服务器,然后备份文件。
- 如果使用的是Alibaba Cloud OSS或Amazon S3,BR会调用命令将备份文件上传至云存储中。
!!! Note
本步骤会大量读取磁盘,建议使用万兆网络保证速率。如果上传过程中出现网络错误,备份会失败,必须重新执行备份操作。目前备份过程不支持断点续传。
- BR发起请求清理Storage服务器的快照,备份完成。
下图展示了备份的具体流程。
备份文件生成时会自动命名,命名格式为BACKUP_YY_MM_DD_HH_mm_SS
:
BACKUP
表示该文件是备份文件。YY_MM_DD_HH_mm_SS
表示该文件的生成时间。
恢复Graph
警告:恢复过程中,目标集群上已有的数据会被删除,然后替换为备份文件中的数据。建议您提前备份目标集群上的数据。
恢复过程的详细说明如下:
-
验证BR访问Meta服务器和Storage服务器的SSH登录信息。
!!! Note
如果必须使用云存储,例如Alibaba Cloud OSS或Amazon S3,还需要验证它们的客户端安装和配置。
-
BR从外部存储或云存储中下载Meta信息(非完整数据)。
- BR验证集群的拓扑结构,确保原集群和目标集群的主机数量一致。
- BR远程停止Meta服务和Storage服务。
- BR通过SSH登录至leader所在的Meta服务器和所有Storage服务器,然后删除现有的数据文件。
- 现有数据文件删除后,Meta服务器和所有Storage服务器从外部存储或云存储中下载备份文件。
- 备份文件下载完成后,BR启动Meta服务。
- BR调用
br restore
命令更改指定metad进程的分区信息。 - BR启动Storage服务,恢复过程完成。
下图展示了恢复的具体流程。
如何使用BRGraph
您可以按照如下步骤使用BR:
- Graph
- Graph
- Graph
最后更新: 2021年6月4日