MongoDB Репликация: как создать MongoDB Набор реплик
⚡ Умное резюме
MongoDB Репликация обеспечивает хранение идентичных данных на нескольких серверах. MongoDB сервер, обеспечивающий защиту от сбоев сервера и балансировку нагрузки. Сгруппированный MongoDB Экземпляры образуют репликационный набор, в котором один основной экземпляр принимает операции записи, а вторичные участники обрабатывают операции чтения и обеспечивают переключение при сбое.
Что такое MongoDB Репликация?
Репликация — это процесс обеспечения доступности одних и тех же данных на нескольких серверах. MongoDB Сервер. Иногда это необходимо для повышения доступности данных.
Потому что если твой главный MongoDB Сервер отключается по какой-либо причине, доступа к данным не будет. Но если у вас были данные, реплицированные на другой сервер через регулярные промежутки времени, вы сможете получить доступ к данным с другого сервера, даже если основной сервер выйдет из строя.
Еще одной целью репликации является возможность балансировки нагрузки. Если к системе подключается много пользователей, вместо того, чтобы все подключались к одной системе, пользователи могут подключаться к нескольким серверам, чтобы обеспечить равное распределение нагрузки.
In MongoDBнесколько MongoDB Серверы группируются в наборы, называемые репликационными наборами. Реплицационный набор будет включать основной сервер, который будет принимать все операции записи от клиентов. Все остальные экземпляры, добавленные в набор после этого, будут называться вторичными экземплярами, которые могут использоваться в первую очередь для всех операций чтения.
Как создать набор реплик в MongoDB Добавление первого члена с помощью rs.initiate()
Как упоминалось в предыдущем разделе, чтобы включить репликацию, нам сначала нужно создать набор реплик MongoDB экземпляров.
Предположим, в нашем примере у нас есть 3 сервера: ServerA, ServerB и ServerC. В этой конфигурации ServerA будет нашим основным сервером, а ServerB и ServerC — резервными. Скриншот ниже даст более наглядное представление.
Ниже приведены шаги, которые необходимо выполнить для создания MongoDB набор реплик вместе с добавлением первого члена в набор.
Шаг 1) Убедитесь, что все экземпляры mongod.exe добавлены.
Убедитесь, что все экземпляры mongod.exe, которые будут добавлены в репликационный набор, установлены на разных серверах. Это необходимо для того, чтобы даже в случае выхода из строя одного сервера остальные оставались доступными, а следовательно, и другие экземпляры mongod.exe. MongoDB будет доступно.
Шаг 2) Все экземпляры mongo.exe подключаются друг к другу.
Убедитесь, что все экземпляры mongo.exe могут подключаться друг к другу. На сервере ServerA выполните следующие две команды.
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
Аналогично проделайте то же самое с остальными серверами.
Шаг 3) Запустите первый экземпляр mongod.exe
Запустите первый экземпляр mongod.exe с опцией replSet. Эта опция предоставляет группуping для всех серверов, которые войдут в состав этого репликационного набора.
mongo --replSet "Replica1"
Где «Реплика1» — это имя вашего набора реплик. Вы можете выбрать любое значимое имя для имени набора реплик.
Шаг 4) Первый сервер добавляется в репликационный набор.
Теперь, когда первый сервер добавлен в репликационный набор, следующим шагом является инициализация репликационного набора с помощью следующей команды: rs.initiate().
Шаг 5) Проверка репликационного набора
Проверьте правильность настройки репликационного набора, выполнив команду rs.conf().
Набор реплик: добавление вторичного объекта с помощью rs.add()
Вторичные серверы можно добавить в набор реплик просто с помощью команды rs.add. Эта команда принимает имена вторичных серверов и добавляет их в набор репликации.
Шаг 1) Предположим, у вас есть ServerA, ServerB и ServerC, которые должны входить в состав вашего репликационного набора, и ServerA определен как основной сервер в репликационном наборе.
Чтобы добавить ServerB и ServerC в репликационный набор, выполните следующие команды:
rs.add("ServerB") rs.add("ServerC")
Набор реплик: изменение конфигурации или удаление с помощью rs.remove()
Для удаления сервера из набора конфигураций необходимо использовать команду «rs.remove».
Шаг 1) Сначала выполните завершение работы экземпляра, который вы хотите удалить. Это можно сделать, выполнив команду db.shutdownServer в оболочке mongo.
Шаг 2) Подключитесь к основному серверу.
Шаг 3) Используйте команду rs.remove, чтобы удалить необходимый сервер из репликационного набора. Допустим, у вас есть репликационный набор с серверами ServerA, ServerB и ServerC, и вы хотите удалить ServerC из репликационного набора, выполните следующую команду:
rs.remove("ServerC")
Устранение неполадок наборов реплик
Ниже описаны те же способы устранения неполадок, которые могут возникнуть при использовании репликационных наборов.
- Убедитесь, что все экземпляры mongo.exe могут подключаться друг к другу. Предположим, у вас есть 3 сервера: ServerA, ServerB и ServerC. С сервера ServerA выполните следующие 2 команды:
mongo --host ServerB --port 27017 mongo --host ServerC --port 27017
- Выполните команду rs.status. Эта команда выводит статус репликационного набора. По умолчанию каждый участник отправляет друг другу сообщения, называемые «пульсами», которые просто указывают на то, что сервер активен и работает. Команда «status» получает статус этих сообщений и показывает, есть ли какие-либо проблемы с участниками репликационного набора.
- Проверьте размер Oplog. Oplog — это коллекция в MongoDB который хранит историю записей, которые были сделаны на MongoDB . MongoDB затем использует этот Oplog для репликации записей другим членам набора реплик. Чтобы проверить Oplog, подключитесь к необходимому экземпляру участника и выполните команду rs.printReplicationInfo. Эта команда покажет размер журнала и то, как долго он может хранить транзакции в своем файле журнала, прежде чем он заполнится.


