全部產品
Search
文件中心

Time Series Database:雲 InfluxDB 資料遷出方案

更新時間:Jun 25, 2026

雲 TSDB for InfluxDB 即將退市,需要將現有資料遷出。本文介紹如何使用 InfluxDB 的 backup 和 restore 工具,將雲執行個體中的歷史資料按 Shard 逐步遷移至自建 InfluxDB 1.x。

重要

2026 年 10 月 23 日,TSDB for InfluxDB® 將正式退市。為確保業務正常運行,請在退市之前儘快完成資料移轉。關於 TSDB for InfluxDB® 退市詳情,請參見【通知】2026年10月23日時序資料庫 InfluxDB® 版退市

前提條件

  1. 將雲 TSDB for InfluxDB 升級至 1.8.14 或以上版本。

  2. 通過阿里雲工單系統提交工單,聯絡支援人員開通 8088 備份連接埠。

  3. 在相同地區、可用性區域、專用網路和虛擬交換器下購買相同規格的 ECS 機器,用於遷移和自建 InfluxDB。具體操作,請參見快速購買執行個體一鍵購買訂用帳戶執行個體

  4. 下載開源版 InfluxDB 1.8.10,並完成安裝、啟動和基礎配置,用於自建目標庫。

  5. 閱讀 InfluxDB 官網文檔備份與恢複章節,瞭解備份和恢複流程。

  6. 確認雲 TSDB for InfluxDB 執行個體的可用儲存空間不低於 40%。若可用儲存空間不足 40%,請先擴大儲存空間後再執行遷移操作。

  7. 確認雲 TSDB for InfluxDB 執行個體的記憶體水位不超過 60%。若記憶體水位超過 60%,需要先升配後再執行備份與遷移。

注意事項

  • 請確保 TSDB for InfluxDB 執行個體的記憶體水位和可用儲存空間滿足前提條件要求,備份操作會額外消耗執行個體的儲存空間和記憶體,資源不足會導致備份失敗並影響執行個體正常運行。

  • 備份與恢複僅支援遷移歷史資料,無法保證增量資料的遷移。建議將資料同時寫入雲 TSDB for InfluxDB 和自建 InfluxDB 後,再遷移歷史資料。

  • 備份檔案會佔用自建 InfluxDB 所在 ECS 的儲存空間,建議預留 2 倍儲存資料量以上的可用空間。

  • 資料移轉採用按時間分區串列匯入策略,即完成某一時間分區內整個資料庫的全量資料移轉後,再啟動下一個時間分區的遷移。

流程概覽

資料移轉按 Shard 逐個執行,完整流程如下:

  1. 確認前提條件已滿足。

  2. 通過 SHOW SHARDS 擷取所有 Shard 資訊。

  3. 選擇一個 Shard,在 ECS 上執行 influxd backup 將資料備份到本地。

  4. 執行 influxd restore 將備份資料恢複至自建 InfluxDB 的臨時資料庫。

  5. 通過 SELECT INTO 將臨時資料庫中的資料寫入目標資料庫。

  6. 驗證目標資料庫中的資料完整性。

  7. 刪除臨時資料庫。

  8. 對剩餘 Shard 重複步驟 3~7,直到所有 Shard 遷移完成。

操作說明

查看 Shard 列表

在執行備份前,通過 InfluxQL 查看所有 Shard 的資訊,確定需要遷移的 Shard 範圍:

SHOW SHARDS

從返回結果中擷取每個 Shard 的 iddatabaseretention_policy 欄位,作為後續備份命令的參數。需要對每個 Shard 分別執行備份和恢複操作。

備份 backup

在自建 InfluxDB 所在的 ECS 上執行備份命令,按 Shard 備份資料。備份需指定資料庫、保留原則和 Shard ID。

  • 使用方式

    influxd backup -portable \
      -host <源執行個體 VPC 地址:8088> \
      -db <資料庫名稱> \
      -rp <保留原則名稱> \
      -shard <Shard ID> \
      <備份目錄>
  • 參數說明

    參數

    說明

    -portable

    使用 portable 備份格式。

    -host

    雲 TSDB for InfluxDB 的 VPC 網路地址和備份連接埠,格式為 ts-xxx:8088

    -db

    需要備份的資料庫名稱。

    -rp

    需要備份的保留原則名稱。

    -shard

    需要備份的 Shard ID,可通過 SHOW SHARDS 查看。

    <備份目錄>

    備份檔案儲存目錄,例如 /root/tmp/influx_backup

  • 樣本

    influxd backup -portable \
      -host ts-xxx.influxdata.tsdb.aliyuncs.com:8088 \
      -db example_db \
      -rp example_rp \
      -shard 123 \
      /root/tmp/influx_backup
    說明

    樣本中的 ts-xxx.influxdata.tsdb.aliyuncs.com:8088example_dbexample_rp123/root/tmp/influx_backup 需要按實際遷移範圍替換。

恢複 restore

參考官網文檔,將備份後的資料恢複至已存在的資料庫

  1. 在自建 InfluxDB 所在的 ECS 上執行恢複命令,將資料恢複至臨時資料庫。

    • 使用方式

      influxd restore -portable \
        -db <備份的資料庫名稱> \
        -rp <備份的保留原則名稱> \
        -shard <Shard ID> \
        -newdb <臨時資料庫名稱> \
        <備份目錄>
      
    • 參數說明

      參數

      說明

      -portable

      讀取 portable 備份格式。

      -db

      備份的資料庫名稱。

      -rp

      備份的保留原則名稱。

      -shard

      備份的 Shard ID。

      -newdb

      恢複的臨時資料庫名稱。

      <備份目錄>

      資料備份所在的目錄,例如 /root/tmp/influx_backup

    • 樣本

      influxd restore -portable \
        -db example_db \
        -rp example_rp \
        -shard 123 \
        -newdb example_tmp_db \
        /root/tmp/influx_backup
      樣本中的 example_dbexample_rp123example_tmp_db/root/tmp/influx_backup 需要按實際備份內容替換。
  2. 使用 InfluxQL 從臨時資料庫中查詢資料,並寫入目標資料庫。

    如果資料量較大,SELECT INTO 可能因查詢逾時導致資料不完整。執行前確認以下事項:

    • 如果啟用了查詢逾時(即設定了 INFLUXDB_COORDINATOR_QUERY_TIMEOUT),將其調整為較大的值。InfluxDB 預設不設定查詢逾時。

    • 對於資料量較大的情境,建議按時間範圍分批執行 SELECT INTO,避免單次查詢逾時。

      SELECT *
      INTO "example_db"."example_rp".:MEASUREMENT
      FROM "example_tmp_db"."example_rp"/.*/
      GROUP BY *
    /.*/ 為 InfluxQL 正則文法,表示匹配所有 measurement。
  3. 驗證資料完整性。分別查詢臨時資料庫和目標資料庫的資料量,確認資料一致後再執行下一步。

    SELECT COUNT(*) FROM "example_tmp_db"."example_rp"/.*/
    SELECT COUNT(*) FROM "example_db"."example_rp"/.*/
  4. 刪除臨時資料庫。

    DROP DATABASE "example_tmp_db";

常見問題

  • Q:備份恢複是否會遷移增量資料?

    A:不會自動遷移。influxd backup 只覆蓋執行備份操作時刻的資料,不包含備份完成後的新增資料。建議將資料同時寫入雲 TSDB for InfluxDB 和自建 InfluxDB 後,再遷移歷史資料。

  • Q:如何查看雲 TSDB for InfluxDB 執行個體的規格?

    A:登入 TSDB 控制台,進入執行個體詳情頁面。在配置資訊地區查看執行個體規格資訊,包括儲存容量、CPU、資料庫記憶體、磁碟類型和引擎版本等。

  • Q:如何確定執行個體是否還有讀寫訪問?

    A:登入 TSDB 控制台,進入執行個體監控頁面,選擇引擎監控。通過每秒寫入資料點監控查看是否仍有寫入請求,通過每秒查詢量監控查看是否仍有查詢請求。

  • Q:如何遷移到其他資料庫?

    A:建議優先遷移到自建 InfluxDB,遷移成本相對較低,可以盡量保留現有資料模型、查詢語言和用戶端使用方式。遷移到其他資料庫時,不同資料庫的資料模型、查詢語言、時間精度、資料類型和匯入工具與 InfluxDB 不一致,建議根據目標資料庫能力自行評估和驗證。本文不提供特定資料庫的遷移步驟。

參考文檔