MongoDB-добавление новых серверов конфигурации в производство
Я делал некоторые тесты с mongodb и sharding и в какой-то момент я попытался добавить новые серверы конфигурации к моему маршрутизатору mongos (в то время я играл только с одним сервером конфигурации). Но я не смог найти никакой информации о том, как это сделать.
Кто-нибудь пытался сделать такое?
3 ответа:
К сожалению, вам придется выключить всю систему.
Завершение работы всех процессов (mongod, mongos, config server).
Скопируйте подкаталоги данных (дерево dbpath) с сервера конфигурации на новые серверы конфигурации.
Запустите серверы конфигурации.
Перезапустить процессы mongos с новым параметром --configdb.
Перезапустить процессы mongod.
Откуда: http://www.mongodb.org/display/DOCS/Changing + Config + серверы
Используйте DNS CNAMES
Обязательно используйте DNS-записи или, по крайней мере, записи /etc/hosts для всех серверов mongod и mongo config при настройке нескольких серверов config в /etc/mongos.conf, при настройке наборов реплик и/или сегментирования.
Например, в AWS часто используется только частное DNS-имя экземпляров EC2, но оно может изменяться с течением времени... и когда это произойдет, вам нужно будет отключить всю вашу систему mongodb, что может быть очень болезненно, если это в производстве.
СтраницыConfigure Sharding иSample Configuration Session , по-видимому, содержат то, что вы ищете.
У вас должно быть 1 или 3 сервера конфигурации; все остальное не будет работать должным образом.
Вам нужно сбросить и восстановить содержимое с вашего исходного сервера конфигурации на 2 новые серверы конфигурации перед добавлением их в mongos-configdb.
Соответствующий раздел:
Теперь вам нужен сервер конфигурации и mongos:
'$ mkdir / data / db / config
$ ./mongod --configsvr --dbpath / data / db / config --port 20000 > / tmp / configdb.log &
$ cat / tmp / configdb.log
$ ./mongos --configdb localhost: 20000 > / tmp / mongos.log &
$ cat / tmp / mongos.log '
Mongos не требует каталога данных,он получает свою информацию с сервера конфигурации.