2016-11-09 60 views
0

我正在嘗試部署mongodb分片。我已經在三臺機器上部署了一套副本。但是,當我嘗試將sh.addShard("test/mongodb1.example.net:27017")添加到所有三個節點時,我仍然無法使其工作。所示的誤差是:無法在MongoDB中添加分片

2016-11-09T16:02:46.704+0800 W NETWORK [conn105] No primary detected for set team3 

另一個錯誤:

{ 
    "ok" : 0, 
    "errmsg" : "could not find host matching read preference { mode: \"primary\" } for set test", 
    "code" : 133 
} 

1)設置初始副本爲每個節點設置(這工作正常)

a)運行這些對所有3個節點:

mkdir /temp/data/team3 
./mongod --replSet "team3" --dbpath /temp/data/team3 
./mongo --host <mongodb[x].example.net> 

b)中主節點運行:

rs.initiate() 
rs.add("mongodb2.example.net") 
rs.add("mongodb3.example.net") 

2)設置配置服務器和查詢路由器三個副本集羣(這工作正常)

主節點上運行:

mkdir /temp/data/config_rs 
./mongod --configsvr --replSet "config_rs" --dbpath /temp/data/config_rs 
./mongo --host mongodb1.example.net --port 27019 

3)添加碎片(問題與添加碎片)

主節點上運行:

sh.addShard("mongodb1.example.net") 
sh.addShard("mongodb2.example.net") 
sh.addShard("mongodb3.example.net") 
+0

你有沒有仔細檢查所有replicaset配置和狀態,你開始添加碎片之前? –

回答

0

對不起,遲到的回答.. Proble m是你必須通過mongoS服務給sh.addShard命令。所以你不用mongo命令連接到primary,你必須必須連接到mongos服務

所以,首先你必須啓動mongos到某臺機器,f.ex.一個(或全部)配置服務器是很好的候選者。

Mongos documentation

Step by step to sharding