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


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


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