Офф. документация: https://www.mongodb.com/docs/manual/core/replica-set-elections/#std-label-replica-set-elections

Разработчики рекомендуют использовать как минимум 3 сервера с MongoDB, а при использовании четного кол-ва применять арбитра.

Минимальные настройки репликации MongoDB с 3-мя серверами:

  1. Установите MongoDB на каждый сервер;

  2. Внесите изменения в mongod.conf на всех серверах:

1replication:
2   replSetName: rs0

Файл mongod.conf можно найти:

  • Linux — /etc/mongod.conf
  • Windows — C:\\Program Files\MongoDB\Server\4.2\bin\mongod.conf
  1. После внесения изменений перезапускаем MongoDB.

  2. Убедитесь, что порт 27017 доступен для серверов с репликами, для этого проверьте настройки фаервола и строку bind_ip в mongodb.conf;

  3. Инициализация replica set:

  • Подсоединитесь к командой оболочке MongoDB на мастере, используя команду
    1mongo
    
  • Выполните следующую команду:
1rs.initiate( {
2   _id : "rs0",
3   members: [
4      { _id: 0, host: "mongodb0.example.com:27017" },
5      { _id: 1, host: "mongodb1.example.com:27017" },
6      { _id: 2, host: "mongodb2.example.com:27017" }
7   ]
8})
  1. После инициализации репликации выполните команду
1rs.status()

и проверьте что все реплики доступны.

Полезные команды

  • rs.status() - Посмотреть статус репликации;
  • rs.add( { host: “mongodb3.example.net:27017” } ) - Добавить хост с репликой;
  • rs.remove(“mongod3.example.net:27017”) - Удалить хост с репликой;