Mongodb的入門(6)複本集

來源:互聯網
上載者:User

標籤:inf   對比   生效   .exe      情況下   情況   路徑   資料庫   

Mongodb的複本集:(有兩種情況,主從複製,複本集)

  這次我來說一下mongodb的複本集,複本集的出現可以有效保證mongodb的單點問題,對資料的穩健性有一定輔助作用:

  MongoDB複製:是將資料同步在多個伺服器的過程。

    1.複製提供了資料的冗餘備份,並在多個伺服器上儲存資料副本,提高了資料的可用性, 並可以保證資料的安全性。

    2.複製還允許您從硬體故障和服務中斷中恢複資料。

  什麼是複製?
    • 保障資料的安全性
    • 資料高可用性 (24*7)
    • 災難恢複
    • 無需停機維護(如備份,重建索引,壓縮)
    • 分布式讀取資料
MongoDB複製原理:

  mongodb的複製至少需要兩個節點。其中一個是主節點,負責處理用戶端請求,其餘的都是從節點,負責複製主節點上的資料。

  mongodb各個節點常見的搭配方式為:一主一從、一主多從。

  主節點記錄在其上的所有操作oplog,從節點定期輪詢主節點擷取這些操作,然後對自己的資料副本執行這些操作,從而保證從節點的資料與主節點一致。

     

 

Mongodb的主從複製:

   由於我本地已經裝載了一個mongodb服務,我就在本地類比兩個mongdb啟動做資料備份的操作:

     1> 配置路徑如下:

      

 

     2> 進入各服務下的bin目錄啟動mongodb 並指定連接埠:Server1的對應master port = 27011    

      mongod.exe --dbpath=E:\mongodbRs\db1 --master --port=27011

      

      Server2下是複製的mongodb  port=27012     mongod.exe --dbpath=E:\mongodbRs\db2 --port=27012 --slave --source=127.0.0.1:27011

      啟動後一直監控:

      

    3>在27011 上插入一條記錄:

      27012上就能看到變化:

      

      

·      報錯的解決辦法:

      

      注意:叢庫只允許查詢,插入會報錯

      

    4>動態追加從屬資料庫    有印象就行,

      上面介紹的是在mongodb啟動的時候,就知道主要資料是哪個,下面我來說一種動態追加的方式:

      

     啟動mongodb,不指定主庫:mongod.exe --dbpath=E:\mongodbRs\db3 --port=27013 --slave

      

     上面顯示資訊是指沒有master庫配置:配置方式如下:

      

    查看mongodb3的服務啟動資訊可以查看到:slave生效了

      

    到這動態追加從庫也配置完成:

  5>讀寫分離

       這種手段在大一點的架構中都有實現,在mongodb中其實很簡單,在預設的情況下,從屬資料庫不支援資料的讀取,但是沒關係,

  在驅動中給我們提供了一個叫做“slaveOkay"來讓我們可以顯示的讀取從屬資料庫來減輕主要資料庫的效能壓力

  

對比:一主兩從

    

 

  到這主從複製就基本上說完了,下面說複本集的搭建和介紹

 

Mongdb的複本集:  

   複本集的特點:

    1> 複本集沒有特定的主要資料庫。

          2>如果哪個主要資料庫宕機了,叢集中就會推選出一個從屬資料庫作為主要資料庫頂上,這就具備了自動故障恢複功能,

     

  複本集在搭建過程中,要保證資料是清空的,因為我上面搭建的主從複製的資料都儲存在db1 db2 db3中,所以在搭建複本集時,要先清空資料,保證搭建複本集的純淨環境


  複本集:(搭建命令)
      mongod.exe --port 27011 --dbpath=E:\mongodbRs\db1 --replSet rs0
      mongod.exe --port 27012 --dbpath=E:\mongodbRs\db2 --replSet rs0
      mongod.exe --port 27013 --dbpath=E:\mongodbRs\db3 --replSet rs0

       複本集搭建過程:

    

  rs.status():查詢複本集的狀態:如下:

    

  6>剛說複本集是沒有主節點的叢集,主節點宕機後其他節點會自動切換回來,下面我類比這種情境,把27011幹掉:

    

  7>我再把27011節點起來,這時候他作為一個從節點的狀態又回到了叢集中:

    

  

  至此,mongodb的主從複製和複本集的搭建已經全部完成,不會的搭建可以參考:http://www.runoob.com/mongodb/mongodb-replication.html

  

    

Mongodb的入門(6)複本集

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.