一: 数据复制角色
复制服务有三个角色,分别是发布服务器,分发服务器和订阅服务器。他们分别做不同的工作。就像我们日常买书和报纸的概念是一样的。
发布服务器: 也称为出版服务器,主要负责数据的发布和出版工作。这个角色就好比我们的出版社或者报社。
分发服务器: 主要负责将发布服务器的内容分发给订阅者。他是连接发布服务器和订阅服务器的桥梁。这个角色就好比我们的邮递员,将书和报纸送到我们的手里。
订阅服务器: 主要负责接收发布的内容。这个角色就好比我们自己订阅书和报纸,是一个订阅者的角色。
二:数据订阅模式
数据订阅的模式有推式订阅和拉式订阅两种。推式订阅主要是分发服务器将数据推给订阅服务器。 拉式订阅是订阅服务器主动向分发服务器取数据。
这就好比我们自己订阅杂志和报纸一样,如果人家送货上门,这就是推式订阅,消耗的是分发服务器的资源,也就是消耗送货人员的资源。如果是拉式订阅,我们就需要自己到书店去购买,这样消耗的就是我们自己的资料。消耗的是订阅服务器的资源,
三:数据发布类型
数据发布类型可发为四种:
快照发布
发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照。
当符合以下一个或多个条件时,使用快照复制本身是最合适的:
●很少更改数据。
● 在一段时间内允许具有相对发布服务器已过时的数据副本。
●复制少量数据。
●在短期内出现大量更改
事务发布
在订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。
具有可更新订阅的事务发布
在 SQL Server 订阅服务器收到已发布数据的初始快照后,发布服务器将事务流式传输到订阅服务器。来自订阅服务器的事务被应用于发布服务器。
上述的这两种发布方式可以归结为一种发布方式。不同之处在:事务发布类型下,在订阅服务器上发生的任何改变将不会应用到发布服务器上;
而“具有可更新订阅的事务发布”类型,订阅服务器上的任何操作将会同步到发布服务器上。
事务性复制通常用于服务器到服务器环境中,在以下各种情况下适合采用事务性复制:
●希望发生增量更改时将其传播到订阅服务器。
●从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短。
●应用程序需要访问中间数据状态。例如,如果某一行更改了五次,事务性复制将允许应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。
●发布服务器有大量的插入、更新和删除活动。
合并发布
在订阅服务器收到已发布数据的初始快照后,发布服务器和订阅服务器可以独立更新已发布数据。更改会定期合并。Microsoft SQL Server Compact Edition 只能订阅合并发布。
合并复制通常用于服务器到客户端的环境中。合并复制适用于下列各种情况:
● 多个订阅服务器可能会在不同时间更新同一数据,并将其更改传播到发布服务器和其他订阅服务器。
● 订阅服务器需要接收数据,脱机更改数据,并在以后与发布服务器和其他订阅服务器同步更改。
●每个订阅服务器都需要不同的数据分区。
●可能会发生冲突,并且在冲突发生时,您需要具有检测和解决冲突的能力。
●应用程序需要最终的数据更改结果,而不是访问中间数据状态。例如,如果在订阅服务器与发布服务器进行同步之前,订阅服务器上的行更改了五次,则该行在发布服务器上仅更改一次来反映最终数据更改(也就是第五次更改的值)。