Офф. документация: https://www.mongodb.com/docs/manual/core/replica-set-elections/#std-label-replica-set-elections
Разработчики рекомендуют использовать как минимум 3 сервера с MongoDB, а при использовании четного кол-ва применять арбитра.
Минимальные настройки репликации MongoDB с 3-мя серверами:
Установите MongoDB на каждый сервер;
Внесите изменения в
mongod.conf
на всех серверах:
1replication:
2 replSetName: rs0
Файл mongod.conf можно найти:
- Linux —
/etc/mongod.conf
- Windows —
C:\\Program Files\MongoDB\Server\4.2\bin\mongod.conf
После внесения изменений перезапускаем MongoDB.
Убедитесь, что порт 27017 доступен для серверов с репликами, для этого проверьте настройки фаервола и строку bind_ip в mongodb.conf;
Инициализация 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})
- После инициализации репликации выполните команду
1rs.status()
и проверьте что все реплики доступны.
Полезные команды
- rs.status() - Посмотреть статус репликации;
- rs.add( { host: “mongodb3.example.net:27017” } ) - Добавить хост с репликой;
- rs.remove(“mongod3.example.net:27017”) - Удалить хост с репликой;