Поделиться через


Синхронизация данных

Под синхронизацией данных понимается процесс распространения изменений данных и схемы между Издателем и Подписчиками после применения начального моментального снимка у Подписчика. Синхронизация может произойти:

  • Непрерывно, что обычно для репликации транзакций.

  • По запросу, что типично для репликации слиянием.

  • Расписание, характерное для репликации моментальных снимков.

При синхронизации подписки различные процессы происходят в зависимости от типа используемой репликации:

  • Репликация моментальных снимков. Синхронизация означает, что агент распространителя повторно применяет моментальный снимок на подписчике, чтобы схема и данные в базе данных подписки соответствовали базе данных публикации.

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

  • Репликация транзакций. Синхронизация означает, что агент распространителя передает обновления, вставки, удаления и любые другие изменения из базы данных распространителя подписчику.

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

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

Сведения о синхронизации принудительной подписки см. в разделе "Синхронизация принудительной подписки".

Чтобы синхронизировать подписку по запросу, см. статью "Синхронизация подписки по запросу".

Сведения о настройке расписаний синхронизации см. в разделе "Указание расписаний синхронизации".

Для просмотра и разрешения конфликтов синхронизации

Выполнение кода во время синхронизации

Репликация поддерживает два метода выполнения кода во время синхронизации

  • Выполнение скрипта по запросу поддерживается для репликации транзакций и репликации слияния. С помощью выполнения скрипта по запросу можно указать скрипт SQL для выполнения во время синхронизации. Скрипт копируется на подписчик и выполняется с помощью sqlcmd в начале процесса синхронизации. Скрипт не имеет доступа к реплицированным изменениям, так как они применяются к подписчику. Дополнительные сведения см. в разделе Выполнение скриптов во время синхронизации (программирование репликации Transact-SQL).

  • Обработчики бизнес-логики поддерживаются для репликации слияния данных. С помощью платформы обработчика бизнес-логики можно написать сборку управляемого кода, вызываемую во время процесса синхронизации слиянием. Сборка включает бизнес-логику, которая может реагировать на ряд условий во время синхронизации: изменения данных, конфликты и ошибки. Дополнительные сведения см. в разделе "Выполнение бизнес-логики во время синхронизации слиянием".

См. также

Обнаружение и разрешение конфликтов репликации слиянием