同步数据

同步数据是指在订阅服务器上应用初始快照后,发布服务器和订阅服务器之间传播的数据和架构更改的过程。 同步可能发生:

  • 持续,这是事务复制的典型。

  • 按需方式是合并复制的典型特点。

  • 按计划进行,这是快照复制的典型特征。

同步订阅时,会根据所使用的复制类型执行不同的过程:

  • 快照复制。 同步意味着分发代理在订阅服务器上重新应用快照,以便订阅数据库中的架构和数据与发布数据库保持一致。

    如果在发布服务器上对数据或架构进行了修改,则必须生成新的快照,以便将修改传播到订阅服务器。

  • 事务复制。 同步意味着分发代理将更新、插入、删除以及分发数据库的任何其他更改传输到订阅服务器。

  • 合并复制。 同步意味着合并代理将更改从订阅服务器上传到发布服务器,然后将更改从发布服务器下载到订阅服务器。 检测到并解决冲突(如果有)。 数据聚合,发布服务器和所有订阅服务器最终都具有相同的数据值。 如果检测到并解决了冲突,则某些用户提交的工作会根据定义的策略更改,以解决冲突。

每次发生同步时,快照发布都会完全刷新订阅服务器上的架构,因此所有架构更改都应用于订阅服务器。 事务复制和合并复制还支持最常见的架构更改。 有关详细信息,请参阅对发布数据库进行架构更改

若要同步推送订阅,请参阅 同步推送订阅

若要同步请求订阅,请参阅 “同步请求订阅”。

若要设置同步计划,请参阅 “指定同步计划”。

查看和解决同步冲突

在同步期间执行代码

复制支持在同步期间执行代码的两种方法

  • 支持事务复制和合并复制的按需脚本执行。 使用按需脚本执行,可以指定要在同步期间运行的 SQL 脚本。 脚本将复制到订阅服务器,并在同步过程开始时使用 sqlcmd 执行。 脚本无权访问复制的更改,因为它们应用于订阅服务器。 有关详细信息,请参阅同步期间执行脚本(复制 Transact-SQL 编程)。

  • 合并复制支持业务逻辑处理程序。 使用业务逻辑处理程序框架,可以编写在合并同步过程中调用的托管代码程序集。 该程序集包括可在同步期间响应多个条件的业务逻辑:数据更改、冲突和错误。 有关详细信息,请参阅 合并同步期间执行业务逻辑

另请参阅

检测和解决合并复制冲突