概述
數據復制服務(Data
Replication Service,簡稱DRS)支持將ECS自建數據庫的數據遷移到本云文檔數據庫服務(Document Database
Service,以下簡稱DDS)實例。通過DRS提供的實時遷移任務,實現在數據庫遷移過程中業務和數據庫不停機,業務中斷時間最小化。
本章節主要介紹了通過DRS將ECS自建數據庫實時遷移至本云DDS的任務配置流程。支持以下網絡場景:
- 源數據庫和目標數據庫屬于同一個VPC網絡內
- 源數據庫和目標數據庫屬于不同VPC網絡內
網絡示意圖
圖 同一VPC網路
圖2 同區域不同VPC網絡
遷移流程
圖 遷移流程圖
遷移建議(重要)
數據庫遷移與環境多樣性和人為操作均有密切關系,為了確保遷移的平順,建議您在進行正式的數據庫遷移之前進行一次演練,可以幫助您提前發現問題并解決問題,如何最小化對數據庫的影響請參考如下建議。
強烈建議您在啟動任務時選擇“稍后啟動”功能,將啟動時間設置在業務低峰期,相對靜止的數據可以有效提升一次性遷移成功率,避免遷移對業務造成性能影響。
遷移須知(重要)
注意在創建遷移任務之前,請您務必仔細閱讀遷移須知。
參考《數據復制服務實時遷移》中具體鏈路的“使用須知”。
遷移準備
1.權限準備:
當使用 DRS 將ECS自建MongoDB數據庫的數據遷移到本云DDS實例時,在不同遷移類型情況下,對源數據庫和目標數據庫的帳號權限要求如表1:
表 遷移帳號權限
遷移類型
全量遷移
全量+增量遷移
源數據庫
副本集:連接源數據庫的用戶權限需要對admin數據庫有readAnyDatabase權限。
集群:連接源數據庫的用戶權限需要對admin數據庫有readAnyDatabase權限,對config數據庫有read權限。
單節點:連接源數據庫的用戶權限需要對admin數據庫有readAnyDatabase權限。
如果需要遷移源數據庫用戶和角色信息,連接源數據庫的用戶權限需要對admin數據庫的系統表system.users,system.roles有讀權限。
副本集:連接源數據庫的用戶權限需要對admin數據庫有readAnyDatabase權限,對local數據庫有read權限。
單節點:連接源數據庫的用戶權限需要對admin數據庫有readAnyDatabase權限,對local數據庫有read權限。
集群:連接源數據庫mongos節點的用戶權限需要對admin數據庫有readAnyDatabase權限,對config數據庫有read權限, 連接源數據庫分片節點的用戶權限需要對admin數據庫有readAnyDatabase權限,對local數據庫有read權限。
l?如果需要遷移源數據庫用戶和角色信息,連接源數據庫的用戶權限需要對admin數據庫的系統表system.users,system.roles有讀權限。
目標數據庫
連接目標數據庫的用戶權限需要對admin數據庫有readAnyDatabase權限,對目標數據庫有readWrite權限。
- 源數據庫權限設置:
需要確保源數據庫MongoDB的帳號權限具備表1的要求。若權限不足,需要在源數據庫端開通高權限的帳號。
- 目標數據庫權限設置:
本云DDS實例使用初始帳號即可。
2.網絡準備:
- 源數據庫所在的region需要和目標DDS所在的region保持一致。
- 源數據庫可以與目標DDS實例在同一個VPC,也可以不在同一個VPC。
當不在同一個VPC的時候,要求源數據庫實例和目標端DDS實例所處的子網處于不同網段,此時需要通過建立對等連接實現網絡互通,具體操作請參見《虛擬私有云用戶指南》中“VPC對等連接”章節。
當在同一VPC的時候,網絡默認是互通的。
3.安全規則準備:
同一VPC場景下,默認網絡是連通的,不需要單獨設置安全組。
不同VPC場景下,通過建立對等連接就可以實現網絡互通,不需要單獨設置安全組。
4.其他事項準備:
由于遷移過程不會遷移MongoDB數據庫的用戶信息以及相關參數,需要自行將上述信息導出后,手動添加到目標DDS中。
遷移步驟
1.創建遷移任務。
A.登錄管理控制臺,在服務列表中選擇“數據庫 > 數據復制服務”,進入數據復制服務信息頁面。
B.在“實時遷移管理”頁面,單擊右上角“創建遷移任務”,進入遷移任務信息頁面。
C.在“遷移實例”頁面,填選任務名稱、通知收件人、描述和遷移實例信息。
圖 遷移實例信息
表 任務和描述
| 參數 | 描述 |
|---|---|
| 區域 | 當前所在區域,可進行切換。 |
| 任務名稱 | 任務名稱在4-50位之間,必須以字母開頭,不區分大小寫,可以包含字母、數字、中劃線或下劃線,不能包含其他的特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含! = < > & ' " \ 特殊字符。 |
表 遷移實例信息
參數
描述
數據流動方向
選擇入云。
源數據庫引擎
選擇MongoDB數據庫引擎。
目標數據庫引擎
選擇DDS數據庫引擎。
網絡類型
選擇VPC網絡。
目標數據庫實例
您所創建的本云DDS實例。
遷移模式
此處以全量+增量模式為示例。
全量:該模式為數據庫一次性遷移,適用于可中斷業務的數據庫遷移場景,全量遷移將非系統數據庫的全部數據庫對象和數據一次性遷移至目標端數據庫,包括:表、視圖、存儲過程等。
說明如果用戶只進行全量遷移時,建議停止對源數據庫的操作,否則遷移過程中源數據庫產生的新數據不會同步到目標數據庫。
全量+增量:該模式為數據庫持續性遷移,適用于對業務中斷敏感的場景,通過全量遷移過程中完成的目標端數據庫的初始化后,增量遷移階段通過解析日志等技術,將遠端和目標端數據庫保持數據持續一致。
說明選擇“全量+增量”遷移模式,增量遷移可以在全量遷移完成的基礎上實現數據的持續同步,無需中斷業務,實現遷移過程中源業務和數據庫繼續對外提供訪問。
D.在“源庫及目標庫”信息頁面,遷移實例創建成功后,填選源庫信息和目標庫信息,建議您單擊“源庫和目標庫”處的“測試連接”,分別測試并確定與源庫和目標庫連通后,勾選協議,單擊“下一步”。
圖 源庫及目標庫信息
表 源庫信息
| 參數 | 描述 |
|---|---|
| 源庫類型 | 選擇“自建庫”。 |
| VPC | 源數據庫實例所在的虛擬專用網絡,可以對不同業務進行網絡隔離。您需要創建或選擇所需的虛擬私有云。如何創建虛擬私有云,請參見《虛擬私有云用戶指南》。 |
| 子網 | 通過子網提供與其他網絡隔離的、可以獨享的網絡資源,以提高網絡安全。子網在可用分區內才會有效,創建源數據庫實例的子網需要開啟DHCP功能,在創建過程中也不能關閉已選子網的DHCP功能。如何創建子網,請參見《虛擬私有云用戶指南》。 |
| IP地址或域名 | 配置源MongoDB數據庫實例的訪問地址或域名。 |
| 端口 | 配置源MongoDB數據庫實例的服務端口,可輸入范圍為1~65535間的整數。 |
| 數據庫用戶名 | 訪問源MongoDB數據庫的用戶名。 |
| 數據庫密碼 | 訪問源MongoDB數據庫的用戶名所對應的密碼。 |
| SSL安全連接 | 您可以選擇開啟SSL安全連接,對遷移鏈路進行加密,開啟之后,需要您上傳加密證書。 |
表 目標庫信息
| 參數 | 描述 |
|---|---|
| 數據庫實例名稱 | 默認為創建遷移任務時選擇的已創建的本云DDS實例,不可進行修改。 |
| 數據庫用戶名 | 訪問目標數據庫本云DDS的用戶名。 |
| 數據庫密碼 | 訪問目標數據庫本云DDS的用戶名所對應的密碼。 |
E.在“遷移設置”頁面,設置遷移對象,單擊“下一步”。
圖 設置遷移對象
表 遷移對象
參數
描述
遷移用戶
常見的遷移用戶一般分為兩類:支持遷移的用戶和不支持遷移的用戶。您可以根據業務需求選擇“遷移”或者“不遷移”,其中,不支持遷移的賬號或者未選擇遷移的賬號將在目標數據庫中缺失,需要先確保業務不受影響。
遷移
當您選擇遷移用戶時,請參見《數據復制服務用戶指南》中“遷移用戶”章節進行數據庫用戶及角色的處理。
不遷移
遷移過程中,將不進行數據庫用戶及角色的遷移。
遷移對象
您可以根據業務需求,選擇全部對象遷移、表級遷移或者庫級遷移。
全部遷移:將源數據庫中的所有對象全部遷移至目標數據庫,對象遷移到目標數據庫實例后,對象名將會保持與源數據庫實例對象名一致且無法修改。
表級遷移:將選擇的表級對象遷移至目標數據庫。
庫級遷移:將選擇的庫級對象遷移至目標數據庫。
如果有切換源數據庫的操作或源庫遷移對象變化的情況,請務必在選擇遷移對象前單擊右上角的
,以確保待選擇的對象為最新源數據庫對象。
說明若選擇部分數據庫進行遷移時,由于存儲過程、視圖等對象可能與其他數據庫的表存在依賴關系,若所依賴的表未遷移,則會導致遷移失敗。建議您在遷移之前進行確認,或選擇全部數據庫進行遷移。
選擇對象的時候,對象名稱的前后空格不顯示,中間如有多個空格只顯示一個空格。
選擇對象的時候支持搜索,以便您快速選擇需要的數據庫對象。
F.在“預檢查”頁面,進行遷移任務預校驗,校驗是否可進行任務遷移。
- 查看檢查結果,如有不通過的檢查項,需要修復不通過項后,單擊“重新校驗”按鈕重新進行遷移任務預校驗。預檢查不通過項處理建議請參見《數據復制服務用戶指南》中的“預檢查不通過項修復方法”。
- 預檢查完成后,且所有檢查項結果均通過時,單擊“下一步”。
圖 預檢查
- 說明:所有檢查項結果均通過時,若存在待確認項,需要閱讀并確認詳情后才可以繼續執行下一步操作。
G.在“任務確認”頁面,設置遷移任務的啟動時間、任務異常通知設置、時延閾值、任務異常自動結束時間,并確認遷移任務信息無誤后,單擊“啟動任務”,提交遷移任務。
表 任務啟動設置
參數
描述
啟動時間
遷移任務的啟動時間可以根據業務需求,設置為“立即啟動”或“稍后啟動”,優選“稍后啟動”。
說明預計遷移任務啟動后,會對源數據庫和目標數據庫的性能產生影響,建議您將任務啟動時間設定在業務低峰期,同時預留2-3天校對數據。
任務異常通知設置
該項為可選參數,開啟之后,選擇對應的SMN主題。當遷移任務狀態異常時,系統將發送通知。
時延閾值
在增量遷移階段,源數據庫和目標數據庫之間的實時同步有時會存在一個時間差,稱為時延,單位為秒。
時延閾值設置是指時延超過一定的值后(時延閾值范圍為1—3600s),DRS可以發送告警通知。告警通知將在時延穩定超過設定的閾值6min后發送,避免出現由于時延波動反復發送告警通知的情況。
說明首次進入增量遷移階段,會有較多數據等待同步,存在較大的時延,屬于正常情況,不在此功能的監控范圍之內。設置時延閾值之前,需要設置任務異常通知。
任務異常自動結束時間(天)
設置任務異常自動結束天數,輸入值必須在14-100之間,默認值14。
說明異常狀態下的任務仍然會計費,而長時間異常的任務無法續傳和恢復。設置任務異常自動結束天數后,異常且超時的任務將會自動結束,以免產生不必要的費用。
2.任務管理。
遷移任務啟動后,會經歷全量遷移和增量遷移兩個階段,對于不同階段的遷移任務,您可以進行任務管理。
- 全量遷移
查看遷移進度:全量遷移中的任務,您可單擊任務名稱,在“遷移進度”頁簽下,查看全量遷移進度,您可以查看結構、數據、索引遷移的進度,也查看具體遷移對象的遷移進度。當全量遷移進度顯示為100%,表示全量遷移已經完成。
查看遷移明細:遷移明細中,您可以查看具體遷移對象的遷移進度,當“對象數目”和“已遷移對象”相等時,表示該對象已經遷移完成,可通過“查看詳情”查看每個對象的遷移進度。僅白名單用戶該支持功能,您可以通過提交工單的方式進行申請使用。
- 增量遷移
查看時延監控:全量遷移完成后,開始進行增量遷移。對于增量遷移中的任務,您可單擊任務名稱,在“遷移進度”頁簽下,查看增量遷移同步時延,當時延為0s時,說明源數據庫和目標數據庫的數據是實時同步的。您也可以使用“遷移對比”頁簽查看一致性。
圖 查看時延監控
查看遷移對比:為了盡可能減少業務的影響和業務中斷時間,增量遷移中的任務,您可單擊任務名稱,在“遷移對比”頁簽下,建議按照如下流程進行遷移對比,以便確定合適的業務割接時機。
圖9 遷移對比流程
3.割接建議。
建議您選擇一個業務低峰期,開始正式系統割接流程。割接前,請您確認至少在業務低峰期有過一次完整的數據對比。可以結合數據對比的“稍后啟動”功能,選擇業務低峰期進行數據對比,以便得到更為具有參考性的對比結果。由于同步具有輕微的時差,在數據持續操作過程中進行對比任務,可能會出現少量數據不一致對比結果,從而失去參考意義。
A.先中斷業務(如果業務負載非常輕,也可以嘗試不中斷業務)。
B.在源數據庫端執行如下語句,并觀察在1-5分鐘內若無任何新會話執行SQL ,則可認為業務已經完全停止。
db.currentOp()
說明上述語句查詢到的進程列表中,包括DRS遷移實例的連接,您需要確認除DRS遷移實例的連接外無任何新會話執行SQL,即可認為業務已經完全停止。
C.通過DRS遷移任務監控頁面進行觀察同步時延,保持實時同步時延為0,并穩定保持一段時間;同時,您可以使用數據級對比功能,進行割接前的最后一次數據級對比,耗時可參考之前的對比記錄。
如果時間允許,則選擇全部對比。
如果時間不允許,則推薦對比活躍表,關鍵業務表,第二步對比多次存在差異的表等。
D.確定系統割接時機,業務系統指向本云數據庫,業務對外恢復使用,遷移完成。
4.遷移結束。
A.結束遷移任務:業務系統和數據庫切換至本云后,為了防止源數據庫的操作繼續同步到目標數據庫,造成數據覆蓋問題,此時您可選擇結束遷移任務,該操作僅刪除了遷移實例,遷移任務仍顯示在任務列表中,您可以進行查看或刪除。結束遷移任務后,DRS將不再計費。
B.刪除遷移任務:對于已結束的遷移任務,您可選擇刪除任務。該操作將一并刪除遷移任務,刪除遷移任務后,該任務將不會出現在任務列表中。
,以確保待選擇的對象為最新源數據庫對象。