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


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

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

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

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

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

Когда подписка синхронизируется, в зависимости от используемого типа репликации происходят разные процессы:

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

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

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

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

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

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

Синхронизация подписки по запросу

Установка расписаний синхронизации

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

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

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

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

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