在使用控制臺進行數據遷移時,如果出現遷移方案選擇錯誤、在線遷移源Redis沒有放通SYNC和PSYNC命令、源Redis和目標Redis網絡不連通等問題,都會導致遷移失敗。
排查步驟
步驟 1 查看遷移日志。
- 出現如下錯誤,表示遷移任務底層資源不足,需要聯系技術支持處理。
create migration ecs failed, flavor
- 出現如下錯誤,表示在線遷移時,源Redis沒有放通SYNC和PSYNC命令,需要聯系技術支持放通命令。
source redis unsupported command: psync
步驟 2 檢查遷移方案。Redis實例間遷移,高版本不支持遷移到低版本。
步驟 3 檢查源Redis是否放通SYNC和PSYNC命令,遷移任務底層資源與源Redis、目標Redis網絡是否連通。
如果是在線遷移,才涉及該操作。
在線遷移,必須滿足源Redis和目標Redis的網絡相通、源Redis已放通SYNC和PSYNC命令這兩個前提,否則,會遷移失敗。
- 網絡
檢查DCS的源Redis、目標Redis、遷移任務所需虛擬機是否在同一個VPC,如果不在同一個VPC,則需要建立VPC對等連接,打通網絡。關于創建和使用VPC對等連接,請參考《虛擬私有云用戶指南》的“對等連接”文檔說明。
如果是同一個VPC,則檢查安全組(Redis 3.0實例)或白名單(Redis 4.0/5.0/6.0實例)是否放通端口和IP,確保網絡是連通的;
源Redis和目標Redis必須允許遷移任務底層虛擬機訪問。
源Redis和目標Redis屬于不同的云廠商時,需使用云專線服務打通網絡。
- 命令
默認情況下,一般云廠商都是禁用了SYNC和PSYNC命令,如果要放通,需要聯系云廠商運維人員放通命令。
DCS內部進行遷移:
自建Redis遷移至DCS,默認沒有禁用SYNC和PSYNC命令;
DCS服務之間進行遷移,如果是同一帳號相同Region進行在線遷移,在執行遷移時,會自動放通SYNC和PSYNC命令;
如果是不同Region或相同Region不同帳號進行在線遷移,不會自動放通SYNC和PSYNC命令,無法使用控制臺上的在線遷移功能。推薦使用備份文件導入方式遷移。
其他云廠商遷移到DCS服務:
一般云廠商都是禁用了SYNC和PSYNC命令,如果使用在線遷移功能,需要聯系源端的云廠商運維人員放通此命令。如果使用離線遷移,推薦使用備份文件導入的方式。
如果不需要增量遷移,可以參考使用Redis-shake工具在線全量遷移其他云廠商Redis進行全量遷移,該方式不依賴于SYNC和PSYNC。
步驟 4 檢查源Redis是否存在大Key。
如果源Redis存在大key,建議將大key打散成多個小key后再遷移。
步驟 5 檢查目標Redis的規格是否大于遷移數據大小、是否有其他任務在執行。
如果目標Redis的實例規格小于遷移數據大小,遷移過程中,內存被占滿,會導致遷移失敗。
如果目標Redis存在正在執行的主備切換,建議聯系技術支持關閉主備切換后,重新執行數據遷移。待遷移完成后,重新開啟主備切換。
步驟 6 檢查遷移操作是否正確。
檢查填寫的IP地址、實例密碼是否正確。
步驟 7 排查白名單。
步驟 8 如果無法解決,請聯系技術支持。