同步数据
适用于: SQL Server Azure SQL 托管实例
同步数据是指在订阅服务器上应用初始快照后,在发布服务器和订阅服务器之间传播数据和架构更改的过程。 同步可按下列方式发生:
连续,这是事务复制的典型方式。
按需,这是合并复制的典型方式。
根据计划,这是快照复制的典型方式。
同步订阅时,根据您所使用的复制类型的不同,将发生不同的过程。
快照复制。 同步是指分发代理在订阅服务器上重新应用快照,以便订阅数据库与发布数据库上的架构和数据一致。
如果在发布服务器上修改了数据或架构,则必须生成一个新快照,以便将修改传播到订阅服务器。
事务复制。 同步是指分发代理将更新、插入、删除及其他更改从分发数据库传输到订阅服务器。
合并复制。 同步是指合并代理从订阅服务器向发布服务器上载更改,然后再从发布服务器向订阅服务器下载更改。 将检测并解决冲突(如果有)。 数据被收敛,发布服务器和所有订阅服务器将最终达到相同的数据值。 如果检测到冲突并解决了冲突,则一些用户已提交的工作将更改为根据您定义的策略来解决冲突。
每次发生同步时,快照发布都会彻底刷新订阅服务器上的架构,因此所有架构更改都会应用到订阅服务器。 事务复制和合并复制还支持最常见的架构更改。 有关详细信息,请参阅对发布数据库进行架构更改。
若要同步推送订阅,请参阅 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 编程)。
合并复制支持业务逻辑处理程序。 使用业务逻辑处理程序框架,可以编写一个在合并同步过程中调用的托管代码程序集。 程序集包括可以响应同步过程中的许多状况的业务逻辑:数据更改、冲突和错误。 有关详细信息,请参阅合并同步期间执行业务逻辑。