0

我正在尝试部署 mongodb 分片。我已经在三台机器上部署了一个副本集。sh.addShard("test/mongodb1.example.net:27017")但是,当我尝试到所有三个节点时,我似乎仍然无法使其工作。显示的错误是:

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")
4

1 回答 1

0

抱歉回答晚了。问题是您必须通过 mongoS 服务提供这些 sh.addShard 命令。所以你不要用 mongo 命令连接到主服务器,你必须连接到 mongos 服务。

所以,首先你必须在某台机器上启动 mongos,f.ex。一个(或所有)配置服务器是不错的候选者。

Mongos 文档

逐步分片

于 2016-11-18T09:08:28.663 回答