Репликация MongoDb быстрая настройка

MongoDb поддерживает 2 формы репликации: реплисеты(Replica Sets ) и ведущий-ведомый(Master-Slave). Рекомендуется использовать более новый подход – реплисеты.

О реплисетах  можно подробно прочесть на официальном сайте. Мы в свою чередь разберем как можно быстро создать и настроить данный вид репликации.

Когда мы говорим о репликации, мы подразумеваем, что у нас есть несколько баз. Для локальных экспериментов можно запустить несколько демонов указав им разные порты и директории для баз.

Создадим несколько директорий для экспериментальных баз:

$ mkdir db1
$ mkdir db2
$ mkdir db3

Запуск демона MongoDb (mongod) выполняется следующей командой

$ mongod

если хотим указать путь к базе и порт, тогда так:

$ mongod --dbpath db1 --port 27001

плюс добавим еще параметр указывающий на то что это репликасет:

$ mongod --dbpath db1 --port 27001 --replSet myreplica

myreplica – в данном случае имя для нашего репликасета.

Теперь таким же образом запускаем еще 2 демона:

$ mongod --dbpath db2 --port 27002 --replSet myreplica
$ mongod --dbpath db3 --port 27003 --replSet myreplica

В итоге у нас подготовлены 3 базы и нам следует теперь распределить между ними роли: кто будет Первичным(Primary) звеном, к которому будут добавлены остальные.

Допустим мы решили сделать db1 главным. Для этого заходим на него используя mongoshell :

$ mongo --port 27001

и делаем

mongo> rs.initiate()

для инициализации конфигурации.

Все манипуляции с репликасетом выполняются с помощью методов объекта rs. Весь список методов пожно получить выполнив команду rs.help().

Проверим статус нашего репликасета:

mongo> rs.status()

как видим в свойстве members присутсвует только текущий сервер, для того чтобы добавить остальные делаем:

mongo> rs.add("myhost:27002")
mongo> rs.add("myhost:27003")

myhost – имя нашего хоста (должно быть написано при выводе rs.status())

Выволним еще раз rs.status() и убедимся что базы были добавлены.

Вот и все. Старался передать материал максимально просто. За более полной информацией по конфигурированию можно обратиться к офсайт докам.