Синхронизация данных
Под синхронизацией данных подразумевается процесс распространения изменений данных и схем между издателем и подписчиками, после того как был применен исходный моментальный снимок на подписчике. Синхронизация может происходить:
Непрерывно, что типично для репликации транзакций.
По требованию, что типично для репликации слиянием.
По расписанию, что типично для репликации моментальных снимков.
Когда подписка синхронизируется, в зависимости от используемого типа репликации происходят разные процессы:
Репликация моментальных снимков. Синхронизация означает, что агент распространителя повторно применяет моментальный снимок на подписчике — так, чтобы схема и данные в базе данных подписки были согласованы со схемой и данными в базе данных публикации.
Если на издателе были произведены изменения данных или схемы, для распространения изменений на подписчик должен быть создан новый моментальный снимок.
Репликация транзакций. Синхронизация означает, что агент распространителя передает на подписчик обновления, вставки, удаления и любые другие изменения из базы данных распространителя.
Репликация слиянием. Синхронизация означает, что агент слияния передает изменения с подписчика на издатель, а затем передает изменения с издателя на подписчик. Конфликты, если они присутствуют, обнаруживаются и разрешаются. Выполняется конвергенция данных, а издатель и все подписчики в итоге достигают состояния с одинаковыми значениями данных. Если были обнаружены и разрешены конфликты, работа, зафиксированная некоторыми из пользователей, изменяется, чтобы разрешить конфликт в соответствии с определенными правилами.
Публикации моментальных снимков полностью обновляют схему на подписчике при каждой синхронизации, так что все изменения схемы применяются на подписчике. Репликация транзакций и репликация слиянием также поддерживают наиболее распространенные изменения схем. Дополнительные сведения см. в статье Внесение изменений в схемы баз данных публикации.
Сведения о синхронизации принудительной подписки см. в разделе Synchronize a Push Subscription.
Сведения о синхронизации подписки по запросу см. в разделе Synchronize a Pull Subscription.
Чтобы настроить расписания синхронизации, см. раздел Specify Synchronization Schedules.
Просмотр и разрешение конфликтов синхронизации
SQL Server Management Studio: просмотр и разрешение конфликтов данных для публикаций слиянием (SQL Server Management Studio)
SQL Server Management Studio: просмотр конфликтов данных для публикаций транзакций (SQL Server Management Studio)
Выполнение кода во время синхронизации
Репликация поддерживает два метода выполнения кода во время синхронизации
Выполнение скрипта по запросу поддерживается для репликации транзакций и репликации слиянием. С помощью выполнения скрипта по запросу можно указать, какой скрипт SQL будет выполняться во время синхронизации. скрипт копируется на подписчик и выполняется с помощью программы sqlcmd в начале процесса синхронизации. скрипт не имеет доступа к реплицированным изменениям, когда они применяются к подписчику. Дополнительные сведения см. в разделе Выполнение скриптов во время синхронизации (программирование репликации на языке Transact-SQL).
Обработчики бизнес-логики поддерживаются для репликации слиянием. С помощью платформы обработчиков бизнес-логики можно создать сборку управляемого кода, которая будет вызываться в процессе синхронизации слиянием. Сборка включает бизнес-логику, которая может учитывать ряд условий во время синхронизации: изменения данных, конфликты и ошибки. Дополнительные сведения см. в статье Выполнение бизнес-логики при синхронизации слиянием.