sharing分片集合环境搭建【MongDB系列之七】
?
?
?注意:shop是前幾講搭建起來的副本集(這節(jié)不會詳細說明怎么搭建)
?
D:?副本集?shop1??數(shù)據(jù)路徑:?D:\MongDB_E\data\bin???端口:192.168.0.100:9100
E:?副本集?shop1??數(shù)據(jù)路徑:?D:\MongDB_F\data\bin???端口:192.168.0.100:9200
?
CNF:??配置服務(wù)器:D:\MongDB_CNF\data\bin???端口:192.168.0.100:9400
CNF:??配置服務(wù)器:E:\MongDB_CNF\data\bin???端口:192.168.0.100:9500
CNF:??配置服務(wù)器:E:\MongDB_CNF\data\bin???端口:192.168.0.100:9600
?
?
ROT:?副本集shop1?路由服務(wù)器,數(shù)據(jù)路徑:?D:\MongDB_ROT\data\bin
端口:192.168.0.100:9300
?
?
ROT:?在192.168.0.101指定路由服務(wù)器,數(shù)據(jù)路徑:?D:\MongDB_ROT\data\bin???端口:??9300
?
?
?
說明:
?????路由服務(wù)器會連接到由前幾章節(jié)搭建起來的副本集合?shop,以及由D,E服務(wù)器新搭建的新副本集shop1(沒有給分配仲裁服務(wù)器)
??此次訪問將通過客戶端直接訪問路由器,由路由器決定訪問哪個副本集的primary。
?
1.?搭建副本集shop1
?
1)?啟動副本集shop1端口9100
mongod?--dbpath?D:\MongDB_E\data\db?--port?9100??--replSet??shop1/192.168.0.100:9100?--shardsvr??--bind_ip?192.168.0.100
?
2)?啟動副本集shop1端口9200
mongod?--dbpath?D:\MongDB_F\data\db?--port?9200??--replSet??shop1/192.168.0.100:9100?--shardsvr??--bind_ip?192.168.0.100
?
啟動的時候一定要指定一個局域網(wǎng)IP地址,否則最后會報錯,無法連接等的錯誤信息。啟動副本集shop的時候也需要全部指定IP地址,在本例中shop集合對應(yīng)的IP地址是,192.168.0.101
?
3)?初始化副本集shop1
登錄9100端口,使用admin用戶
執(zhí)行命令初始化:
db.runCommand({"replSetInitiate":{
"_id":"shop1","members":[
{"_id":1,"host":"192.168.0.100:9100","priority":1},
{"_id":2,"host":"192.168.0.100:9200"}
]}})
?
Priority:1?指定默認(rèn)的primary服務(wù)器??,如果無法執(zhí)行確認(rèn)?數(shù)據(jù)庫路徑,命令編碼是否正常。?
4)?測試shop1成功初始化
5)?啟動shop1?集合中的配置服務(wù)器
?
???????mongod?--configsvr?--port?9400?--dbpath?D:\MongDB_CNF\data\db?
???????mongod?--configsvr?--port?9500?--dbpath??E:\MongDB_CNF\data\db
???????mongod?--configsvr?--port?9600?--dbpath??E:\MongDB_CNF2\data\db
?
???注意在192.168.0.100?即,shop1?集合所在的機器啟動了三個配置服務(wù)器?9400?、9500和?9600。(因為在啟動路由的時候如果寫兩個配置庫,提示:要么1個配置服務(wù)器,要么3個配置服務(wù)器會報錯。)
?
6)?啟動shop1?集合中的路由服務(wù)器
mongos?--configdb?192.168.0.100:9400,192.168.0.100:9500,192.168.0.100:9600??--port??9300?--chunkSize?1
?configdb?參數(shù)后面跟的是配置服務(wù)器,并且數(shù)量為1或3
7)?rs.isMaster()?查看當(dāng)前連接服務(wù)器的狀態(tài)。
?
?
2.?Shop集合中配置路由服務(wù)器
?
?
?
ROT:?路由服務(wù)器,數(shù)據(jù)路徑:?D:\MongDB_ROT\data\bin???端口:192.168.0.101:9300
?
?
mongos?--configdb?192.168.0.100:9400,192.168.0.100:9500,192.168.0.100:9600??--port??9300?--chunkSize?1
?
?
mongos?啟動參數(shù)中,chunkSize?這一項是用來指定chunk?的大小的,單位是MB,默認(rèn)大小
為200MB,為了方便測試Sharding?效果,我們把chunkSize?指定為?1MB
?
?
至此,在192.168.0.100?上配置的server,和route已經(jīng)完成,在192.168.0.101?即:127.00.1上配置的server和route也完成。下面將給route?加入副本集合。
3.?配置Sharding
?
1)?登錄shop1路由服務(wù)器添加副本集?sharing登錄路由服務(wù)器?使用admin?將?兩個副本集中的副本集數(shù)據(jù)庫服務(wù)器,加入到當(dāng)前share中:
db.runCommand({addshard:"shop1/192.168.0.100:9100,192.168.0.100:9200"});
db.runCommand({addshard:"shop/192.168.0.101:7400,192.168.0.101:7500,192.168.0.101:7600"})
?
?
?
?
2)?激活數(shù)據(jù)庫及集合的分片
?
3)?測試數(shù)據(jù)
for(var?i=1;i<=2000;i++)?db.users.insert({id:i,addr_1:"Beijing",addr_2:"Shanghai"});
登陸路由服務(wù)器?9300?切換到test?數(shù)據(jù)庫寫入數(shù)據(jù)。
?
4)?查看分片的狀態(tài)
???db.users.stats();
可以看到shard2?和?shard1?里面都有對應(yīng)的數(shù)據(jù)。(上圖是新建的環(huán)境下測試的結(jié)果)
5)?
?
?
4.?Config服務(wù)器關(guān)閉后下次無法啟動提示repair?使用如下命令執(zhí)行恢復(fù)操作
?
?執(zhí)行修復(fù)后啟動正常。
?
?
轉(zhuǎn)載于:https://blog.51cto.com/mvc2008mvc/1228826
總結(jié)
以上是生活随笔為你收集整理的sharing分片集合环境搭建【MongDB系列之七】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java内存原型分析:基本知识
- 下一篇: ios 中是否每一个对象(尤其是在使用多