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