0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實現(xiàn)不同MongoDB實例間的數(shù)據(jù)復(fù)制?

數(shù)據(jù)庫小組 ? 來源:數(shù)據(jù)庫小組 ? 作者:數(shù)據(jù)庫小組 ? 2023-09-13 14:44 ? 次閱讀

作為一種 Schema Free 文檔數(shù)據(jù)庫,MongoDB 因其靈活的數(shù)據(jù)模型,支撐業(yè)務(wù)快速迭代研發(fā),廣受開發(fā)者歡迎并被廣泛使用。在企業(yè)使用 MongoDB 承載應(yīng)用的過程中,會因為業(yè)務(wù)上云/跨云/下云/跨機房遷移/跨地域遷移、或數(shù)據(jù)庫版本升級、數(shù)據(jù)庫整合、數(shù)據(jù)庫拆分、容災(zāi)等業(yè)務(wù)場景,存在 MongoDB 遷移或同步的業(yè)務(wù)訴求。

在 MongoDB 遷移的過程中,其遷移時間、遷移數(shù)據(jù)準(zhǔn)確性及遷移過程中業(yè)務(wù)的停機要求無疑是影響遷移能否成功的關(guān)鍵因素。由此,如何選擇合適的遷移工具,提供高效、安全、準(zhǔn)確的遷移能力至關(guān)重要。

01 傳統(tǒng)數(shù)據(jù)遷移方案

傳統(tǒng)的 MongoDB 遷移一般基于 mongodump 及 mongorestore 等導(dǎo)入導(dǎo)出工具進行數(shù)據(jù)搬遷,使用這種搬遷工具一般存在如下問題:

停機時間長:由于 mongodump/mongorestore 不支持增量數(shù)據(jù)的采集復(fù)制,在 MongoDB 遷移期間,要求業(yè)務(wù)停機,停服時間通常高達數(shù)小時/上天,對業(yè)務(wù)的挑戰(zhàn)極大。特別當(dāng)遷移難度較高時,通常反復(fù)多次遷移,業(yè)務(wù)停服時間更不可控。

可靠性不高:不提供遷移過程的觀測、診斷與修復(fù)能力,遷移過程中出現(xiàn)錯誤一般需要重新遷移,遷移難度較高。

數(shù)據(jù)準(zhǔn)確性難保障:此類工具因不提供對應(yīng)的質(zhì)量檢測能力,所以遷移的數(shù)據(jù)質(zhì)量一般難以保障。

大數(shù)據(jù)量遷移挑戰(zhàn):因其容災(zāi)能力不足,不能很好支撐大數(shù)據(jù)量、大表的遷移。

02 NineData 數(shù)據(jù)遷移方案

為解決用戶面臨的 MongoDB 遷移問題,玖章算術(shù)旗下的云原生智能數(shù)據(jù)管理平臺 NineData 推出了 MongoDB 業(yè)務(wù)不停服數(shù)據(jù)遷移能力。NineData 實現(xiàn)了完全自動化的全量數(shù)據(jù)遷移,以及增量數(shù)據(jù)的采集復(fù)制能力。其中,增量數(shù)據(jù)遷移能力,能夠在結(jié)構(gòu)遷移及全量數(shù)據(jù)遷移期間,實時監(jiān)聽采集源 MongoDB 數(shù)據(jù)變更產(chǎn)生的 oplog,并在完成全量遷移后,將變更數(shù)據(jù)實時復(fù)制到目標(biāo) MongoDB,實現(xiàn)源/目標(biāo) MongoDB 的動態(tài)復(fù)制?;谧兏鼣?shù)據(jù)遷移能力,在 MongoDB 數(shù)據(jù)遷移過程中,業(yè)務(wù)可以正常提供服務(wù),無需停服。最終,業(yè)務(wù)可根據(jù)需要選擇對應(yīng)時間點切換到目標(biāo) MongoDB,具體流程如下圖。

wKgaomUBWeOABbJuAAK0GySBFBk058.png

NineData數(shù)據(jù)遷移方案

除了提供業(yè)務(wù)不停服的遷移能力外,NineData 提供的 MongoDB 還具有如下能力:

?? 大數(shù)據(jù)量或大表的遷移能力

基于智能分片、動態(tài)攢批、并發(fā)遷移、表級斷點續(xù)傳等多種技術(shù)能力,提供強勁遷移能力。

?? 數(shù)據(jù)一致性對比

NineData 提供了 MongoDB 的數(shù)據(jù)對比能力,能夠進行高效的一致性對比,快速識別差異數(shù)據(jù),并提供對應(yīng)的訂正腳本,快速訂正修復(fù)差異內(nèi)容,有效保障遷移數(shù)據(jù)質(zhì)量。

?? 可觀測可干預(yù)能力

NineData 提供詳細的遷移狀態(tài)、進展及詳情信息,當(dāng)出現(xiàn)遷移異常時,會提供多種診斷修復(fù)能力,幫助您保障任務(wù)穩(wěn)定性。同時,提供遷移限流能力,您可根據(jù)業(yè)務(wù)需要,自定義遷移速度,保障 MongoDB 的穩(wěn)定性。

03 一分鐘啟動全自動化遷移

雖然提供了比較強大的 MongoDB 遷移能力,但是 NineData 使用起來非常簡單,只需要花 1 分鐘時間完成任務(wù)配置,即可以完全自動化完成數(shù)據(jù)的遷移及同步過程。下面我們來看下整個任務(wù)的配置過程:

3.1 配置復(fù)制任務(wù)

wKgaomUBWgSAWWJ4AAWwwQsuVD4933.pngNineData 配置復(fù)制任務(wù)

基于上述操作,完成復(fù)制數(shù)據(jù)源、復(fù)制對象及復(fù)制類型的選擇后,即可快速啟動 MongoDB 的全自動化遷移。當(dāng)完成任務(wù)啟動后,NineData 會自動進行全量數(shù)據(jù)遷移及增量數(shù)據(jù)復(fù)制。

當(dāng)數(shù)據(jù)遷移完成后,也可以配置對應(yīng)的數(shù)據(jù)對比進行數(shù)據(jù)一致性的校驗,快速發(fā)現(xiàn)、定位并修復(fù)差異數(shù)據(jù)。下面會對剛才遷移的 mongodb 數(shù)據(jù)進行數(shù)據(jù)一致性校驗。

3.2 全量數(shù)據(jù)對比

wKgZomUBWg-AD9kxAAWFoi0On7A554.png

NineData全量數(shù)據(jù)對比

如圖片所示,針對剛才遷移的 MongoDB 數(shù)據(jù)可以通過配置運行數(shù)據(jù)對比任務(wù),進行精準(zhǔn)、完整的數(shù)據(jù)對比。數(shù)據(jù)對比過程中,NineData 會對每個 Document 的內(nèi)容進行精準(zhǔn)對比,并快速發(fā)現(xiàn)差異內(nèi)容,并針對性提供訂正腳本。

至此,當(dāng)數(shù)據(jù)遷移完成、數(shù)據(jù)校驗及業(yè)務(wù)驗證通過后,業(yè)務(wù)可以選擇一個低峰期進行 MongoDB 的停機切換,切換到新的數(shù)據(jù)庫,至此完成整個遷移過程。

04 寫在最后

當(dāng)然,除了 MongoDB 遷移外,NineData 支持 MongoDB 實例間的長期復(fù)制,可應(yīng)用于數(shù)據(jù)容災(zāi)、讀寫分離、測試數(shù)據(jù)構(gòu)建等業(yè)務(wù)場景。同時,NineData 也已支持?jǐn)?shù)十種常見數(shù)據(jù)庫的遷移復(fù)制。NineData 提供即開即用的 SAAS 模式,及企業(yè)專屬集群模式,滿足企業(yè)最高的數(shù)據(jù)安全合規(guī)要求。當(dāng)前,NineData 已在運營商、金融、制造業(yè)、地產(chǎn)、電商等多個行業(yè)完成大規(guī)模應(yīng)用實踐。

NineData提供了高效、安全、準(zhǔn)確的MongoDB遷移方案。與傳統(tǒng)的遷移工具相比,NineData實現(xiàn)了業(yè)務(wù)不停服的全量數(shù)據(jù)遷移和增量數(shù)據(jù)的采集復(fù)制能力,解決了停機時間長、可靠性低、數(shù)據(jù)準(zhǔn)確性難保障等問題。此外,NineData還提供大數(shù)據(jù)量遷移能力、數(shù)據(jù)一致性對比和可觀測可干預(yù)能力。配置和啟動任務(wù)簡單快速,實現(xiàn)了自動化的遷移過程。無論是在遷移還是同步過程中,NineData都能提供穩(wěn)定的服務(wù),幫助用戶輕松完成MongoDB數(shù)據(jù)遷移。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3752

    瀏覽量

    64229
  • 數(shù)據(jù)遷移
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    6932
  • 大數(shù)據(jù)
    +關(guān)注

    關(guān)注

    64

    文章

    8854

    瀏覽量

    137210
  • mongodb
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    360
收藏 人收藏

    評論

    相關(guān)推薦

    分布式服務(wù)高可用實現(xiàn)復(fù)制

    作者:京東保險 王奕龍 1. 為什么需要復(fù)制 我們可以考慮如下問題: 當(dāng)數(shù)據(jù)量、讀取或?qū)懭胴撦d已經(jīng)超過了當(dāng)前服務(wù)器的處理能力,如何實現(xiàn)負載均衡? 希望在單臺服務(wù)器出現(xiàn)故障時仍能繼續(xù)工作,這該如何
    的頭像 發(fā)表于 10-29 11:27 ?517次閱讀
    分布式服務(wù)高可用<b class='flag-5'>實現(xiàn)</b>:<b class='flag-5'>復(fù)制</b>

    如何實現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現(xiàn)文件復(fù)制的特殊方法。下面我們開始學(xué)習(xí)這九種不同的方法來實現(xiàn)
    的頭像 發(fā)表于 07-18 14:53 ?336次閱讀

    一文詳解MongoDB分片(Sharding)技術(shù)

    一組復(fù)制集就是一組mongod實例掌管同一個數(shù)據(jù)集,實例可以在不同的機器上面。實例中包含一個主導(dǎo),接受客戶端所有的寫入操作,其他都是副本
    的頭像 發(fā)表于 04-28 10:35 ?4425次閱讀
    一文詳解<b class='flag-5'>MongoDB</b>分片(Sharding)技術(shù)

    MongoDB數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件損壞的數(shù)據(jù)恢復(fù)案例

    服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境: 一臺Windows Server操作系統(tǒng)服務(wù)器,服務(wù)器上部署MongoDB數(shù)據(jù)庫。 MongoDB數(shù)據(jù)庫故障&
    的頭像 發(fā)表于 04-23 14:48 ?370次閱讀
    <b class='flag-5'>MongoDB</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>MongoDB</b><b class='flag-5'>數(shù)據(jù)</b>庫文件損壞的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    MongoDB主從切換功能測試

    面向文檔的數(shù)據(jù)模型:MongoDB是一種面向文檔的數(shù)據(jù)庫,這意味著它使用文檔來存儲數(shù)據(jù),文檔是一個鍵值對集合,是非常靈活的數(shù)據(jù)模型。
    的頭像 發(fā)表于 03-14 11:25 ?693次閱讀
    <b class='flag-5'>MongoDB</b>主從切換功能測試

    mongodb和redis的區(qū)別

    MongoDB和Redis是兩種不同的NoSQL數(shù)據(jù)庫,它們在數(shù)據(jù)存儲、查詢和處理等方面具有一些明顯的區(qū)別。 數(shù)據(jù)模型: MongoDB是一
    的頭像 發(fā)表于 12-04 11:11 ?1099次閱讀

    數(shù)據(jù)數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫服務(wù)無法啟動并報錯數(shù)據(jù)恢復(fù)案例

    一臺Windows Server操作系統(tǒng)的虛擬機,虛擬機上部署有MongoDB數(shù)據(jù)庫。
    的頭像 發(fā)表于 11-22 14:48 ?508次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>庫<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>MongoDB</b><b class='flag-5'>數(shù)據(jù)</b>庫服務(wù)無法啟動并報錯<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    Quest:將數(shù)據(jù)復(fù)制到云端時需要考慮的問題有哪些

    災(zāi)難恢復(fù)和數(shù)據(jù)彈性:云數(shù)據(jù)復(fù)制在地理上分散的數(shù)據(jù)中心提供冗余和數(shù)據(jù)備份。
    的頭像 發(fā)表于 11-21 17:01 ?308次閱讀

    mysql主從復(fù)制數(shù)據(jù)不一致怎么辦

    MySQL主從復(fù)制是一種常用的數(shù)據(jù)復(fù)制技術(shù),用于實現(xiàn)數(shù)據(jù)的實時同步和分布式部署。然而,在實際應(yīng)用中,主從
    的頭像 發(fā)表于 11-16 14:35 ?2212次閱讀

    mysql主從復(fù)制 混合類型的復(fù)制

    MySQL主從復(fù)制是一種常用的數(shù)據(jù)復(fù)制技術(shù),可以實現(xiàn)數(shù)據(jù)從一個MySQL服務(wù)器(主服務(wù)器)復(fù)制
    的頭像 發(fā)表于 11-16 14:20 ?517次閱讀

    mysql主從復(fù)制的原理

    實現(xiàn)數(shù)據(jù)復(fù)制。 一、主從復(fù)制的基本概念 主數(shù)據(jù)庫(Master): 負責(zé)接收客戶端的寫操作,并將這些操作記錄到binlog中。 從
    的頭像 發(fā)表于 11-16 14:18 ?453次閱讀

    mysql主從復(fù)制主要有幾種模式

    MySQL主從復(fù)制是MySQL數(shù)據(jù)庫中常用的一種數(shù)據(jù)復(fù)制方式,用于實現(xiàn)數(shù)據(jù)的備份、負載均衡、故障
    的頭像 發(fā)表于 11-16 14:15 ?1123次閱讀

    mysql如何實現(xiàn)主從復(fù)制的具體流程

    主從復(fù)制是MySQL數(shù)據(jù)庫中常用的數(shù)據(jù)復(fù)制技術(shù)之一,它的主要目的是將一個數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)
    的頭像 發(fā)表于 11-16 14:10 ?734次閱讀

    mysql主從復(fù)制三種模式

    MySQL主從復(fù)制是一種常見的數(shù)據(jù)同步方式,它可以實現(xiàn)將一個數(shù)據(jù)庫的更改同步到其他多個數(shù)據(jù)庫的功能。主從
    的頭像 發(fā)表于 11-16 14:04 ?1407次閱讀

    軟通動力天鶴數(shù)據(jù)復(fù)制服務(wù),企業(yè)數(shù)據(jù)復(fù)制的穩(wěn)健之選

    2022年數(shù)據(jù)庫使用情況調(diào)查報告,數(shù)據(jù)遷移難度大是用戶面臨的最大挑戰(zhàn)。 隨著國產(chǎn)數(shù)據(jù)庫遷移的加速到來,能夠實現(xiàn)數(shù)據(jù)平滑無縫遷移的
    的頭像 發(fā)表于 11-14 18:45 ?341次閱讀