Может ли MongoDB управлять процедурой RollBack более 300 МБ потоковой передачи данных?

Я имею дело с процедурами отката MongoDB. Проблема в том, что откат для больших данных может быть больше 300 МБ или больше.

Есть ли решение этой проблемы? Журнал ошибок

 replSet syncThread: replSet too much data to roll back

В официальном документе MongoDB я не видел решения.

Спасибо за ответы.

1 ответ

Причина

Откаты страниц во время восстановления после сбоя набора реплики:

Откат необходим только в том случае, если первичный сервер принял операции записи, которые вторичные серверы не реплицировали успешно до того, как первичный сервер вышел из строя. Когда первичный присоединяется к набору как вторичный, он отменяет или "откатывает" свои операции записи, чтобы поддерживать согласованность базы данных с другими членами.

а также:

Когда происходит откат, это часто является результатом сетевого раздела.

Другими словами, сценарий отката обычно происходит так:

  1. У вас есть настройка набора реплик с 3 узлами первичный-вторичный-вторичный.
  2. Существует сетевой раздел, разделяющий текущий первичный и вторичный.
  3. Два вторичных помощника не могут видеть первый первичный и выбрали одного из них новым первичным. Приложения, поддерживающие реплику, теперь пишут на новый первичный сервер.
  4. Тем не менее, некоторые записи продолжают поступать на старый первичный сайт, прежде чем он осознает, что не может видеть остальную часть набора, и уходит в отставку.

Данные, записанные на старый первичный сервер на шаге 4 выше, являются данными, откат которых выполнен, поскольку в течение некоторого времени он действовал как "ложный" первичный (т. Е. "Реальный" первичный должен быть выбранным вторичным. на шаге 3)

Исправление

MongoDB не выполнит откат, если будет откатано более 300 МБ данных. Сообщение, которое вы видите (replSet too much data to roll back) означает, что вы попали в эту ситуацию, и вам придется либо сохранить rollback каталог под узлом dbpath или выполнить начальную синхронизацию.

Предотвращение откатов

Настройка вашего приложения с использованием w: majority (см. " Записать озабоченность" и " Записать записку" для наборов реплик) предотвратит откат. Посмотрите Избегайте Откатов Задания Реплики для получения дополнительной информации.

Другие вопросы по тегам