复制类型:

1)事务型复制:通过复制事务日志到订阅点重做的方式,属于增量型复制;

2)合并型复制:通过触发器和元数据表追踪表数据改变,同样属于增量型复制;

3)快照型复制:通过创建数据库快照,并把快照复制到目标点,覆盖订阅端数据库,不追踪数据改变,属于替换型复制;

复制代理:一组SQL SERVER Agent Jobs用于整个复制过程中完成某个任务

分发代理:用于快照型复制和事务型复制,用于把初始化快照和事务日志分发到订阅服务器。它存在分发服务器或者订阅服务器取决于是推(Push)或者拉(Pull);

复制日志读取器代理:用于事务型复制,将发布服务器上数据库的事务日志中标记为复制的日志块复制到分发服务器上。它存在分发服务器上。每个数据库都有独立的代理。

复制合并代理:用于合并型复制,将初始化快照和增量更新数据复制到订阅服务器。合并代理可以是在分发服务器上(Push),也可以在订阅服务器上(Pull)。合并代理将订阅服务器上的更改应用到发布服务器,然后将发布服务器上的更改下载到订阅服务器。

复制队列读取器代理:队列读取器代理用于包含排队更新选项的事务复制,用于分发服务器,并将订阅服务器上所做更改移回至发布服务器。只有一个队列读取器代理的实例为给定分发数据库的所有发布服务器和发布提供服务。

复制快照代理:复制包含许多执行计划维护和按需维护的维护作业。

重新发布数据

在重新发布模式中,发布服务器将数据发送到订阅服务器,后者将数据重新发布到任意数目的其他订阅服务器。 当发布服务器必须通过低速或昂贵的通信链接向订阅服务器发送数据时,这很有用。 如果在链接的远端有许多订阅服务器,那么使用重新发布服务器可将大量分发负荷转移到链接的远端。

安全性

数据库数据传输加密

安全实体权限控制和数据访问控制

角色管理

筛选发布数据

管理

备份和还原复制的数据库

复制支持将复制的数据库还原到从中创建备份的同一服务器和数据库。 如果将复制数据库的备份还原到其他服务器或数据库,则无法保留复制设置。在这种情况下,您必须在还原备份后重新创建所有发布和订阅。

备份发布服务器、分发服务器和所有订阅服务器上的 master 和 msdb 系统数据库和发布数据库、订阅数据库和分发数据库。

如果执行定期日志备份,则在日志备份中应捕获所有与复制相关的更改。 如果不执行日志备份,则当与复制相关的设置发生更改时,应执行备份。

验证已复制的数据

对于事务复制和合并复制,可以验证订阅服务器中的数据与发布服务器中的数据是否匹配。分发代理或合并代理便会在下次运行时验证数据。

有两种验证类型可选:RowCount Only和RowCount and binary Checksum。

除了验证订阅服务器和发布服务器上的数据是否匹配之外,合并复制还提供验证每个订阅服务器上的数据是否正确分区的功能。

使用tablediff工具来比较所复制的表的差异

通过SQL SSERVER AGENT服务的Alert功能配置复制警报

  • 复制:代理成功

  • 复制:代理失败

  • 复制:代理重试

  • 复制:已删除过期的订阅

  • 复制:验证失败后重新初始化了订阅

  • 复制:订阅服务器未通过数据验证

  • 复制:订阅服务器已通过数据验证

  • 复制:代理自定义关闭

为事务复制启用协调备份

在为数据库启用事务复制时,对分发数据库启用协调备份,以便在传播到分发服务器的事务未备份前不会截断发布数据库的事务日志。

筛选已发布数据

最大程度地减少通过网络发送的数据量,减少订阅服务器上需要的存储空间量,避免传输敏感数据。

复制提供了四种筛选器:

静态行筛选器,列筛选器,参数化行筛选器(仅适用于合并复制),联接筛选器(仅适用于合并复制)。

复制标识列

若要在多个节点上都有更新的复制拓扑中使用标识列,复制拓扑中的每个节点都必须使用不同范围的标识值,以避免出现重复。复制在每个订阅服务器上插入数据时,不会增加订阅服务器表中的标识列值,而是插入文字值 65。 仅用户插入,而复制代理不插入,将导致标识列值增加。手动管理列或由复制自动管理列。自动类型用于在订阅服务器上进行更新的合并复制和事务复制。指定发布服务器和订阅服务器的大小范围,复制将自动管理新范围的分配。手动用于订阅服务器上不进行更新的快照和事务复制,如果指定手动管理,则必须确保将范围分配给发布服务器和每个订阅服务器,还要确保在使用初始范围时,新范围已分配。

复制支持对已发布对象进行多种架构更改。 对 Microsoft SQL Server 发布服务器中相应的已发布对象进行以下任何架构更改时,默认情况下更改都将传播到所有 SQL Server 订阅服务器:ALTER TABLE,ALTER PROCEDURE,ALTER VIEW,ALTER FUNCTION。合并复制禁止在订阅服务器中进行架构更改。不支持显式添加、删除或更改索引。 支持为约束(如主键约束)隐式创建的索引。不支持更改或删除由复制管理的标识列。

复制支持分区,提供了一组属性来指定如何处理已分区表和索引。事务复制和合并复制不支持复制下列命令:ALTER INDEX 的 ALTER PARTITION FUNCTION、ALTER PARTITION SCHEME 或 REBUILD WITH PARTITION 语句。 与之关联的更改将不会自动复制到订阅服务器。 它要求用户在订阅服务器上手动进行类似更改。复制支持分区切换。对于事务复制,将 @allow_partition_switch和@replicate_partition_switch设置为 true

参考:

Types of Replication

安全性和保护

tablediff 实用工具

SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Transaction Replication(事务复制)的更多相关文章

  1. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之AlwaysOn可用性组搭建

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  2. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域、DNS服务器和Windows故障转移群集(准备工作)

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  3. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn可用性组(理论篇)

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  4. SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Windows故障转移群集

    WSFC 群集 (WSFC cluster)“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性. 故障转移群集实例 (Fail ...

  5. SQL Server高可用——日志传送(4-1)——概论

    原文:SQL Server高可用--日志传送(4-1)--概论 本文作为学习总结,部分内容出自联机丛书及其他书籍 日志传送是什么? SQLServer 2012之前(2012出现了AlwaysOn), ...

  6. 深入解析 SQL Server 高可用镜像实现原理

    作者:郭忆 本文由 网易云 发布. SQL Server 是 windows 平台 .NET 架构下标配数据库解决方案,与 Oracle.MySQL 共同构成了 DB-Engines Ranking ...

  7. 深入解析SQL Server高可用镜像实现原理

    本文来自网易云社区 SQL Server 是windows平台.NET架构下标配数据库解决方案,与Oracle.MySQL共同构成了DB-Engines Ranking的第一阵营,在国内外企业市场中有 ...

  8. 京东云数据库RDS SQL Server高可用概述

    数据库的高可用是指在硬件.软件故障发生时,可以将业务从发生故障的数据库节点迁移至备用节点.本文主要讲述SQL Server高可用方案,以及京东云RDS数据库的高可用实现. 一.高可用解决方案总览 1. ...

  9. SQL Server高可用——日志传送(4-3)——使用

    原文:SQL Server高可用--日志传送(4-3)--使用 顺接上一篇:SQL Server高可用--日志传送(4-2)--部署 本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项.从上 ...

随机推荐

  1. IT人生的价值和意义 感觉真的有了

     为了做新闻APP,我居然短短一个月利用业余时间做了: 一个通用新闻采集器. 一个新闻后台审核网站. 一个通用采集器下载网站. 一个新闻微网站. 一个新闻APP, 而且还给新闻微网站和新闻 APP练就 ...

  2. PHP 判断字符串 是否 包含另一个字符串

    1.stristr 忽略大小写 $string = 'Hello World!'; if(stristr($string, 'earth') === FALSE) { echo '"eart ...

  3. transform旋转变换效果

    div{ transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg); /* ...

  4. C# OracleHelper

    using System; using System.Configuration; using System.Data; using System.Collections; using Oracle. ...

  5. RabbitMQ的安装和配置化可视界面

    RabbitMQ在windows下的安装 RabbitMQ 它依赖于Erlang,在window上安装时,需要先安装Erlang. 首先确定你的window电脑是32位还是64位,然后下载对应版本的E ...

  6. 10 阻塞队列 & 生产者-消费者模式

    原文:http://www.cnblogs.com/dolphin0520/p/3932906.html 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue.LinkedList(Li ...

  7. jquery点击按钮或链接,第一次与第二次执行不同的事件

    本文和大家分享一个jquery的实例,这个实例实现的是点击网页里的按钮或链接,第一次和第二次会执行不同的事件,也就是两个事件会轮流执行. <script language="javas ...

  8. TypeScript 乱糟笔记

    数组头上插一个值. var arr: Array<String> = ['a', 'b', 'c'];arr.unshift('d'); object删除元素. var obj: Obje ...

  9. C# 空合并运算符 ??

    C#语言中,??运算符称为空合并运算符: a??b形式的空合并表达式要求a为可以为null的类型或引用类型.如果a为非null,则a??b的结果为a:否则,结果为b.仅当a为null时,该操作才计算b ...

  10. 京东-Java开发工程师-一面

    时间:2017-4-7 16:47 时长:32分19秒 类型:笔试前电话面试 之前打过一个电话过来说了一声,下午就直接打过来面试了,没有自我介绍貌似 1. 你做的这些东西是什么样的? 2. 选一个你觉 ...