Как синхронизировать MongoDB с рабочей репликой? - PullRequest
0 голосов
/ 11 февраля 2020

Репликация MongoDB, имеет 3 сервера (Сервер1, Сервер2, Сервер3). По любой причине Сервер1 выходит из строя, а Сервер2 выступает в качестве основного и Сервер3 в качестве дополнительного режима.

Запрос : * Server1 не работает, и через 2-3 часа мы сделали это (работает). Разрыв в 3 часа между данными Server1 и данными Server2 , как они будут синхронизироваться c up?

1 Ответ

2 голосов
/ 11 февраля 2020

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

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

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

Если первичный сервер больше не имеет этой записи, вторичный сервер зарегистрирует запись. сообщение о том, что оно слишком несвежее, и потребуется ручное вмешательство. Это обычно требует ручного resyn c

...