本文介紹如何使用Data Transmission Service,實現全量資料移轉和增量資料移轉MongoDB複本集執行個體至其他地區,全量資料移轉MongoDB單節點執行個體至其他地區。
前提條件
源執行個體類型為單節點執行個體、複本集執行個體或分區叢集執行個體。
說明使用DTS遷移單節點執行個體時,不支援增量資料移轉,詳情請參見遷移類型說明。
已經為源執行個體申請了公網串連地址,申請方法請參見(可選)申請公網串連地址。
已在目標地區中建立了目標執行個體,詳情請參見建立執行個體。
說明建議目標執行個體的儲存空間比源執行個體的已使用儲存空間大10%。
背景資訊
在某些業務情境下,可能需要更換MongoDB執行個體的地區,例如:
業務結構調整。
在ECS執行個體上部署了相關應用程式,需要使用MongoDB執行個體提供資料庫服務,但是ECS執行個體與MongoDB執行個體不在同一地區。
本文以MongoDB執行個體從華北1(青島)遷移至華東1(杭州)為例,介紹具體的操作流程。
該操作僅遷移源執行個體的資料,源執行個體在遷移完成後如不再需要可執行釋放操作。
注意事項
DTS在執行全量資料移轉時將佔用源庫和目標庫一定的資源,可能會導致資料庫伺服器負載上升。如果資料庫業務量較大或伺服器規格較低,可能會加重資料庫壓力,甚至導致資料庫服務不可用。建議您在執行資料移轉前謹慎評估,在業務低峰期執行資料移轉。
單節點執行個體不支援使用DTS執行增量資料移轉,為保障資料一致性,全量資料移轉期間請勿在源執行個體中寫入新的資料。
MongoDB執行個體支援的版本與儲存引擎請參見版本及儲存引擎,如需跨版本或跨引擎遷移,請提前確認相容性。
MongoDB為保證提供更出色的效能和穩定性,建立的MongoDB執行個體為最新的資料庫小版本。
由於DTS寫入資料的邏輯為並發寫入,所以會導致目標端佔用的儲存空間比源端大5%~10%。
請確保目標端MongoDB沒有與源端相同的主鍵(預設為_id),否則會導致資料丟失。若目標端有與源端相同的主鍵,請在不影響業務的前提條件下清空目標端的相關資料(刪掉目標端中與源端相同_id的文檔)。
費用說明
遷移類型 | 鏈路配置費用 | 公網流量費用 |
全量資料移轉 | 不收費。 | 僅當通過公網將資料移轉出阿里雲時收費,詳情請參見DTS產品定價。 |
增量資料移轉 | 收費,詳情請參見DTS產品定價。 |
遷移類型說明
遷移類型 | 說明 |
全量資料移轉 | 將源MongoDB資料庫遷移對象的存量資料全部遷移到目標MongoDB資料庫中。 說明 支援遷移database、collection和index。 |
增量資料移轉 | 在全量遷移的基礎上,將源MongoDB資料庫的累加式更新資料同步到目標MongoDB資料庫中。 說明
|
資料庫帳號的許可權要求
遷移資料來源 | 全量資料移轉 | 增量資料移轉 |
源MongoDB執行個體 | 待遷移庫的read許可權 | 待遷移庫、admin庫和local庫的read許可權 |
目標MongoDB執行個體 | 目標庫的readWrite許可權 | 目標庫的readWrite許可權 |
資料庫帳號建立及授權方法請參見使用DMS管理MongoDB資料庫使用者。
操作步驟
完成遷移後,將業務切換至目標MongoDB執行個體。
後續操作
根據業務需求確認是否需要釋放源執行個體。
- 源執行個體付費類型為隨用隨付時,請參見釋放執行個體。
- 源執行個體付費類型為訂用帳戶時,不支援釋放。