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


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

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

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

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

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

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

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

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

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

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

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

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

Сведения о синхронизации подписки по запросу см. в разделе Synchronize a Pull Subscription.

Чтобы настроить расписания синхронизации, см. раздел Specify Synchronization Schedules.

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

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

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

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

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

См. также:

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