Репликация MSSQL — транзакции

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

Если подчиненная БД 1 по какой-либо причине не работает, а главная БД продолжает работать с 1000-кратным увеличением транзакций. Если я восстановлю подчиненную БД 1, как она будет обновляться с главной БД с транзакциями, которые она пропустила во время простоя?


person fes    schedule 24.01.2019    source источник
comment
На этом сайте есть вся необходимая информация: docs.microsoft.com/en-us/sql/database-engine/   -  person dfundako    schedule 24.01.2019


Ответы (1)


Каждый подписчик отслеживает последний порядковый номер журнала (LSN), который был успешно доставлен в последний раз. Когда агент распространителя запускается для определенной подписки, он запрашивает у распространителя «дайте мне команды, которые произошли с этим номером LSN». И, предполагая, что они есть у распространителя, он начнет доставлять их на повтор у абонента.

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

person Ben Thul    schedule 24.01.2019