对等的对等事务复制 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

对等复制提供扩展和高可用性解决方案通过跨也称为 节点 的多服务器实例维护的数据副本。 内置事务性复制的基础上,对近实时在事务上一致更改为对等复制传播。 这使应用程序需要扩展的读取操作以将从客户端读取分散到多个节点。 由于数据维护跨近实时、 对等复制中的节点提供了增强的数据可用性的数据冗余。

考虑一个 Web 应用程序。 这可以通过以下方式从对等复制中受益:

  • 目录查询和其他读取操作都分布在多个节点中。 这使保持一致,如增加读取性能。

  • 如果系统中节点中的一个出现故障,一个应用程序层可以重定向到另一个节点为该节点写入。 这将保持可用性。

  • 如果某个节点需要维护,或者整个系统需要升级每个节点可以脱机和添加回系统而不影响应用程序的可用性。

尽管对等复制启用扩展的读取操作,但写入性能的拓扑是那样的单个节点。 这是因为最终所有插入、 更新和删除操作将传播到所有节点。 复制可以识别何时更改已应用于给定节点和防止更改在节点间循环不止一次。 我们强烈建议在唯一节点执行写操作,每一行是由于以下原因:

  • 如果在多个节点修改行,则可能导致冲突或甚至丢失的更新时,行传播到其他节点。

  • 总有一些延迟涉及复制更改时。 对于应用程序,需要有待立即、 动态负载平衡应用程序在多个节点之间可能会有问题的最新更改。

对等复制 SQL Server 2008 中的引入了该选项,以启用跨一的对等拓扑的冲突检测。 此选项有助于防止从包括不一致的应用程序行为和更新丢失的未检测到冲突而导致的问题。   通过启用此选项,默认情况下修订冲突被视为一个严重的错误,从而导致失败的分发代理。 一的冲突事件中拓扑仍然处于不一致状态之前手动解决冲突和跨拓扑数据保持一致。 更多的信息请参阅 对等复制中的冲突检测

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 注意:

若要避免潜在的数据不一致,确保您启用冲突检测与甚至避免一个对等拓扑结构中的冲突。 为确保只有一个节点上执行写操作特定行,应用程序可以访问和更改数据必须分区插入,更新,和删除操作。 此分区可以确保之前由不同的节点中修改行时发起一个节点在某一给定行的修改同步在拓扑中的所有其他节点。 如果应用程序需要复杂的冲突检测和解决能力,使用合并复制。 更多的信息,请参阅 合并复制概述 检测并解决合并复制冲突

  对等的对等拓扑

下列方案说明了为对等复制的典型应用。

拓扑包含两个参与数据库

上面图中的两个显示两个的参与数据库与用户流量定向到通过应用程序服务器数据库。 此配置可用于各种从工作组的应用程序的 Web 站点的应用,并提供了以下优点:

  • 提高读的性能,因为读取摊开两个服务器。

  • 更高的可用性当需要维护或在一个节点出现故障的情况下。

在这两个的插图中读取活动是在参与的数据库之间的负载平衡,但更新的处理方式不同:

  • 在该的左边更新的两个服务器分区。 如果该数据库中包含一个产品目录,为例有到节点 A M,通过 A 开头的产品名称的自定义应用程序直接更新和直接更新到 B 通过直更新 N 开头的产品名称然后复制到另一个节点的节点。

  • 在该的右边所有更新都定向到节点 B 从那里,更新复制到节点 A 如果脱机 (为例,为了维护) B 应用程序服务器可以直接到 A 的所有活动。 B 联机时,更新可以流向,与应用程序服务器可以将所有的更新移回 B 或保持指导他们到 A

对等复制可以支持任意的做法,但右侧中心更新示例也经常使用与标准事务复制。

拓扑具有三个或更多的参与数据库

在上图中显示为一个全球软件支持在洛杉矶、 伦敦和台北均设有办事处有一个组织提供数据的三个参与数据库。 在每个办公室的支持工程师采取客户呼叫和输入和更新每个客户电话的相关信息。 三个办事处的时区是相差,八小时,因此没有重叠的工作日。 台北办事处下班时,伦敦办事处开始一天。 如果调用仍在进行中,一个 office 正在关闭,该呼叫被转到下一处打开一个代表。

每个位置有一个数据库和应用程序服务器支持工程师他们输入和更新客户电话的相关信息时使用。 拓扑进行分区的时间。 因此,更新只能出现在业务,为当前打开的节点,然后更新流到其他参与数据库。 此拓扑具有以下优点:

  • 如果不进行隔离独立: 每个办公室可以插入、 更新,或独立删除数据但还可以共享数据,因为它被复制到所有其他参与数据库。

  • 故障的情况下或在一个或多个参与数据库的维护,有更高的可用性。

在上图显示三节点拓扑结构的节点的添加。 可由于下列原因,在这种情况下添加到一个节点:

  • 因为打开另一个办公室。

  • 为提供更高的可用性,以支持维护或增加容错能力,如果发生磁盘故障或其他严重的故障。

请注意在这两个,三,四节点拓扑中的所有数据库发布和订阅的所有其他数据库。 这提供了最高的可用性,需要维护或者一个或多个节点发生故障的情况下。 添加节点后 , 必须权衡可用性和可扩展性需要针对性能以及部署和管理的复杂性。