Replica Set 副本集

Replica Set 節點類型分爲三種:

  • standard:常規節點,它存儲一份完整的數據副本,參與選舉投票,有可能成爲primary節點;
  • passive:存儲了完整的數據副本,參與投票,不能成爲primary節點;
  • arbiter:仲裁節點,只參與投票,不接收復制的數據,也不能成爲primary節點。

本文配置使用2個常規節點和一個arbiter節點,arbiter節點由於不同步數據,所以負載會很小,部署對硬件沒有太大的要求。

假設192.168.1.211、192.168.1.212爲常規節點,192.168.1.68爲arbiter節點。三個節點上的mongodb都是用下面的配置文件,文件存放在/etc/mongodb.cnf:

dbpath = /data/db/
logpath = /data/log/m.log
logappend = true
port = 27017
fork = true
directoryperdb = true
journal = true
replSet = test
rest = true

其中replSet 的 Id 爲 test,這個值對應initiate中的”_id”,使用rest參數後可以在web管理界面中顯示Replica Set中其他mongodb實例的信息。

使用命令

/usr/local/mongodb/bin/mongod --config /etc/mongodb.cnf

分別啓動三個機器上的mongodb實例,使用mongodb客戶端登陸兩個常規節點中的任何一個,執行如下命令:

rs.initiate(
	{"_id" : "test",
	 "members" : [
		{"_id" : 1, "host" : "192.168.1.211"},
		{"_id" : 2, "host" : "192.168.1.212"},
		{"_id" : 3, "host" : "192.168.1.68", "arbiterOnly" : true}
	]
});

或

rs.initiate(
	{"_id" : "test",
	 "members" : [
		{"_id" : 1, "host" : "192.168.1.211"},
		{"_id" : 2, "host" : "192.168.1.212"}
	]
});

rs.addArb('192.168.1.68');

可以使用rs.conf()查看配置情況,rs.status()查看各個節點的狀態,經過一小段時間後,他們會選一臺作爲PRIMARY,其他的常規節點爲SECONDARY,同時在js shell中看到提示符從“>”變爲對應的 “PRIMARY>” 或 “SECONDARY>” 或 “ARBITER>”。可以在PRIMARY是通過rs.stepDown()來切換PRIMARY,執行此命令後會在剩餘的常規節點選一個來充當PRIMARY。

關於初始化中配置members的其他可選參數,可以到官網上查看,地址:http://www.mongodb.org/display/DOCS/Replica+Set+Configuration

發佈了165 篇原創文章 · 獲贊 18 · 訪問量 99萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章