標籤:blog http io ar os 使用 on div 2014
完整的搭建mongodb叢集(複本集+分區)的例子。。。
準備四台機器,分別是bluejoe1,bluejoe2,bluejoe3,以及bluejoe0
複本集及分區策略確定如下:
- 將建立3個複本集,命名為shard1,shard2,shard3;
- 以上3個複本集作為3個分區;
- 每個複本集包含2個副本(主、輔);
- 副本分開儲存,即shard1存在bluejoe1和bluejoe2上各一份。。。以此類推
- 將建立3個配置庫執行個體,一台機器一個
- bluejoe0上配置一個mongos(mongos一般可以配置在應用端)
畫了一個圖:
具體操作步驟如下:
- 在bluejoe1上下載mongdb安裝包;
- 解壓至/usr/local/mongdb(注意改名);
- 建立data/node1和data/node2目錄,啟動2個mongod執行個體,注意它們分別是shard1-1和shard3-2:
/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/node1 --port 10001 --replSet shard1/bluejoe2:10002 --logpath=/usr/local/mongodb/log/node1.log/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/node2 --port 10002 --replSet shard3/bluejoe3:10001 --logpath=/usr/local/mongodb/log/node2.log
- 初始化副本
db.runCommand({"replSetInitiate":{"_id":"shard1","members":[{"_id":1,"host":"bluejoe1:10001"},{"_id":2,"host":"bluejoe2:10002"}]}})
- 建立data/configdb,啟動配置庫執行個體:
/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/configdb --port 20000 --logpath=/usr/local/mongodb/log/configdb.log
- 使用scp命令,將mongodb目錄複寫至bluejoe2和bluejoe3機器,並按照第3、4步啟動每台機器上的3個執行個體,注意副本也要初始化;
- 到現在為止應該有9個mongd執行個體,其中3個為配置庫執行個體,剩下的屬於3個複本集;
- 接下來管理分區,在bluejoe0上啟動mongs:
/usr/local/mongodb/bin/mongos --port 30000 --configdb bluejoe1:20000,bluejoe2:20000,bluejoe3:20000
- 串連上mongos,配置分區資訊:
mongos> use adminswitched to db admindb.runCommand({"addShard":"shard1/bluejoe1:10001"})db.runCommand({"addShard":"shard2/bluejoe2:10001"})db.runCommand({"addShard":"shard3/bluejoe3:10001"})
- 對庫開啟分區功能:
mongos> use adminswitched to db adminmongos> db.runCommand({"enablesharding":"test"}){ "ok" : 1 }mongos> db.runCommand({"shardcollection":"test.person","key":{"name":1}}){ "collectionsharded" : "test.person", "ok" : 1 }
搭建mongodb叢集(複本集+分區)