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


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


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