PRIMARY переходит к восстановлению после перезапуска

У меня есть набор реплик из трех узлов (1 первичный, 1 вторичный, 1 арбитр) на трех различных экземплярах сервера Amazon. Серверы, на которых они размещаются, требуют обновления памяти, поэтому мне нужно было также закрыть экземпляры MongoDB.

Я закрыл экземпляры MongoDB в этом порядке:

  1. Вторичный
  2. Арбитр
  3. Первичный

Я использовал процесс ниже для завершения работы каждого сервера

use admin
db.shutdownServer() 

Все экземпляры MongoDB завершили работу должным образом без каких-либо проблем. Пока все в порядке.

После обновления сервера Amazon я запустил экземпляры MongoDB в следующем порядке:

  1. Арбитр
  2. Вторичный
  3. Первичный

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

Я не знаю, почему основная машина пошла на «восстановление».

Я исследовал бревна. Он не показывает ни одного участника для синхронизации…что-то вроде этого

Мое основное сомнение: «первичный должен быть в первичном, пока не произойдет повторная сборка в наборе реплик».

Я пропускаю шаг во время выключения серверов? Или я пропускаю шаг во время перезапуска серверов?

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

1 ответ

  1. После того, как вы запустили набор реплик, вы «вторичный» стали «первичным», и вы «первичный», вероятно, были во вторичном состоянии через короткое время. Чтобы сохранить первичный статус в вашем «первичном», вы должны дать ему более высокий приоритет, чем у вашего «вторичного».

    Проверьте с rs.команда conf ().

    Проверьте здесь, как заставить узел быть основным