Может ли вторичное восстановление mongodb восстановиться, если лаг больше, чем оплог?

Давайте предположим, что вторичный сервер отстает из-за сбоя сервера, который не был перезапущен в течение определенного времени. Теперь у нас отставание в 100 часов, но оплог 10 часов, как это

db.printSlaveReplicationInfo()

source: db3
    syncedTo: TIMEINTHEPAST
    360000 secs (100.00 hrs) behind the primary
source: db1
    syncedTo: NOW
    1 secs (0 hrs) behind the primary

Но тогда оплог намного меньше

db.printReplicationInfo()

configured oplog size:   GIVENSIZE
log length start to end: 36000secs (10hrs)

Правильно ли я полагаю, что этот вторичный объект не имеет возможности наверстать упущенное (ВОССТАНОВЛЕНИЕ)?

Как решить эту ситуацию?

1 ответ

Решение

Ответ прост. Вторичный не может выжить. В этой ситуации у вас мало возможностей для "повторной инициализации" этого узла.

  • Вы останавливаете этот узел, очищаете его каталог данных, перезапускаете его и даете ему выполнить первоначальную синхронизацию.

ИЛИ ЖЕ

  • Вы останавливаете этот узел, приносите снимок (или файлы данных) других файлов данных здоровых узлов, перезапускаете его и позволяете ему "поймать" основной.

После того, как вы снова работаете с набором реплик, измените размер своего оплога на гораздо больший. Как в 15 раз больше.

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