MongoDB複本集

來源:互聯網
上載者:User

標籤:style   blog   http   ar   color   使用   sp   strong   on   

在使用MongoDB的時候,為了保證資料的安全,就要考慮資料備份和故障恢複了;同時出於效能的考慮,能夠進行讀寫分離肯定能提升資料庫效能。

所以,在這篇文章中進行複本集的介紹。複本集(Replica Set),就是有自動故障恢複能力的主從叢集。

複本集有一個主節點,同時有一個或多個備份節點。當主節點出現故障的時候,備份節點會通過投票的方式選擇出一個新的備份節點。

 

複本集初始化

下面通過一些具體的實踐感受一下複本集。

首先通過下面三個命令啟動三個mongodb伺服器。其中,"replSet"選項指定了複本集的名稱。

mongod.exe --dbpath="c:\mongodb\db\node1" --port=11111 --replSet myReplSet --oplogSize=50mongod.exe --dbpath="c:\mongodb\db\node2" --port=22222 --replSet myReplSet --oplogSize=50mongod.exe --dbpath="c:\mongodb\db\node3" --port=33333 --replSet myReplSet --oplogSize=50

通過伺服器的輸出可以看到,我們現在需要"rs.initiate()"來初始化複本集。

下面我們就進行複本集的初始化工作,主要以下步驟:

  1. 首先通過一個MongoDB shell執行"mongo –port=11111"串連到"port=11111"的伺服器上
  2. 然後定義配置資訊"myReplSet_config"
  3. 最後通過"rs.initiate(myReplSet)"初始化複本集

在初始化命令完成後,可以通過"rs.status()"命令查看複本集的狀態。

在上面的輸出中,有幾個欄位需要注意一下:

  • "health":這個表示該節點的狀態是否正常
  • "state":這個欄位表示該節點是什麼類型的節點
  • "stateStr":表示當前同步的狀態,RECOVERING表示正在同步資料;SECONDARY表示已經成功同步,可以正常使用

現在,通過"Ctrl+c"命令來停止"port=11111"這個節點,然後開啟一個新的cmd視窗串連到"port=22222"的伺服器上。

再次使用"rs.status()"命令查看複本集的狀態。可以看到"port=11111"的"health"狀態變成了0,同時"port=22222"的伺服器變成了主節點。

如果,我們再次啟動"port=11111",那麼它將成為一個備份節點,這裡就不示範了。

動態添加刪除節點

有些時候,會有需求加入新的節點,那麼就可以使用下面的命令來動態添加刪除節點

1 mongod.exe --dbpath="c:\mongodb\db\node4" --port=44444 --replSet myReplSet --oplogSize=502 rs.add("127.0.0.1:44444")3 rs.status()4 rs.remove("127.0.0.1:44444")5 rs.status()

 

讀寫分離

複本集不僅僅可以保證資料的安全,還可以通過讀寫分離來降低主節點的讀資料壓力。

接著上面的例子,通過主節點插入一些資料。

當我們想通過備份節點讀取資料的時候,將得到以下錯誤,提示我們"slaveOk"屬性是false。

但是,通過"rs.slaveOk()"命令,就可以設定備份節點的讀操作了。

通過讀寫分離可以很大程度上建設主節點的讀寫壓力,但是這種方式也有一些問題,備份節點的資料會相對滯後,所以讀出的資料可能不是最新的。

 

總結

通過這篇文章,大概瞭解了複本集的使用。通過使用複本集,可以使資料得到進一步的保護,通過讀寫分離也可以進行讀寫效能的最佳化。

Ps:本文中所有的命令都可以參考以下連結

http://files.cnblogs.com/wilber2013/replicaSet.js

MongoDB複本集

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.