Статьи

Настройка реплики MongoDB в 4 этапа

Вступление

Прежде чем углубляться в детали настройки наборов реплик MongoDB, позвольте мне кратко рассказать об этом:

  • Набор реплик — это функция, предоставляемая базой данных Mongodb для обеспечения высокой доступности и автоматического перехода на другой ресурс.
  • Это своего рода традиционная конфигурация ведущий-ведомый, но с возможностью автоматического переключения при сбое.
  • В основном это группа / кластер экземпляров mongod, которые обмениваются данными друг с другом, реплицируются друг с другом для обеспечения высокой доступности и автоматического переключения при сбое.
  • По сути, в наборах реплик существует минимум 2 и максимум 12 экземпляров Mongod.
  • В наборе реплик существуют следующие типы серверов. из всех, один сервер всегда является основным.
    • Основной: он хранит данные, все операции записи / чтения отправляются на этот сервер с любого клиента.
    • Вторичный: сначала он хранит данные, во-вторых, эти серверы синхронизируются с основным, если основной сервер выходит из строя, то эти серверы предназначены для переключения на основной.
    • Резервное копирование : хранит резервные данные и, как следует из названия, предназначено только для резервного копирования, хотя оно никогда не становится основным
    • Арбитр: он хранит данные без данных, он предназначен только для участия в выборах при сбое.
  • Он обеспечивает автоматическое переключение при сбое, что означает, что ему не нужно вмешательство человека, чтобы сделать другой сервер основным, и у него есть внутренний механизм выбора нового основного сервера.
  • В наборе реплик, если первичный сервер выходит из строя из-за сетевой ошибки или другие серверы в наборах реплик не могут связаться с первичным сервером или первичный перестает отвечать на запросы, то внутренне на всех серверах запускается механизм выбора для выбора нового первичного сервера, и все это очень автоматически ,

В этой статье я собираюсь показать вам конфигурацию набора из 3 элементов / узлов кластера в 4 простых шага. В этой конфигурации набора реплик мы создадим два сервера данных, в которых один будет основным, другой будет вторичным, а другой — сервером без данных, который будет арбитром. Итак, давайте продолжим и настроим реплику в следующие 4 шага:

Шаг 1: Настройте каждый экземпляр набора реплик

Создайте и настройте 3 новых экземпляра экземпляра сервера mongodb, как я обсуждал в прошлой статье со следующей информацией, но не запускайте эти экземпляры сервера:

  • Сервер-1
1
2
3
4
5
port = 27017
 
directory path =<dir path>\ rs1
 
E.g.directory structure :  I:\workspace\mongo\rs1\bin
  • Сервер-2
1
2
3
4
5
port = 26017
 
directory path =<dir path>\ rs2
 
E.g.directory structure  I:\workspace\mongo\rs2\bin
  • Сервер—
1
2
3
4
5
port = 25017
 
directory path =<dir path>\ rs2
 
E.g.directory structure  I:\workspace\mongo\rs3\bin

Шаг 2: измените файл mongodb.conf, включив в него информацию о наборе реплик

Измените mongod.conf каждого сервера, чтобы включить следующие свойства:

  • replSet = уникальное имя для набора реплик, который предоставляется всем членам
  • rest = включить интерфейс отдыха для веб-страницы администратора

Вы можете дать любое имя наборам реплик, но убедитесь, что оно одинаково для всех участников. Давай, давай любое имя, какое захочешь. Здесь я использую имя «Деймон»

Например, добавить следующее в файл mongod.conf

1
2
replSet=damon
rest=true

Шаг 3: запустите весь сервер

После необходимой настройки, запустите сервер в любом порядке.

1
2
3
rs1 >> mongod -f \rs1\mongod.conf
rs2 >> mongod -f \rs2\mongod.conf
rs3 >> mongod -f \rs3\mongod.conf

Шаг 4: настроить серверы для включения в набор реплик

Теперь все серверы работают, но они не связаны друг с другом. Другими словами, они не являются частью набора реплик. Итак, для этого нам нужно сделать следующее. Опять же, мы собираемся создать два сервера данных: один основной, другой дополнительный и один сервер-арбитр. Теперь подключитесь к любому серверу, используя оболочку mongo, предоставляемую в двоичных файлах MongoDB.

Вот. позволяет подключиться к серверу rs1 с помощью оболочки mongodb

1
rs1 > /rs1/bin/mongo.exe --port 27017

После этого вы получите приглашение для оболочки mongo, как показано на следующем рисунке:

PNG; base645e9fd8342dd15fa1

Для настройки реплики оболочка mongo предоставляет предопределенный объект rs, который содержит следующие функции для конфигурации:

  • initiate () => создает конфигурацию набора реплик на текущем сервере
  • status () => дает текущее состояние реплики, к которой относится сервер
  • add (serverInfo) => добавляет новый сервер (предоставляется как параметр) в набор реплик.
  • addArb (serverInfo) => специализированная функция для добавления арбитра в набор реплик

Сначала нам нужно создать конфигурацию набора реплик на одном из серверов. Перейти и нажать следующую команду в оболочке Монго:

1
> rs.initiate()

После вы увидите следующее в подсказке:

PNG; base64838a3d5dc722c104

Это создаст необходимые наборы реплик локально для этого сервера, и вы заметите, что подсказка меняется с первоначального ‘>’ на ‘damon: STARTUP2>’, что указывает на <replicaSetName: State of server>

Вы можете ввести rs.status () в командной строке, чтобы проверить количество серверов в наборе реплик:

PNG; base642ef0ef96d4cc2826

Как видите, у нас только один добавленный сервер в наборе реплик, это текущий сервер, состояние которого является основным.

Другой способ проверки членов в реплике — использовать следующий URL в адресной строке браузера http: // : / _replSet. В нашем случае http: // localhost: 28017 / _replSet
Обратите внимание, что это требует, чтобы rest = true был включен в конфигурационном файле (и мы уже сделали это!). Этот может быть предпочтительным способом проверки состояния серверов в наборах реплик.

PNG; base648c9b0542e15ba78

Теперь у нас есть один сервер, добавленный в реплику, давайте добавим остальные серверы.

Для методов add () и addArb () мы предоставим строковый параметр, который содержит <machine / host-name>: <port-no-of-server>

(Обратите внимание, что если вы хотите указать имя машины, используйте команду hostname в dos или bash shell)

1
rs.add(“<machine/host-name>:26017”)

PNG; base6451a8e8144fb9bf78

1
rs.addArb(“<machine/host-name>:25017”)

PNG; base6471cda960ad51ffc4

Давайте проверим, добавлен ли узел / член с помощью команды rs.status () :

PNG; base64bc2381387562ac74

или используя браузер на основе:

PNG; base64281be3bd5613c0e2

И здесь мы настроили кластер базы данных MongoDB из 3 узлов. Хотя эта порция информации может быть применена для настройки любой нет. узла в наборе реплик.

Ссылка: Настройка реплики MongoDB Установите в 4 шагах от нашего партнера JCG Абхиджита Сутара в блоге Another Java Duke .