Руководство по MongoDB. Репликация.

В данной статье мы рассмотрим репликацию в MongoDB.

Репликация  – это процесс синхронизации данных на нескольких серверах. Данный механизм уменьшает затраты ресурсов и увеличивает доступность данных, копии которых хранятся на разных серверах. Репликация защищает базу данных (далее – БД) от потери единственного сервера и позволяет сохранить данные в случае технической неисправности на одном из серверов.

Преимущества репликации:

  • Защищает данные
  • Повышенная доступность данных
  • Резервирование данных
  • Возможность изъятия одного сервера для технического обслуживания
  • Не оказывает влияния на работу самого приложения

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

В MongoDB репликация достигается путём  использования набора копий (replica set). Это группа экземпляров mongod, который хранят одинаковые наборы данных. В копии один узел – это ключевой узел, который получает все операции записи. Все остальные узлы – вторичны, принимают операции из первого, таким образом, храня такие же записи, как и первичный узел. Набор копий может иметь только один первичный узел.

Резюмируя, мы можем отметить следующие моменты:

  • Набор копий – это группа из двух или более узлов (обычно, минимальное количество обязательных узлов – три)
  • Все данные копируются из первичного узла во вторичные
  • В наборе копий только один узел ключевой, а все остальные – вторичные
  • Во время отключения первичного узла (обслуживание, поломка и т.д.) устанавливается новый первичный узел.
  • После возврата первичного узла в работу, он становится вторичным

Свойства наборы копий (Replica Set)

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

Процесс репликации является крайне обширной темой, поэтому на этом мы заканчиваем изучение данного механизма.
В следующей статье мы рассмотрим процесс шардинга (sharding) в MongoDB.