全量备份工具
2025年3月13日大约 4 分钟
全量备份工具
1. 概述
IoTDB 全量备份工具,用于将 IoTDB 单个节点的数据通过硬链接的方式备份到本地指定地址,并可以直接启动加入原集群。备份工具提供了两种模式:快速镜像模式和手动指定备份路径模式。
注意:
- 备份前请停止IoTDB服务。
- 脚本默认后台执行,执行过程中打印的相关信息会输出到日志文件中。
- IoTDB版本要求:不能低于v1.3.2
2. 备份模式
2.1 模式一:快速镜像模式
使用方法
backup.sh/backup.bat -quick -node xxx
# xxx可选值见如下示例
backup.sh/backup.bat -quick -node
# 备份所有节点到默认路径
backup.sh/backup.bat -quick -node all
# 备份所有节点到默认路径
backup.sh/backup.bat -quick -node confignode
# 仅备份confignode节点到默认路径
backup.sh/backup.bat -quick -node datanode
# 仅备份datanode节点到默认路径
参数说明
参数 | 说明 | 是否必填 |
---|---|---|
-quick | 快速镜像 | 非必填 |
-node | 备份节点类型,可选项包括all /datanode /confignode ,空值默认为all 。 all :备份datanode 和confignode 节点 datanode :只备份datanode 节点 confignode :只备份confignode 节点 | 非必填 |
说明:
- 校验当前
IoTDB
文件夹及根据配置文件列出所有配置路径是否已经存在_backup
文件夹,如果存在则退出,信息为The backup folder already exists
(备份文件夹已经存在)。
当备份文件夹已存在时,可以尝试通过如下方式解决:
- 删除已有的 _backup 文件夹后重新执行备份。
- 修改备份路径避免冲突。
- 给原
dn_data_dirs
配置路径新建硬连接到对应的_backup
路径 例如:dn_data_dirs=/data/iotdb/data/datanode/data
则备份完后数据在/data/iotdb/data/datanode/data_backup
- 拷贝出
dn_data_dirs
其他文件到原IoTDB
文件夹到对应的_backup
路径中 例如:/data/iotdb
备份后/data/iotdb_backup
2.2 模式二:手动指定模式
使用方法
backup.sh -node xxx -targetdir xxx -targetdatadir xxx -targetwaldir xxx
参数说明
参数 | 说明 | 是否必填 |
---|---|---|
-node | 备份节点类型all /datanode /confignode 默认值all | 非必填 |
-targetdir | IoTDB 要备份到的文件夹 | 必填 |
-targetdatadir | 配置项dn_data_dirs 路径下文件要备份到的路径,默认targetdir/data/datanode/data | 非必填 |
-targetwaldir | 配置项dn_wal_dirs 路径下文件要备份到的路径,默认targetdir/data/datanode/wal | 非必填 |
说明:
- 校验参数
-targetdir
为必填项 ,如果参数不存在,则输出-targetdir cannot be empty, The backup folder must be specified
(-targetdir
参数不能为空,必须指定备份文件夹路径)。 - 对比配置文件中
dn_data_dirs
,dn_wal_dirs
配置路径模式和参数-targetdatadir
,-targetwaldir
是否一致,如果-targetdatadir
,-targetwaldir
参数为单一路径则认为一致,如果不一致,输出-targetdatadir parameter exception, the number of original paths does not match the number of specified paths
(-targetdatadir
参数异常,原本路径个数跟现在指定路径个数不一致)。 - 校验
-targetdatadir
配置的路径是否和原配置路径在同一块盘,如果不是同一块盘,则拷贝dn_data_dirs
配置的文件到参数-targetdatadir
对应目录。如果是同一块盘,则优先打硬连接dn_data_dirs
配置的文件到参数-targetdatadir
对应目录,如果打硬连接失败就拷贝文件到-targetdatadir
对应目录 - 配置文件路径与目标路径匹配规则
- 多对一:多个源路径可以备份到一个目标路径。
- 一对一:一个源路径可以备份到一个目标路径。
- 多对多:多个源路径可以备份到多个目标路径,但需要模式匹配。
示例
配置文件路径 | 参数 -targetdatadir 路径 | 校验结果 |
---|---|---|
/data/iotdb/data/datanode/data | /data/iotdb_backup/data/datanode/data | 一致 |
/data/iotdb/data/datanode/data | /data/iotdb_backup/data/datanode/data1,/data/iotdb_backup/data/datanode/data2 | 不一致 |
/data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2 | /data/iotdb_backup/data/datanode/data | 一致 |
/data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2 | /data/iotdb_backup/data/datanode/data3,/data/iotdb_backup/data/datanode/data4 | 一致 |
/data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2;/data/iotdb/data/datanode/data3 | /data/iotdb_backup/data/datanode/data | 一致 |
/data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2;/data/iotdb/data/datanode/data3 | /data/iotdb_backup/data/datanode/data1;/data/iotdb_backup/data/datanode/data1 | 一致 |
/data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2;/data/iotdb/data/datanode/data3 | /data/iotdb_backup/data/datanode/data1,/data/iotdb_backup/data/datanode/data3;/data/iotdb_backup/data/datanode/data | 一致 |
/data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2;/data/iotdb/data/datanode/data3 | /data/iotdb_backup/data/datanode/data1,/data/iotdb_backup/data/datanode/data3;/data/iotdb_backup/data/datanode/data1,/data/iotdb_backup/data/datanode/data4 | 不一致 |
匹配规则总结
- 当
dn_data_dirs
仅有;
分割时:
规则:*-targetdatadir
可以只输入一个路径(路径中没有;
和,
)。-targetdatadir
也可以按照;
分割多个路径,但数量必须和dn_data_dirs
中的路径数量相等,且路径中不能有,
。
- 当
dn_data_dirs
仅有,
分割时:
规则:*-targetdatadir
可以只输入一个路径(路径中没有;
和,
)。-targetdatadir
也可以按照,
分割多个路径,但数量必须和dn_data_dirs
中的路径数量相等,且路径中不能有;
。
- 当
dn_data_dirs
同时有;
和,
分割时:
规则:*-targetdatadir
可以只输入一个路径(路径中没有;
和,
)。-targetdatadir
也可以优先按照;
分割多个路径,数量必须和dn_data_dirs
中的路径数量相等。每个;
分割的路径中可以只输入一个路径,也可以按照,
分割多个路径,但,
分割的路径数量必须相等。
wal
路径通常通过dn_wal_dirs
参数指定,规则同上