2016-11-09 2 views
0

Я пытаюсь развернуть mongodb sharding. Я развернул набор реплик на трех машинах. Тем не менее, я все еще не могу заставить его работать, когда я пытаюсь сделать sh.addShard("test/mongodb1.example.net:27017") всем трем узлам. Ошибка показана:Невозможно добавитьShard в 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) Настройка начальная реплика устанавливается для каждого узла (Это работает отлично)

а) Выполнить это для всех 3-х узлов:

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

б) Первичный узел работает:

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 - это то, что вы должны передать команды sh.addShard через службу mongoS. Таким образом, вы не подключаетесь к основному с помощью команды mongo, вы должны подключиться к сервису mongos.

Итак, сначала вы должны начать mongos на какой-нибудь машине, f.ex. один (или все) серверы конфигурации являются хорошими кандидатами.

Mongos documentation

Step by step to sharding

Смежные вопросы