2026年10月23日,TSDB for InfluxDB®將正式退市。為確保您的正常使用,請在退市之前儘快完成資料移轉。本文將為您詳細介紹雲InfluxDB資料遷出方案。
關於TSDB for InfluxDB®退市詳情,請參見【通知】2026年10月23日時序資料庫 InfluxDB® 版退市。
遷移方案選擇
根據業務需求選擇遷移方案:
平遷需求時:推薦自建InfluxDB。
大規模資料需使用分散式資料庫時:
時序監控情境:推薦雲原生多模資料庫Lindorm時序引擎。注意:由於Lindorm時序引擎暫不相容InfluxQL查詢語言,您的應用程式代碼需要進行查詢改造。如果您接受改造,我們推薦您遷移至該引擎。
其他時序情境:可評估其他分布式時序資料庫方案。
雲TSDB for InfluxDB遷移至自建InfluxDB
前提條件
雲TSDB for InfluxDB已升級為最新版(1.8.14)。
已開通備份連接埠號碼:8088。
您可以通過阿里雲工單系統提交工單,開通備份連接埠號碼。
需確保自建InfluxDB與雲TSDB for InfluxDB的地區、可用性區域、執行個體規格、專用網路以及虛擬交換器相同。
本文以ECS環境為例,購買滿足上述條件的ECS執行個體並安裝V1.8.10版本的自建InfluxDB。詳情請參見快速購買執行個體一鍵購買訂用帳戶執行個體。
您可以閱讀InfluxDB官網文檔備份與恢複章節瞭解遷移流程。
注意事項
備份與恢複僅支援遷移歷史資料,無法保證增量資料的遷移。因此,建議您將資料同時寫入雲TSDB for InfluxDB和自建InfluxDB後再遷移歷史資料。
備份期間會額外佔用儲存空間,確保有2倍儲存資料量以上的儲存空間。
若當前執行個體記憶體水位負載超過80%,請升配後再進行備份與遷移。
按照Shard備份資料,備份需指定資料庫、保留原則、Shard。
備份Backup
在自建InfluxDB所在的ECS中執行如下命令。
influxd backup -portable \
-host ts-xxx.influxdata.tsdb.aliyuncs.com:8088 \
-db example_db \
-rp example_rp \
-shard 123 \
/root/tmp/influx_backup參數介紹:
恢複Restore
參考官網文檔,將備份後的資料恢複至已存在的資料庫。
在自建InfluxDB所在的ECS中,執行如下命令,將資料恢複至臨時資料庫。
influxd restore -portable \ -db example_db \ -rp example_rp \ -shard 123 \ -newdb example_tmp_db \ /root/tmp/influx_backup參數說明:
-db:備份的資料庫名稱。
-rp:備份的保留原則名稱。
-shard:需要備份的分區ID。
newdb: 恢複的目標資料庫。
資料備份所在的目標目錄。
使用InfluxQL從臨時資料庫中查詢資料並寫回至目標資料庫中。
SELECT * INTO "example_db"."example_rp".:MEASUREMENT FROM "example_tmp_db".autogen./.*/ GROUP BY *刪除臨時資料庫。
DROP DATABASE "example_tmp_db"
雲TSDB for InfluxDB遷移至其他資料庫(含Lindorm時序引擎)
注意事項
查詢一定要添加Tag過濾條件和時間過濾條件,否則大查詢會造成執行個體不穩定。
匯出CSV檔案
您可以使用Influx-cli 工具(1.X版本)執行查詢,將查詢結果匯出成CSV檔案。
influx -ssl \
-host ts-xxx.influxdata.tsdb.aliyuncs.com \
-port 8086 \
-username "xxx" \
-password "xxx" \
-format "csv" \
-precision ms \
-database example_db \
-execute "select * from sensor" | \
> /root/tmp/ouput.csv匯出的CSV檔案第一列為name列(代表measurement),若不需要該列則使用如下命令。
influx -ssl \
-host ts-xxx.influxdata.tsdb.aliyuncs.com \
-port 8086 \
-username "xxx" \
-password "xxx" \
-format "csv" \
-precision ms \
-database example_db \
-execute "select * from sensor" | \
sed -r 's/^[^,]+,//' | \
> /root/tmp/ouput.csv匯入至其他資料庫
通過開源工具或寫程式將CSV格式檔案匯入至其他資料庫。樣本如下。
樣本1:匯入至Lindorm時序引擎
使用Influx-cli 工具(1.X版本)匯出TSDB for InfluxDB®執行個體的資料。
將precision指定為ms或rfc3339,並去除measurement列。
influx -ssl \ -host ts-xxx.influxdata.tsdb.aliyuncs.com \ -port 8086 \ -username "xxx" \ -password "xxx" \ -format "csv" \ -precision ms \ -database example_db \ -execute "select * from sensor" | \ sed -r 's/^[^,]+,//' | \ > /root/tmp/ouput.csv在Lindorm TSDB上建立目標資料庫和目標表(需提前建立所有欄位)。
通過Lindorm-cli匯入CSV檔案至目標資料庫的目標表中。
lindorm-cli -url jdbc:lindorm:tsdb:url=http://ld-xxx-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 \
-format=csv \
-input /root/tmp/ouput.csv \
-database example_db \
-table example_table樣本2:匯入至InfluxDB
下載以下工具。
包含在InfluxDB發布包中:Influx-cli(1.X 版本)
單獨發布包: Influx-cli(2.X 版本)
使用 Influx-cli(1.X 版本)工具匯出資料。
有兩點需要注意:
無需指定 precision。
保留measurement列。
influx -ssl \ -host ts-xxx.influxdata.tsdb.aliyuncs.com \ -port 8086 \ -username "xxx" \ -password "xxx" \ -format "csv" \ -database example_db \ -execute "select * from sensor" | \ > /root/tmp/ouput.csv
使用Influx-cli(2.X 版本)工具將CSV檔案轉換成行協議檔案。詳情請參見Write CSV data to InfluxDB。
influx write dryrun \ --format csv \ --header "name|measurement,time|dateTime,device_id|tag,humidity|long|0,region|tag,temperature|double|0.0" \ --skipHeader=1 \ -f /root/tmp/ouput.csv \ > /root/tmp/ouput.line參數說明:
將行協議檔案寫入自建的1.X 版本InfluxDB。