2016-09-16 4 views
0

Моя версия mongodb - 3.2.4. У меня есть replicaSet с двумя узлами базы данных и 1 arbitor. Все db работают на долгое время на моем сайте клиента. Однажды первичный db был сбит для обслуживания. Примерно через 2 часа «первичная» была восстановлена ​​и снова стала первичной, а вторичная db находилась в состоянии отката. У меня есть несколько вопросов относительно вышеупомянутых сценариев: , когда первичный db был сбит в первый раз, если записи db не синхронизированы со вторичным db, что произойдет? , когда неудачный первичный носитель снова вернулся, становится ли он основным в правильном направлении? Синхронизируется ли она с теперь первичной-вторичной db, а затем снова становится первичной db? Как восстановить потерянные данные в папке отката, учитывая мое последнее начальное и среднее состояние db? Спасибо и приветствую.replicaSet db status после восстановления после сбоя и восстановления

ответ

0

Если вы хотите сбить основной элемент обслуживания, вам нужно будет выполнить команду rs.stepDown() на первичном. Это выберет другой узел БД, чтобы стать первичным:

  • Первичные шаги вниз, он отклоняет записи. Ваше приложение будет получать короткие ошибки записи до тех пор, пока не будет завершена следующая отметка.
  • Вторичный, который избирается, будет следить за тем, чтобы он синхронизировался со старым первичным, прежде чем стал основным. Это должно произойти в split-second, но если у вас тяжелое приложение для записи, это может занять больше времени.
  • Когда старый первичный файл будет восстановлен, он станет основным, если вы придадите ему наивысший приоритет. Я бы по-прежнему рекомендовал иметь равный приоритет для двух узлов данных, а не возвращать первичный назад. Процесс продвижения другого узла в точности совпадает с тем, что указано выше.

Состояние отката, в котором вы находитесь, не выглядит нормальным, если вы делаете правильный шаг. Вот хорошая ссылка, чтобы применить ваш откат: https://scalegrid.io/blog/how-to-recover-from-a-mongodb-rollback/

0

Рик написал хороший ответ, но не ответил на ваш последний вопрос ... Если произойдет откат, появится каталог отката по вашему dbpath. В этом каталоге вы можете найти все отложенные документы в json-файлах с конкретными столбцами базы данных. Эти файлы могут быть перенесены обратно в первичный ...

Смежные вопросы