SQL SERVER 之快照复制,事务复制,合并复制
一、环境要求及说明
1、快照复制和事务复制是单向的(2005及以后的版本中加入了订阅端可更新的事务复制)。
2、合并复制是双向的。
3、快照复制对表结构没有要求。
4、事务复制要求表有主键。
5、合并复制要求表有 rowguid 列。
-------------------------------------------------------
快照复制
1、概念
快照复制是完全按照数据和数据库对象出现时的状态来复制和分发它们的过程。
快照复制不需要连续地监控数据变化,因为已发布数据的变化不被增量地传播到订阅服务器,而是周期性的被一次复制。
2、 适用情况
• 数据主要是静态的,比如将数据仓库复制到数据集市中
• 一段时间内允许有已过时的数据拷贝的情况
• 小批量数据
• 站点经常脱离连接,并且可接受高延迟
事务复制
1、概念
使用事务复制,初始快照数据将被传播到订阅服务器,因此该订阅服务器就具有了一个所谓的初始负载,这是可以开始工作的内容。
当出版服务器上发生数据修改时,这些单独的事务会被及时捕获并复制到订阅服务器。并保留事务边界,当所有的改变都被传播后,所有订阅服务器将具有与传播服务器相同的值。
2、适用情况
• 需要数据修改经常在其发生的几秒钟内被传播到订阅服务器
• 需要事务是原子性的
• 订阅服务器在通常是连接到出版服务器上的
• 应用程序不能忍受订阅服务器接收改变的高延迟
合并复制
1、概念
合并复制允许一组站点自治工作,在线或离线。然后在将来的某个时刻,数据按照在多个已复制站点上发生的修改或插入情况被合并成一个统一的结果。
在订阅服务器上应用初始快照,作为其初始负载,然后SQL Server跟踪在出版服务器上和订阅服务器上已发布数据的更改。
数据按照预先定义或调度的时间,或者按需在服务器间同步。然后更新被独立应用在多个服务器上。
这意味着相同的数据可能由出版服务器或多个订阅服务器进行了更新,因而当数据更新合并时将发生冲突。
2、适用情况
• 多个订阅服务器需要在不同时刻更新数据,并将这些数据传播到出版服务器和其他订阅服务器。
• 订阅服务器需要接收数据,脱机更改数据,然后将更改同步到出版服务器和其他订阅服务器
• 应用程序的延迟需求可高可低
• 站点的自治性很关键
--------------------------------------------------------
事务复制
• 将复制启用后的所有发布服务器上发布的内容在修改时传给订阅服务器;
• 数据更改将按照其在发布服务器上发生的顺序和事务边界,应用于订阅服务器;
• 在发布内部可以保证事务的一致性;
快照复制
• 将数据以特定时刻的瞬时状态分发,而不监视对数据的更新;
• 发生同步时,将生成完整的快照,并将其发送到订阅服务器;
合并复制
• 通常从发布数据库对象和数据的快照开始,并且用触发器跟踪在发布器和订阅服务器上所做的后续更改和架构修改;
• 订阅服务器在连接到网络时将与发布服务器进行同步,并交换自上次同步以来发布服务器和订阅服务器之间发生更改的所有行;
SQL SERVER 之快照复制,事务复制,合并复制的更多相关文章
- SQL Server数据库快照的工作方式
SQL Server数据库快照的工作方式 翻译自:How Database Snapshots Work 最近有一个帖子<errorlog中的异常信息rolled forward 和rolled ...
- SQL Server 2014新特性——事务持久性控制
控制事务持久性 SQL Server 2014之后事务分为2种:完全持久, 默认或延迟的持久. 完全持久,当事务被提交之后,会把事务日志写入到磁盘,完成后返回给客户端. 延迟持久,事务提交是异步的,在 ...
- SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ...
- SQL Server中的高可用性(3)----复制
在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述.但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性.本 ...
- SQL Server中的高可用性(3)----复制 (转载)
在本系列文章的前两篇对高可用性的意义和单实例下的高可用性做了阐述.但是当随着数据量的增长,以及对RTO和RPO要求的严格,单实例已经无法满足HA/DR方面的要求,因此需要做多实例的高可用性.本文着重对 ...
- SQL Server 跨网段(跨机房)复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搭建过程(Process) 注意事项(Attention) 参考 ...
- Step4:SQL Server 跨网段(跨机房)复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搭建过程(Process) 注意事项(Attention) 参考 ...
- SQL Server 跨服务器、跨版本使用复制 (2008、2012)
在两台不同的服务器间实现SQL Server 的发布和订阅,需要一些设置. 测试环境:2008数据库.2012数据库,可实现跨版本发布订阅 本次测试是08的数据库做发布端 ,使用08数据及12数据库均 ...
- Sql Server 2005 mdf、ldf文件无法复制问题
[问题原因]Sql Server服务只要启动就一直占用,故无法进行编辑操作. [解决办法 - 1]: 1)在开始-运行对话框中输入"services.msc”,显示如下界面: 2)关闭如上选 ...
随机推荐
- Android 4.0开发之GridLayOut布局实践
在上一篇教程中http://blog.csdn.net/dawanganban/article/details/9952379,我们初步学习了解了GridLayout的布局基本知识,通过学习知道,Gr ...
- C++利用结构
#include <iostream> using std::cout; using std::endl; //定义结构 struct Box{ double length; double ...
- 如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局. 但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置. 在处理子窗口鼠标事件时变的很麻烦.主 ...
- Java编程思想学习笔记-使用显式的Lock对象
若要保证后台线程在trylock()之前运行得到锁,可加“屏障”,如下1,2,3步,而trylock()不管设定时间与否都不会阻塞主线程而是立即返回: //: concurrency/AttemptL ...
- 在sql语句中 inner join ,left join,right join 和on 以及where
当使用几种join的时候,on是指表连接起来基于的条件,where是对连接的表进行过滤的条件. where 1=1 当我们需要拼接字符串的时候 在基础sql字符串中写上where 1=1 可以不需要 ...
- 图像处理与计算机视觉的 topics
光学图像(optical image): the apparent reproduction of an object, formed by a lens or mirror system from ...
- WPF自定义LED风格数字显示控件
原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP11199988899/article/de ...
- sql service 游标和触发器的使用
一. 定义游标 使用游标相当于C#里面的集合. ) DECLARE My_Cursor CURSOR --定义游标 FOR (select autoid from U_VoucherItems whe ...
- vi学习(1)
今天下午看了vi频繁使用的操作,现在记录,为了方便日后查询. 按vi模式.进入命令3部分. (一) 一般模式下 字符操作:上下左右箭头(或kjhl)能够实现光标上下左右移动一位. 假设想要进行多次移动 ...
- java线:辛格尔顿隐藏ThreadLocal实现线程数据共享
效果图分享: A和B需要共享同一线程,还有一组的相同A和B共享还有一组线程,两组相互之间不受影响. 代码: package cn.itcast.lesson6; import java.util.Ra ...