MSSQL Replication - транзакции - PullRequest
       31

MSSQL Replication - транзакции

0 голосов
/ 24 января 2019

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

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

1 Ответ

0 голосов
/ 24 января 2019

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

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

...