Backup Tool
Backup Tool
1. Overview
The IoTDB Full Backup Tool is designed to create a full backup of a single IoTDB node’s data via hard links to a specified local directory. The backup can then be directly started and joined to the original cluster. The tool offers two modes: Quick Mirror Mode and Manual Backup Path Mode.
Notes:
- Stop the IoTDB service before starting the backup.
- The script runs in the background by default, and logs are saved to log files during execution.
- IoTDB version requirement: Must be v1.3.2 or higher.
2. Backup Modes
2.1 Mode 1: Quick Mirror Mode
Usage
backup.sh/backup.bat -quick -node xxx 
# Optional values for xxx are shown in the following examples
backup.sh/backup.bat -quick -node 
# Back up all nodes to the default path 
backup.sh/backup.bat -quick -node all 
# Back up all nodes to the default path 
backup.sh/backup.bat -quick -node confignode 
# Back up only the ConfigNode to the default path 
backup.sh/backup.bat -quick -node datanode 
# Back up only the DataNode to the default pathParameter Descriptions
| Parameter | Description | Required | 
|---|---|---|
| -quick | Enables Quick Mirror Mode. | No | 
| -node | Specifies the node type to back up. Options: all,datanode, orconfignode. Default:all.all: Back up both DataNode and ConfigNode.datanode: Back up only the DataNode.confignode: Back up only the ConfigNode. | No | 
Process Details:
- Check if the _backupfolder already exists in the current IoTDB directory or paths specified in the configuration file. If it exists, the tool exits with the error:The backup folder already exists.
When the backup folder already exists, you can try the following solutions:
- Delete the existing _backup folder and retry the backup.
- Modify the backup path to avoid conflicts.
- Create hard links from the original dn_data_dirspaths to the corresponding_backuppaths.- Example: If dn_data_dirs=/data/iotdb/data/datanode/data, the backup data will be stored in/data/iotdb/data/datanode/data_backup.
 
- Example: If 
- Copy other files from the IoTDB directory (e.g., /data/iotdb) to the_backuppath (e.g.,/data/iotdb_backup).
2.2 Mode 2: Manual Backup Path Mode
Usage
backup.sh -node xxx -targetdir xxx -targetdatadir xxx -targetwaldir xxxParameter Descriptions
| Parameter | Description | Required | 
|---|---|---|
| -node | Node type to back up ( all,datanode, orconfignode). Default:all. | No | 
| -targetdir | Target directory for backing up the IoTDB folder. | Yes | 
| -targetdatadir | Target path for dn_data_dirsfiles. Default:targetdir/data/datanode/data. | No | 
| -targetwaldir | Target path for dn_wal_dirsfiles. Default:targetdir/data/datanode/wal. | No | 
Process Details:
- The - -targetdirparameter is mandatory. If missing, the tool exits with the error:- -targetdir cannot be empty. The backup folder must be specified.
- Validate consistency between configuration paths ( - dn_data_dirs,- dn_wal_dirs) and parameters (- -targetdatadir,- -targetwaldir):- If -targetdatadiror-targetwaldiris a single path, it is considered consistent.
- If the number of source paths (from configuration) does not match the target paths, the tool exits with the error: -targetdatadir parameter exception: the number of original paths does not match the specified paths.
 
- If 
- Check if - -targetdatadirpaths are on the same disk as the original paths:- Same disk: Attempt to create hard links. If hard links fail, copy files instead.
- Different disk: Copy files directly.
 
- Path Matching Rules 
- Many-to-One: Multiple source paths can be backed up to a single target path.
- One-to-One: A single source path can be backed up to a single target path.
- Many-to-Many: Multiple source paths can be backed up to multiple target paths, but the pattern must match.
Examples
| Configuration Paths | -targetdatadirPaths | Result | 
|---|---|---|
| /data/iotdb/data/datanode/data | /data/iotdb_backup/data/datanode/data | Consistent | 
| /data/iotdb/data/datanode/data | /data/iotdb_backup/data/datanode/data1,/data/iotdb_backup/data/datanode/data2 | Inconsistent | 
| /data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2 | /data/iotdb_backup/data/datanode/data | Consistent | 
| /data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2 | /data/iotdb_backup/data/datanode/data3,/data/iotdb_backup/data/datanode/data4 | Consistent | 
| /data/iotdb/data/datanode/data1,/data/iotdb/data/datanode/data2;/data/iotdb/data/datanode/data3 | /data/iotdb_backup/data/datanode/data | Consistent | 
| /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 | Consistent | 
| /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 | Consistent | 
| /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 | Inconsistent | 
Path Matching Rules Summary
- Paths separated by ;only:- -targetdatadircan be a single path (no- ;or- ,).
- -targetdatadircan also use- ;to split paths, but the count must match the source paths.
 
- Paths separated by ,only:- -targetdatadircan be a single path (no- ;or- ,).
- -targetdatadircan also use- ,to split paths, but the count must match the source paths.
 
- Paths with both ;and,:- -targetdatadircan be a single path (no- ;or- ,).
- Split paths first by ;, then by,. The number of paths at each level must match.
 
Note: The
dn_wal_dirsparameter (for WAL paths) follows the same rules asdn_data_dirs.