全量备份工具

1. 概述

IoTDB 全量备份工具,用于将 IoTDB 单个节点的数据通过硬链接的方式备份到本地指定地址,并可以直接启动加入原集群。备份工具提供了两种模式:快速镜像模式和手动指定备份路径模式。

注意:

  • 备份前请停止IoTDB服务。
  • 脚本默认后台执行,执行过程中打印的相关信息会输出到日志文件中。

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:备份datanodeconfignode节点
datanode:只备份datanode节点
confignode:只备份confignode节点
非必填

说明:

  1. 校验当前 IoTDB 文件夹及根据配置文件列出所有配置路径是否已经存在_backup文件夹,如果存在则退出,信息为 The backup folder already exists(备份文件夹已经存在)。

当备份文件夹已存在时,可以尝试通过如下方式解决:

  • 删除已有的 _backup 文件夹后重新执行备份。
  • 修改备份路径避免冲突。
  1. 给原 dn_data_dirs 配置路径新建硬连接到对应的 _backup 路径 例如:dn_data_dirs=/data/iotdb/data/datanode/data 则备份完后数据在 /data/iotdb/data/datanode/data_backup
  2. 拷贝出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非必填
-targetdirIoTDB要备份到的文件夹必填
-targetdatadir配置项dn_data_dirs路径下文件要备份到的路径,默认targetdir/data/datanode/data非必填
-targetwaldir配置项dn_wal_dirs路径下文件要备份到的路径,默认targetdir/data/datanode/wal非必填

说明:

  1. 校验参数 -targetdir 为必填项 ,如果参数不存在,则输出 -targetdir cannot be empty, The backup folder must be specified-targetdir 参数不能为空,必须指定备份文件夹路径)。
  2. 对比配置文件中dn_data_dirsdn_wal_dirs 配置路径模式和参数 -targetdatadir-targetwaldir是否一致,如果-targetdatadir-targetwaldir参数为单一路径则认为一致,如果不一致,输出 -targetdatadir parameter exception, the number of original paths does not match the number of specified paths-targetdatadir 参数异常,原本路径个数跟现在指定路径个数不一致)。
  3. 校验 -targetdatadir 配置的路径是否和原配置路径在同一块盘,如果不是同一块盘,则拷贝 dn_data_dirs 配置的文件到参数 -targetdatadir 对应目录。如果是同一块盘,则优先打硬连接 dn_data_dirs 配置的文件到参数 -targetdatadir 对应目录,如果打硬连接失败就拷贝文件到-targetdatadir 对应目录
  4. 配置文件路径与目标路径匹配规则
  • 多对一:多个源路径可以备份到一个目标路径。
  • 一对一:一个源路径可以备份到一个目标路径。
  • 多对多:多个源路径可以备份到多个目标路径,但需要模式匹配。

示例

配置文件路径参数 -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 参数指定,规则同上