同步数据
同步数据是指在订阅服务器上已应用初始快照后,在发布服务器和订阅服务器之间传播数据和架构更改的过程。同步可按下列方式发生:
- 连续,这是事务性复制的典型方式。
- 按需,这是合并复制的典型方式。
- 根据计划,这是快照复制的典型方式。
同步订阅时,根据您所使用的复制类型的不同,将发生不同的过程。
- 快照复制。同步是指分发代理在订阅服务器上重新应用快照,以便订阅数据库与发布数据库上的架构和数据一致。
如果在发布服务器上修改了数据或架构,则必须生成一个新快照,以便将修改传播到订阅服务器。 - 事务性复制。同步是指分发代理将更新、插入、删除及其他更改从分发数据库传输到订阅服务器。
- 合并复制。同步是指合并代理从订阅服务器向发布服务器上载更改,然后再从发布服务器向订阅服务器下载更改。将检测并解决冲突(如果有)。数据被收敛,发布服务器和所有订阅服务器将最终达到相同的数据值。如果检测到冲突并解决了冲突,则一些用户已提交的工作将更改为根据您定义的策略来解决冲突。
每次发生同步时,快照发布都会彻底刷新订阅服务器上的架构,因此所有架构更改都会应用到订阅服务器。事务性复制和合并复制还支持最常见的架构更改。有关详细信息,请参阅对发布数据库进行架构更改。
同步推送订阅
- SQL Server Management Studio: 如何同步推送订阅 (SQL Server Management Studio)
- 复制代理编程: 如何同步推送订阅(复制编程)
- 复制管理对象 (RMO) 编程: 如何同步推送订阅(RMO 编程)
同步请求订阅
- SQL Server Management Studio: 如何同步请求订阅 (SQL Server Management Studio)
- 复制代理编程: 如何同步请求订阅(复制编程)
- 复制管理对象 (RMO) 编程: 如何同步请求订阅(RMO 编程)
设置同步计划
- SQL Server Management Studio: 如何指定同步计划 (SQL Server Management Studio)
- 复制 Transact-SQL 编程: How to: Specify Synchronization Schedules (Replication Transact-SQL Programming)
- 复制管理对象 (RMO) 编程: How to: Specify Synchronization Schedules (RMO Programming)
查看和解决同步冲突
- SQL Server Management Studio:如何查看和解决合并发布的数据冲突 (SQL Server Management Studio)
- SQL Server Management Studio:如何查看包含排队更新订阅的事务性发布的数据冲突 (SQL Server Management Studio)
在同步过程中执行代码
复制支持两种在同步过程中执行代码的方法
- 事务性复制和合并复制支持按需脚本执行。使用按需脚本执行,可以指定要在同步过程中运行的 SQL 脚本。将该脚本复制到订阅服务器,并在同步进程开始时用 sqlcmd 执行该脚本。在将复制的更改应用到订阅服务器时,该脚本不能访问这些复制的更改。有关详细信息,请参阅How to: Execute Scripts During Synchronization (Replication Transact-SQL Programming)。
- 合并复制支持业务逻辑处理程序。使用业务逻辑处理程序框架,可以编写一个在合并同步过程中调用的托管代码程序集。程序集包括可以在同步过程中响应大量条件的业务逻辑:数据更改、冲突和错误。有关详细信息,请参阅在合并同步期间执行业务逻辑。