В данной статье мы рассмотрим репликацию в MongoDB.
Репликация – это процесс синхронизации данных на нескольких серверах. Данный механизм уменьшает затраты ресурсов и увеличивает доступность данных, копии которых хранятся на разных серверах. Репликация защищает базу данных (далее – БД) от потери единственного сервера и позволяет сохранить данные в случае технической неисправности на одном из серверов.
Преимущества репликации:
- Защищает данные
- Повышенная доступность данных
- Резервирование данных
- Возможность изъятия одного сервера для технического обслуживания
- Не оказывает влияния на работу самого приложения
Репликация в MongoDB
В MongoDB репликация достигается путём использования набора копий (replica set). Это группа экземпляров mongod, который хранят одинаковые наборы данных. В копии один узел – это ключевой узел, который получает все операции записи. Все остальные узлы – вторичны, принимают операции из первого, таким образом, храня такие же записи, как и первичный узел. Набор копий может иметь только один первичный узел.
Резюмируя, мы можем отметить следующие моменты:
- Набор копий – это группа из двух или более узлов (обычно, минимальное количество обязательных узлов – три)
- Все данные копируются из первичного узла во вторичные
- В наборе копий только один узел ключевой, а все остальные – вторичные
- Во время отключения первичного узла (обслуживание, поломка и т.д.) устанавливается новый первичный узел.
- После возврата первичного узла в работу, он становится вторичным
Свойства наборы копий (Replica Set)
- Любой узел может быть первичным
- Все операции записи идут в первичный узел
- Кластер состоит из N узлов
- Автоматическая отказоустойчивость
- Автоматическое восстановление данных
- Автоматический выбор первичного ключа
Процесс репликации является крайне обширной темой, поэтому на этом мы заканчиваем изучение данного механизма.
В следующей статье мы рассмотрим процесс шардинга (sharding) в MongoDB.