Учебники

MongoDB — Репликация

Репликация — это процесс синхронизации данных между несколькими серверами. Репликация обеспечивает избыточность и повышает доступность данных благодаря наличию нескольких копий данных на разных серверах баз данных. Репликация защищает базу данных от потери одного сервера. Репликация также позволяет восстанавливаться после сбоя оборудования и перерывов в обслуживании. С дополнительными копиями данных вы можете выделить одну для аварийного восстановления, создания отчетов или резервного копирования.

Почему Репликация?

  • Чтобы сохранить ваши данные в безопасности
  • Высокая (24 * 7) доступность данных
  • Аварийное восстановление
  • Нет времени на обслуживание (например, резервное копирование, перестроение индекса, сжатие)
  • Масштабирование чтения (дополнительные копии для чтения)
  • Набор реплик прозрачен для приложения

Как работает репликация в MongoDB

MongoDB достигает репликации с помощью набора реплик. Набор реплик — это группа экземпляров mongod, которые содержат один и тот же набор данных. В реплике один узел является основным узлом, который получает все операции записи. Все другие экземпляры, такие как вторичные, применяют операции с первичного, чтобы у них был тот же набор данных. Набор реплик может иметь только один основной узел.

  • Набор реплик — это группа из двух или более узлов (обычно требуется минимум 3 узла).

  • В наборе реплик один узел является первичным узлом, а остальные узлы являются вторичными.

  • Все данные реплицируются с первичного на вторичный узел.

  • Во время автоматического восстановления после сбоя или обслуживания выбор устанавливается для основного и новый основной узел выбирается.

  • После восстановления отказавшего узла он снова присоединяется к набору реплик и работает как вторичный узел.

Набор реплик — это группа из двух или более узлов (обычно требуется минимум 3 узла).

В наборе реплик один узел является первичным узлом, а остальные узлы являются вторичными.

Все данные реплицируются с первичного на вторичный узел.

Во время автоматического восстановления после сбоя или обслуживания выбор устанавливается для основного и новый основной узел выбирается.

После восстановления отказавшего узла он снова присоединяется к набору реплик и работает как вторичный узел.

Показана типичная схема репликации MongoDB, в которой клиентское приложение всегда взаимодействует с первичным узлом, а первичный узел затем реплицирует данные на вторичные узлы.

Репликация MongoDB

Особенности набора реплик

  • Кластер из N узлов
  • Любой узел может быть основным
  • Все операции записи идут на основной
  • Автоматическое переключение при сбое
  • Автоматическое восстановление
  • Консенсусные выборы первичного

Установите набор реплик

В этом руководстве мы преобразуем автономный экземпляр MongoDB в набор реплик. Чтобы преобразовать в набор реплик, выполните следующие действия:

  • Завершение работы уже запущенного сервера MongoDB.

  • Запустите сервер MongoDB, указав параметр — replSet. Ниже приведен основной синтаксис —replSet —

Завершение работы уже запущенного сервера MongoDB.

Запустите сервер MongoDB, указав параметр — replSet. Ниже приведен основной синтаксис —replSet —

mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

пример

mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
  • Он запустит экземпляр mongod с именем rs0 на порту 27017.

  • Теперь запустите командную строку и подключитесь к этому экземпляру mongod.

  • В клиенте Mongo введите команду rs.initiate (), чтобы инициировать новый набор реплик.

  • Чтобы проверить конфигурацию набора реплик, введите команду rs.conf () . Чтобы проверить состояние набора реплик, введите команду rs.status () .

Он запустит экземпляр mongod с именем rs0 на порту 27017.

Теперь запустите командную строку и подключитесь к этому экземпляру mongod.

В клиенте Mongo введите команду rs.initiate (), чтобы инициировать новый набор реплик.

Чтобы проверить конфигурацию набора реплик, введите команду rs.conf () . Чтобы проверить состояние набора реплик, введите команду rs.status () .

Добавить участников в набор реплик

Чтобы добавить участников в набор реплик, запустите экземпляры mongod на нескольких компьютерах. Теперь запустите клиент Монго и введите команду rs.add () .

Синтаксис

Основной синтаксис команды rs.add () следующий:

>rs.add(HOST_NAME:PORT)

пример

Предположим, имя вашего экземпляра mongod — mongod1.net, и он работает через порт 27017 . Чтобы добавить этот экземпляр в набор реплик, введите команду rs.add () в клиенте Mongo.

>rs.add("mongod1.net:27017")
>

Вы можете добавить экземпляр mongod в набор реплик только тогда, когда вы подключены к первичному узлу. Чтобы проверить, подключены ли вы к основному или нет, введите команду db.isMaster () в клиенте mongo.