場景描述
在(zai)滿足源Redis和(he)目標(biao)Redis的(de)網絡相通(tong)、源Redis已放通(tong)SYNC和(he)PSYNC命令這兩個(ge)前(qian)提下(xia),使(shi)用在(zai)線(xian)遷移(yi)(yi)的(de)方式,將源Redis中的(de)數(shu)據(ju)全量遷移(yi)(yi)或增量遷移(yi)(yi)到目標(biao)Redis中。
注意
如(ru)果源Redis禁用了SYNC和(he)PSYNC命令,請務必放(fang)通后再執行在(zai)線遷(qian)移(yi),否(fou)則(ze)遷(qian)移(yi)失敗,選擇DCS Redis實例(li)進行在(zai)線遷(qian)移(yi)時(shi),會(hui)自動(dong)放(fang)開SYNC命令。
在線遷移不(bu)支持公網方式(shi)直(zhi)接遷移。
進行在(zai)線(xian)遷移(yi)時,建(jian)議將源端實例的參數repl-timeout配(pei)置(zhi)為300秒,client-output-buffer-limit配(pei)置(zhi)為實例最大內存(cun)的20%。
源端僅支持(chi)Redis 3.0及3.0以上(shang)的Redis版本。
對業務影響
在線(xian)遷移,相當于增(zeng)加(jia)一(yi)個從節(jie)點并且(qie)會做一(yi)次(ci)全量同步,所以(yi),建議(yi)在業務低峰期遷移。
前提條件
- 在遷移之前,請先閱讀遷移方案概覽,選擇正確的遷移方案,了解當前DCS支持的在線遷移能力,選擇適當的目標實例。
- 如果是單機/主備等多DB的源端實例遷移到Proxy集群實例,Proxy集群默認不開啟多DB,僅有一個DB0,請先確保源端實例DB0以外的DB是否有數據,如果有,請先參考開啟多DB操作開啟Proxy集群多DB設置。
- 如果是單機/主備等多DB的源端實例遷移到Cluster集群實例,Cluster集群不支持多DB,僅有一個DB0,請先確保源端實例DB0以外的DB是否有數據,如果有,請將數據轉存到DB0,否則會出現遷移失敗,將數據轉存到DB0的操作請參考使用Rump在線遷移。
步驟1:獲取源Redis的IP(域名)和端口
獲取準(zhun)備遷移的(de)源(yuan)Redis實例的(de)IP和端口(kou),或者域名和端口(kou)。
步驟2:準備目標Redis實例
如果(guo)沒有清空,如果(guo)存(cun)在與源Redis實例相(xiang)同(tong)的key,遷移后,會覆蓋目標Redis實例原來的數據。
步驟:3:檢查網絡
步驟 1 檢查源Redis、目標(biao)Redis、遷移任(ren)務資源所在(zai)VPC是否在(zai)同一個VPC內。
如果是,則(ze)執行步驟4:創(chuang)建在(zai)線(xian)遷移任(ren)務;如果不是,執行步驟2。
步(bu)驟 2 檢查源(yuan)(yuan)Redis的(de)VPC、目標Redis的(de)VPC、遷移(yi)任務資源(yuan)(yuan)所在VPC的(de)網絡是否打通(tong),確保遷移(yi)任務的(de)虛擬機資源(yuan)(yuan)能訪(fang)問源(yuan)(yuan)Redis和目標Redis。
如(ru)果(guo)已打通,則(ze)執行步(bu)驟(zou)4:創建在線遷移(yi)任(ren)務;如(ru)果(guo)沒打通,則(ze)執行步(bu)驟(zou)3。
步驟 3 執行相應操作,打通網絡(luo)。
- 當源Redis和目標Redis都屬于DCS同一region,請查看和創建對等連接,打通網絡。
- 當源Redis和目標Redis屬于不同的云廠商或不同Region,請打通網絡。
步驟4:創建在線遷移任務
步驟 1 登錄分布式緩存(cun)服務控制(zhi)臺。
步驟 2 單(dan)擊左側菜(cai)單(dan)欄的(de)“數據(ju)遷移(yi)”。頁面顯示遷移(yi)任務列表(biao)頁面。
步驟 3 單(dan)擊右(you)上角(jiao)的(de)“創(chuang)建在線遷移(yi)任(ren)務”。
步驟 4 設置遷(qian)移(yi)任(ren)務名(ming)稱和描述(shu)。
步驟 5 配置在(zai)線遷(qian)移(yi)任務虛擬(ni)機資源(yuan)的VPC、子網和安全(quan)組。
創建在線(xian)遷移(yi)任務時,需要選擇遷移(yi)虛擬機(ji)資源(yuan)的VPC和(he)(he)安全組,并(bing)確保遷移(yi)資源(yuan)能訪問源(yuan)Redis和(he)(he)目標Redis實(shi)例。
說明
創建的在線遷移(yi)(yi)任務(wu)會占用一個租戶(hu)側(ce)IP,即(ji)控制臺上(shang)遷移(yi)(yi)任務(wu)對應的“遷移(yi)(yi)IP”。如果源端(duan)Redis或目標端(duan)Redis配置(zhi)了(le)白(bai)名(ming)(ming)單,需確保配置(zhi)了(le)遷移(yi)(yi)IP或關閉白(bai)名(ming)(ming)單限制
遷(qian)移(yi)任務所(suo)選(xuan)安(an)全組的(de)“出方(fang)向規則”需放通源端(duan)Redis和目(mu)標(biao)端(duan)Redis的(de)IP和端(duan)口(安(an)全組默認情況下為全部放通,則無需單獨放通),以便(bian)遷(qian)移(yi)任務的(de)虛(xu)擬(ni)機資(zi)源能訪問源Redis和目(mu)標(biao)Redis。
步驟5:配置在線遷移任務
步驟 1 創建(jian)完在(zai)線遷移任(ren)務之后,在(zai)“在(zai)線遷移”的列表,單擊“配置(zhi)”,配置(zhi)在(zai)線遷移的源Redis、目標Redis等信息。
步驟 2 選擇遷移(yi)方法(fa)。
支(zhi)持“全(quan)量(liang)遷(qian)(qian)(qian)移(yi)”和“全(quan)量(liang)遷(qian)(qian)(qian)移(yi)+增(zeng)量(liang)遷(qian)(qian)(qian)移(yi)”兩種,“全(quan)量(liang)遷(qian)(qian)(qian)移(yi)”和“全(quan)量(liang)遷(qian)(qian)(qian)移(yi)+增(zeng)量(liang)遷(qian)(qian)(qian)移(yi)”的功能及限制如下表所(suo)示。
在線遷移方法說明
| 遷移類型 | 描述 |
|---|---|
| 全量遷移 | 該模式為Redis的一次性遷移,適用于可中斷業務的遷移場景。全量遷移過程中,如果源Redis有數據更新,這部分更新數據不會被遷移到目標Redis。 |
| 全量遷移+增量遷移 | 該模式為Redis的持續性遷移,適用于對業務中斷敏感的遷移場景。增量遷移階段通過解析日志等技術, 持續保持源Redis和目標端Redis的數據一致。增量遷移,遷移任務會在遷移開始后,一直保持遷移中狀態,不會自動停止。需要您在合適時間,在“操作”列單擊“停止”,手動停止遷移。停止后,源端數據不會造成丟失,只是目標端不再寫入數據。增量遷移在傳輸鏈路網絡穩定情況下是秒級時延,具體的時延情況依賴于網絡鏈路的傳輸質量。 |
圖 選擇遷移方法


步驟 3 配置“源Redis”和(he)“目(mu)標Redis”。
- Redis類型支持“云服務Redis”和“自建Redis”,需要根據遷移場景選擇數據來源。
云服務(wu)Redis:當(dang)源(yuan)端(duan)或目標Redis為DCS Redis,且與遷(qian)移(yi)任務(wu)處于相同(tong)VPC時,可以選擇“云服務(wu)Redis”類(lei)型(xing),并(bing)指定需要遷(qian)移(yi)的DCS Redis實例。
自建Redis:DCS Redis、其(qi)他云(yun)廠商(shang)Redis、自行(xing)搭建的(de)Redis,都可以選擇“自建Redis”類型,并輸入Redis的(de)連接地址。
- 如果是密碼訪問模式實例,在輸入連接實例密碼后,單擊密碼右側的“測試連接”,檢查實例密碼是否正確、網絡是否連通。如果是免密訪問的實例,請直接單擊“測試連接”。
步(bu)驟(zou) 4 單擊“下一步(bu)”。
步(bu)驟 5 確認遷移信(xin)息,然后(hou)單(dan)擊“提交”,開(kai)始創(chuang)建遷移任務。
可返回遷(qian)移任(ren)務列表中,觀察(cha)對應的遷(qian)移任(ren)務的狀態,遷(qian)移成功(gong)后,任(ren)務狀態顯示(shi)“成功(gong)”。
說明
如(ru)果是(shi)增量遷(qian)移,會一直保持遷(qian)移中狀態,需(xu)要手動停止遷(qian)移。
如需停(ting)止(zhi)遷移中的(de)任務,勾選(xuan)遷移任務左側的(de)方框,單(dan)擊實例上方信息欄的(de)“停(ting)止(zhi)”,即可(ke)停(ting)止(zhi)遷移。
數據遷移后,源端與目標端重復(fu)的(de)Key會被覆(fu)蓋。
如果出現遷(qian)移失敗,可以單擊(ji)遷(qian)移任務名(ming)稱,進入遷(qian)移任務詳(xiang)情頁面,查看(kan)“遷(qian)移日志”。
遷移后驗證
遷移完成(cheng)后,請(qing)使用Redis-cli連(lian)接源Redis和目標(biao)Redis,確認數據的完整性。
- 連接源Redis和目標Redis。
- 輸入info keyspace,查看keys參數和expires參數的值。


- 對比源Redis和目標Redis的keys參數分別減去expires參數的差值。如果差值一致,則表示數據完整,遷移正常。
注意
如果是全量遷(qian)移(yi)(yi),遷(qian)移(yi)(yi)過程中源Redis更(geng)新的數據不會(hui)遷(qian)移(yi)(yi)到目(mu)標實(shi)例。