全量備份工具
大約 4 分鐘
全量備份工具
1. 概述
IoTDB 全量備份工具,用于將 IoTDB 單個節(jié)點的數(shù)據(jù)通過硬鏈接的方式備份到本地指定地址,并可以直接啟動加入原集群。備份工具提供了兩種模式:快速鏡像模式和手動指定備份路徑模式。
注意:
- 備份前請停止IoTDB服務。
- 腳本默認后臺執(zhí)行,執(zhí)行過程中打印的相關信息會輸出到日志文件中。
2. 備份模式
2.1 模式一:快速鏡像模式
使用方法
backup.sh/backup.bat -quick -node xxx
# xxx可選值見如下示例
backup.sh/backup.bat -quick -node
# 備份所有節(jié)點到默認路徑
backup.sh/backup.bat -quick -node all
# 備份所有節(jié)點到默認路徑
backup.sh/backup.bat -quick -node confignode
# 僅備份confignode節(jié)點到默認路徑
backup.sh/backup.bat -quick -node datanode
# 僅備份datanode節(jié)點到默認路徑參數(shù)說明
| 參數(shù) | 說明 | 是否必填 |
|---|---|---|
-quick | 快速鏡像 | 非必填 |
-node | 備份節(jié)點類型,可選項包括all/datanode/confignode,空值默認為all。 all:備份datanode和confignode節(jié)點 datanode:只備份datanode節(jié)點 confignode:只備份confignode節(jié)點 | 非必填 |
說明:
- 校驗當前
IoTDB文件夾及根據(jù)配置文件列出所有配置路徑是否已經(jīng)存在_backup文件夾,如果存在則退出,信息為The backup folder already exists(備份文件夾已經(jīng)存在)。
當備份文件夾已存在時,可以嘗試通過如下方式解決:
- 刪除已有的 _backup 文件夾后重新執(zhí)行備份。
- 修改備份路徑避免沖突。
- 給原
dn_data_dirs配置路徑新建硬連接到對應的_backup路徑 例如:dn_data_dirs=/data/iotdb/data/datanode/data則備份完后數(shù)據(jù)在/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參數(shù)說明
| 參數(shù) | 說明 | 是否必填 |
|---|---|---|
-node | 備份節(jié)點類型all/datanode/confignode默認值all | 非必填 |
-targetdir | IoTDB要備份到的文件夾 | 必填 |
-targetdatadir | 配置項dn_data_dirs路徑下文件要備份到的路徑,默認targetdir/data/datanode/data | 非必填 |
-targetwaldir | 配置項dn_wal_dirs路徑下文件要備份到的路徑,默認targetdir/data/datanode/wal | 非必填 |
說明:
- 校驗參數(shù)
-targetdir為必填項 ,如果參數(shù)不存在,則輸出-targetdir cannot be empty, The backup folder must be specified(-targetdir參數(shù)不能為空,必須指定備份文件夾路徑)。 - 對比配置文件中
dn_data_dirs,dn_wal_dirs配置路徑模式和參數(shù)-targetdatadir,-targetwaldir是否一致,如果-targetdatadir,-targetwaldir參數(shù)為單一路徑則認為一致,如果不一致,輸出-targetdatadir parameter exception, the number of original paths does not match the number of specified paths(-targetdatadir參數(shù)異常,原本路徑個數(shù)跟現(xiàn)在指定路徑個數(shù)不一致)。 - 校驗
-targetdatadir配置的路徑是否和原配置路徑在同一塊盤,如果不是同一塊盤,則拷貝dn_data_dirs配置的文件到參數(shù)-targetdatadir對應目錄。如果是同一塊盤,則優(yōu)先打硬連接dn_data_dirs配置的文件到參數(shù)-targetdatadir對應目錄,如果打硬連接失敗就拷貝文件到-targetdatadir對應目錄 - 配置文件路徑與目標路徑匹配規(guī)則
- 多對一:多個源路徑可以備份到一個目標路徑。
- 一對一:一個源路徑可以備份到一個目標路徑。
- 多對多:多個源路徑可以備份到多個目標路徑,但需要模式匹配。
示例
| 配置文件路徑 | 參數(shù) -targetdatadir 路徑 | 校驗結(jié)果 |
|---|---|---|
| /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 | 不一致 |
匹配規(guī)則總結(jié)
- 當
dn_data_dirs僅有;分割時:
規(guī)則:*-targetdatadir可以只輸入一個路徑(路徑中沒有;和,)。-targetdatadir也可以按照;分割多個路徑,但數(shù)量必須和dn_data_dirs中的路徑數(shù)量相等,且路徑中不能有,。
- 當
dn_data_dirs僅有,分割時:
規(guī)則:*-targetdatadir可以只輸入一個路徑(路徑中沒有;和,)。-targetdatadir也可以按照,分割多個路徑,但數(shù)量必須和dn_data_dirs中的路徑數(shù)量相等,且路徑中不能有;。
- 當
dn_data_dirs同時有;和,分割時:
規(guī)則:*-targetdatadir可以只輸入一個路徑(路徑中沒有;和,)。-targetdatadir也可以優(yōu)先按照;分割多個路徑,數(shù)量必須和dn_data_dirs中的路徑數(shù)量相等。每個;分割的路徑中可以只輸入一個路徑,也可以按照,分割多個路徑,但,分割的路徑數(shù)量必須相等。
wal路徑通常通過dn_wal_dirs參數(shù)指定,規(guī)則同上