Mongodb的入門(6)副本集

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

  此次我來講一下mongodb的副本集,副本集的出現能夠有效的保證mongodb的單點問題,對數據的穩健性有必定輔助做用:html

  MongoDB複製:是將數據同步在多個服務器的過程。

    1.複製提供了數據的冗餘備份,並在多個服務器上存儲數據副本,提升了數據的可用性, 並能夠保證數據的安全性。mongodb

    2.複製還容許您從硬件故障和服務中斷中恢復數據。數據庫


  什麼是複製?

    • 保障數據的安全性
    • 數據高可用性 (24*7)
    • 災難恢復
    • 無需停機維護(如備份,重建索引,壓縮)
    • 分佈式讀取數據

MongoDB複製原理:

  mongodb的複製至少須要兩個節點。其中一個是主節點,負責處理客戶端請求,其他的都是從節點,負責複製主節點上的數據。安全

  mongodb各個節點常見的搭配方式爲:一主一從、一主多從。服務器

  主節點記錄在其上的全部操做oplog,從節點按期輪詢主節點獲取這些操做,而後對本身的數據副本執行這些操做,從而保證從節點的數據與主節點一致。架構

     

 


Mongodb的主從複製:

   因爲我本地已經裝載了一個mongodb服務,我就在本地模擬兩個mongdb啓動作數據備份的操做:分佈式

     1> 配置路徑以下:性能

      

 

     2> 進入各服務下的bin目錄啓動mongodb 並指定端口:Server1的對應master port = 27011    htm

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

      

      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

相關文章
相關標籤/搜索