SQL Server 发布订阅 发布类型详解

MicrosoftSQL Server 提供了三种复制类型。 每种复制类型都适合于不同应用程序的要求。 根据应用程序需要,可以在拓扑中使用一种或多种复制类型:

  • 快照复制
  • 事务复制
  • 合并复制

为了帮助您选择适当的复制类型,此主题提供了有关下列内容的信息:

  • 复制方案

    本部分简要描述了复制的多种常用情况,还提供了指向更加详细描述的链接。

  • 复制类型

    本部分描述了每个复制类型所适合的应用程序要求。

  • 在订阅服务器上更新数据

    本部分描述了需要在订阅服务器上更新数据的应用程序的可用选项。

我们建议您先要通读方案描述,找出与应用程序要求最匹配的方案,然后单击链接查看详细信息。 如果找不到与业务要求近似匹配的方案,或者希望得到有关复制类型的其他信息,则请阅读“复制类型”。 如果应用程序需要在一个或多个订阅服务器上更新,则请阅读“在订阅服务器中更新数据”,以确定可使用的适当技术。

复制方案

复制方案可以分为两大类: 在服务器到服务器环境中复制数据和在服务器与客户端间复制数据。 服务器到服务器方案使用事务复制(有时也可使用快照复制)实现;服务器和客户端方案使用合并复制实现。

服务器到服务器方案

数据通常在服务器之间进行复制,以支持下列应用程序和要求:


方案


说明


提高伸缩性和可用性


通过维护不断更新的数据副本,可以将读取活动扩展到多台服务器。 执行计划系统维护和非计划系统维护期间,应为同一数据维护多个副本以实现数据冗余,这一点至关重要。 有关详细信息,请参阅改善伸缩性和可用性


数据仓库和报表


数据仓库和报表服务器通常使用联机事务处理 (OLTP) 服务器中的数据。 使用复制在 OLTP 服务器和报表与决策支持系统之间移动数据。 有关详细信息,请参阅数据仓库和报告


集成来自多个站点的数据


数据通常从各个远程办事处“汇入”总部并在总部进行整合。 同样,数据也可以从总部复制到远程办事处。 有关详细信息,请参阅集成来自多个站点(服务器)的数据


集成异类数据


有些应用程序要依赖于发送至或来自非 MicrosoftSQL Server 的数据库的数据。 使用复制集成来自非 SQL Server 数据库的数据。 有关详细信息,请参阅集成异类数据


卸载批处理


批处理操作由于通常会占用过多资源而无法在 OLTP 服务器上运行。 使用复制将批处理任务卸载到专用批处理服务器上。 有关详细信息,请参阅卸载批处理

服务器和客户端方案

数据通常在服务器和客户端(包括工作站、便携式电脑、Tablet 和设置)之间复制,以支持下列应用程序:


方案


说明


与移动用户交换数据


许多应用程序要求数据可用于远程用户,包括销售人员、送货司机等。 这些应用程序包括客户关系管理 (CRM) 应用程序、销售自动化 (SFA) 应用程序和现场自动化 (FFA) 应用程序。 有关详细信息,请参阅与移动用户交换数据


消费者销售点 (POS) 应用程序


POS 应用程序(如结算终端和 ATM 机)要求将数据从远程站点复制到中心站点。 有关详细信息,请参阅使用者销售点 (POS) 应用程序


集成来自多个站点的数据


应用程序通常集成来自多个站点的数据。 例如,支持区域办事处的应用程序可能要求数据在区域办事处和总部之间单向或双向流动。 有关详细信息,请参阅集成来自多个站点(客户端)的数据

复制类型

快照复制

快照处理通常用于为事务和合并发布提供初始的数据集和数据库对象,但快照复制还可为其自身所用。 当符合以下一个或多个条件时,使用快照复制本身是最合适的:

  • 很少更改数据。
  • 在一段时间内允许具有相对发布服务器已过时的数据副本。
  • 复制少量数据。
  • 在短期内出现大量更改。

在数据更改量很大,但很少发生更改时,快照复制是最合适的。 例如,如果某销售组织维护一个产品价格列表且这些价格每年要在固定时间进行一两次完全更新,那么建议在数据更改后复制完整的数据快照。

事务复制

事务复制通常用于服务器到服务器环境中,在以下各种情况下适合采用事务复制:

  • 希望发生增量更改时将其传播到订阅服务器。
  • 从发布服务器上发生更改,至更改到达订阅服务器,应用程序需要这两者之间的滞后时间较短。
  • 应用程序需要访问中间数据状态。 例如,如果某一行更改了五次,事务复制将允许应用程序响应每次更改(例如,激发触发器),而不只是响应该行最终的数据更改。
  • 发布服务器有大量的插入、更新和删除活动。
  • 发布服务器或订阅服务器不是 SQL Server 数据库(例如,Oracle)。

默认情况下,事务发布订阅服务器应作只读处理,因为更改并不传播回发布服务器。 但是,事务复制确实提供了允许在订阅服务器上进行更新的选项。 有关详细信息,请参阅本主题中的“在订阅服务器中更新数据”部分。

合并复制

合并复制通常用于服务器到客户端的环境中。 合并复制适用于下列各种情况:

  • 多个订阅服务器可能会在不同时间更新同一数据,并将这些更改传播到发布服务器和其他订阅服务器。
  • 订阅服务器需要接收数据,脱机进行更改,并在随后与发布服务器和其他订阅服务器同步更改。
  • 每个订阅服务器都需要不同分区的数据。
  • 可能会发生冲突,并且在冲突发生时,您需要具有检测和解决冲突的能力。
  • 应用程序需要最终的数据更改结果,而不是访问中间数据状态。 例如,在订阅服务器与发布服务器同步前,如果订阅服务器上的行更改了五次,则该行将只在发布服务器上更改一次,以反映最终数据更改(也就是更改为第五个值)。

合并复制允许不同站点自主工作,并在以后将更新合并成一个统一的结果。 由于更新是在多个节点上进行的,同一数据可能由发布服务器和多个订阅服务器进行了更新。 因此,在合并更新时可能会产生冲突,合并复制提供了多种处理冲突的方法。

在订阅服务器上更新数据

下列类型的复制和复制选项允许在订阅服务器上进行更改,并使这些更改流向发布服务器:


复制类型


何时使用...


合并复制

  • 存在大量订阅服务器。
  • 数据被复制到移动用户。
  • 在订阅服务器上频繁更新已复制的数据。
  • 需要数据筛选,以便订阅服务器可以接收不同分区的数据。

有关详细信息,请参阅合并复制概述合并复制的工作机制


对等事务复制

  • 复制被用于改进伸缩性和可用性。
  • 需要最短滞后时间。
  • 数据未在订阅服务器间分区。
  • 通常不会发生冲突,但如果有,则一定会检测得到。

有关详细信息,请参阅对等事务复制


带有更新订阅的事务复制

  • 存在少量订阅服务器。
  • 已复制的数据在订阅服务器上通常为只读。
  • 大多数情况下,订阅服务器、分发服务器和发布服务器都是相互连接的(适用于立即更新订阅)。

有关详细信息,请参阅事务复制的可更新订阅

时间: 2024-08-11 09:02:28

SQL Server 发布订阅 发布类型详解的相关文章

SQL Server 默认跟踪 -- 捕获事件详解

SQL Server 默认跟踪 -- 捕获事件详解 哪些具体事件默认跟踪文件能够捕获到? --returns full list of events SELECT * FROM sys.trace_events --returns a full list of categories SELECT * FROM sys.trace_categories --returns a full list of subclass values SELECT * FROM sys.trace_subclass

SQL Server数据库ROW_NUMBER()函数使用详解

SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用. 实例如下: 1.使用row_number()函数进行编号,如 select email,customerID, ROW_NUMBER() over(order by psd) a

SQL SERVER 使用订阅发布同步数据库(转)

一.数据库复制涉及  1.发布服务器:  数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发生了修改,并将这些信息提交给分发服务器.  2.分发服务器: 分发服务器负责把从发布服务器拿来的数据传送至订阅服务器. 3.订阅服务器:         订阅服务器就是发布服务器数据的副本,接收维护数据. 4.订阅类型       推订阅          推订阅是指由发布服务器将所有发生修改过的数据复制给订阅者,这种在数据同步性价比较高的场合,推荐使用推订阅.       拉订阅    

SQL SERVER 2000安装教程图文详解

注意:Windows XP不能装企业版.win2000\win2003服务器安装企业版一.硬件和操作系统要求 下表说明安装 Microsoft SQL Server 2000 或 SQL Server 客户端管理工具和库的硬件要求. 硬件 最低要求计算机 Pentium 166 MHz 或更高. 内存 (RAM)至少 64 MB,建议 128 MB 或更多.根据笔者的经验,内存容量可以和数据容量保持1:1的比例,这样可以更好的发挥其效能.硬盘空间需要约500MB的程序空间,以及预留500M的数据

SQL Server UPDATE语句的用法详解

SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解. 现实应用中数据库中的数据改动是免不了的.通常,几乎所有的用户数据库中的大部分数据都要进行某种程度的修改.在SQL Server数据库中要想修改数据库记录,就需要用UPDATE语句,UPDATE语句就是为了改变数据库中的现存数据而存在的.这条语句虽然有一些复杂的选项,但确实是最容易学习的语句之一.这是因为在大

SqlServer2005 数据库发布、订阅配置图文详解

一:准备条件 <1>软件准备条件 机器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作为发布服务器) 机器B端:Sqlserver2005 Management Studio Express + WinXP(作为订阅服务器) (可以用别的,不过订阅服务器版本不得高于发布服务器版本) <2>数据库复制准备条件 1. 所有被同步的数据表尽量要用主键,如果没有主键也没有关系,SqlServer会提示为表自动

Spring基于事件驱动模型的订阅发布模式代码实例详解

代码下载地址:http://www.zuidaima.com/share/1791499571923968.htm 原文:Spring基于事件驱动模型的订阅发布模式代码实例详解 事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理解它的几个关键点: 首先是一种对象间的一对多的关系:最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方): 当目标发送改变(发布),观察者(订阅者)就可以接收到改变: 观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的

SQL Server 中心订阅模型(多发布单订阅)

原文:SQL Server 中心订阅模型(多发布单订阅) 大多数SQL Server 复制拓扑都是基于中心发布模型,它是由一个发布复制到一个或者多个订阅.另一个复制模型是中心订阅模型,它使用事务复制由多个发布复制到一个订阅中. 中心订阅模型用于从多个数据源中合并数据,例如: >从多个数据仓库中汇总库存到企业总部的中心服务器: >同一个公司中从持续发送远程办公数据到中心办公系统中: >合并订单信息到同一个地方集中处理. 默认情况下,订阅通过快照代理初始化生成快照并被分发代理应用.当快照被应

SQL Server 复制订阅

原文:SQL Server 复制订阅 标签:SQL SERVER/MSSQL SERVER/数据库/DBA/高性能解决方案/高可用 概述 配置复制就没有数据库镜像和AlwaysOn的要求那么高,只需要两台服务器能通过TCP进行通讯即可,两台服务器操作系统和SQL版本都可以不完全一致,而且两台服务器也不需要加入域,所以配置复制订阅就简单多了,但是复制订阅主要是针对数据表而不能像镜像和AlwaysOn那样配置整个数据库,这也是它的缺点吧. 接下来主要除了前面介绍配置复制订阅后面还会解释一些需要注意的

【DataBase】sqlserver字段类型详解

bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用. tinyint   整型 tinyint 数据类型能存储从0到255 之间的整数.它在你只打算存储有限数目的数值时很有用.这种数据类型在数据库中占用1 个字节. 注意:如果bit类型太单调不能满足您的需求,您可以考虑用tinyint类型,因为这个类型相对也是比较安全的