全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):使用AOF檔案進行遷移

更新時間:Nov 30, 2024

redis-cli是原生Redis的命令列工具,您可以使用redis-cli將自建Redis中已儲存至AOF檔案的資料移轉到Tair (Redis OSS-compatible)。本方案具有靈活、高效與自動化等特點,可保障資料的一致性與完整性,但本方案不支援即時同步,僅支援遷移離線資料。

建議停機遷移資料,或在遷移過程中不寫入新的資料。

說明

redis-cli不是線上遷移工具,而僅是一個簡單的讀取、發送工具,無法保證複雜的線上遷移情境,如需進行線上即時移轉,請參見使用DTS遷移Redis

前提條件

  • 將用戶端所在裝置的IP地址添加到Tair (Redis OSS-compatible)白名單中,更多資訊請參見設定IP白名單

  • 自建Redis執行個體已開啟AOF功能。若執行個體未啟用,請執行CONFIG SET appendonly yes命令開啟AOF功能。

  • 自建Redis執行個體已關閉混合持久化。若自建執行個體為Redis 5.0及以上版本,請執行CONFIG SET aof-use-rdb-preamble no命令關閉混合持久化。

操作步驟

  1. 串連自建Redis執行個體,手動觸發AOF檔案重寫,儲存最新的AOF檔案。

    redis-cli -h <自建Redis執行個體IP地址> -p <連接埠號碼>  BGREWRITEAOF

    預計返回:Background append only file rewriting started

  2. 通過AOF檔案將資料匯入到新的Tair (Redis OSS-compatible)執行個體中,此處以AOF檔案appendonly.aof為例。

    redis-cli -h <雲資料庫 Tair(相容 Redis)的IP地址> -p <連接埠號碼>  -a <執行個體密碼> --pipe < appendonly.aof

    樣本:redis-cli -h r-bp1zxszhcgatnx****.redis.rds.aliyuncs.com -p 6379 -a user:password --pipe < appendonly.aof

    預計返回:

    All data transferred. Waiting for the last reply...
    Last reply received from server.
    errors: 0, replies: 90

    當看到類似上述資訊,表示遷移成功。

後續步驟

如果自建Redis執行個體不需要一直開啟AOF,可在匯入完成後通過以下命令關閉。

redis-cli -h <自建Redis執行個體IP地址> -p <自建Redis執行個體連接埠號碼> CONFIG SET appendonly no

常見問題

  • Q:在匯入時產生報錯:ERR Protocol error: too big inline request

    A:請通過CONFIG GET aof-use-rdb-preamble命令,檢查執行個體的aof-use-rdb-preamble參數是否為yes。若為yes,請通過CONFIG SET aof-use-rdb-preamble no命令將其置為no,重建AOF檔案並重試。

    說明

    若將aof-use-rdb-preamble參數改為yes時,AOF檔案中的部分資料將壓縮,此類資料無法通過redis-cli命令解析、匯入。

  • Q:如何匯出Tair (Redis OSS-compatible)執行個體的AOF檔案?

    A:Tair (Redis OSS-compatible)執行個體不支援匯出AOF檔案。

  • Q:為什麼會匯入失敗,報錯ERR syntax error

    A:若Tair (Redis OSS-compatible)執行個體版本低於自建Redis版本,可能會導致該問題,請購買相同版本或更高版本的Tair (Redis OSS-compatible)執行個體。例如自建Redis和Tair (Redis OSS-compatible)執行個體都是相容Redis 7.0版本。