Отключенный первичный набор реплик добавляется обратно в набор реплик

Отключенный первичный набор реплик добавляется обратно в набор реплик

Мне нужен совет о том, что делать с основным набором реплик, который отключается от сети (например, из-за сбоя в работе сети центра обработки данных), и что нам нужно повысить статус одного из вторичных наборов до основного, чтобы восстановить работу приложения, использующего базу данных.

Перед повторным подключением к сети следует ли нам завершить работу mongodb на коробке, чтобы разрешить добавление обратно в качестве вторичного? Или первичный, отключенный от своего набора, меняет режим?

Что произойдет, если мы разрешим серверу mongodb вернуться в сеть, при этом mongodb будет работать как основной, но изолированный до повторного подключения?

Извините, если ответ на этот вопрос есть в других документах. Я пытался поискать, но, возможно, я ищу не те термины.

решение1

Мне нужен совет о том, что делать с основным набором реплик, который отключается от сети (например, из-за сбоя в работе сети центра обработки данных), и что нам нужно повысить статус одного из вторичных наборов до основного, чтобы восстановить работу приложения, использующего базу данных.

Автоматическое переключение на резервный ресурс является одной из неотъемлемых особенностей MongoDB.дизайн набора реплик, поэтому вам не придется вручную переключаться на вторичный сервер, если только вы намеренно не изменили конфигурацию по умолчанию. Оба варианта primaryи secondaryявляютсяГосударства-члены(или ролей) в наборе реплик и призваны отличаться от топологии «главный/подчиненный», которая обычно требует ручного вмешательства для аварийного переключения.

Если текущий первичный сервер недоступен для большинства настроенных голосующих членов набора реплик MongoDB, ожидаемый результат таков:

  • изолированный первичный кандидат уйдет в отставку и станет вторичным кандидатом
  • Новые предварительные выборы могут быть проведены, если большинство голосующих членов все еще имеют связь друг с другом и имеют право избирать члена.

ВидетьРеплика Набор Выборыв руководстве MongoDB для получения дополнительной информации.

Перед повторным подключением к сети следует ли нам завершить работу mongodb на коробке, чтобы разрешить добавление обратно в качестве вторичного? Или первичный, отключенный от своего набора, меняет режим?

Изолированный член набора реплик, несущий данные, останется во вторичном состоянии, но будет отображаться как «неработоспособный/недостижимый», если вы проверите rs.status()других членов набора реплик. Обычно хорошей идеей является предоставление всех ваших избираемых членов, несущих данные, идентично, чтобы любой член мог взять на себя роль основного при необходимости (в отличие от наличия специально предоставленного основного члена).

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

Предостережение относительно возобновления синхронизации заключается в том, что изолированные элементы должны по-прежнему иметь достаточное совпадение срепликация oplogздорового члена набора реплик, чтобы наверстать упущенное в любой активности записи, которая произошла, пока член был изолирован. Вторичный, oplog которого больше не имеет перекрытия с любыми другими членами набора реплик, будет помечен как «устаревший» и должен бытьресинхронизировано.

Что произойдет, если мы разрешим серверу mongodb вернуться в сеть, при этом mongodb будет работать как основной, но изолированный до повторного подключения?

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

Если вы новичок в наборах реплик MongoDB, я бы рекомендовал использовать конфигурацию и положение по умолчанию для включения автоматического переключения на резерв и восстановления. Ручное вмешательство должно требоваться только в исключительных случаях.

Связанный контент