SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Transaction Replication(事务复制)
复制类型:
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
参考:
SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Transaction Replication(事务复制)的更多相关文章
- SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之AlwaysOn可用性组搭建
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域、DNS服务器和Windows故障转移群集(准备工作)
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn可用性组(理论篇)
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Windows故障转移群集
WSFC 群集 (WSFC cluster)“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性. 故障转移群集实例 (Fail ...
- SQL Server高可用——日志传送(4-1)——概论
原文:SQL Server高可用--日志传送(4-1)--概论 本文作为学习总结,部分内容出自联机丛书及其他书籍 日志传送是什么? SQLServer 2012之前(2012出现了AlwaysOn), ...
- 深入解析 SQL Server 高可用镜像实现原理
作者:郭忆 本文由 网易云 发布. SQL Server 是 windows 平台 .NET 架构下标配数据库解决方案,与 Oracle.MySQL 共同构成了 DB-Engines Ranking ...
- 深入解析SQL Server高可用镜像实现原理
本文来自网易云社区 SQL Server 是windows平台.NET架构下标配数据库解决方案,与Oracle.MySQL共同构成了DB-Engines Ranking的第一阵营,在国内外企业市场中有 ...
- 京东云数据库RDS SQL Server高可用概述
数据库的高可用是指在硬件.软件故障发生时,可以将业务从发生故障的数据库节点迁移至备用节点.本文主要讲述SQL Server高可用方案,以及京东云RDS数据库的高可用实现. 一.高可用解决方案总览 1. ...
- SQL Server高可用——日志传送(4-3)——使用
原文:SQL Server高可用--日志传送(4-3)--使用 顺接上一篇:SQL Server高可用--日志传送(4-2)--部署 本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项.从上 ...
随机推荐
- Android:刚6瓶啤酒4两56度白酒下肚,居然20分钟做了一手机版网站 !
刚6瓶啤酒4两56度白酒下肚,居然20分钟不到时间做了一手机版网站 !人有多大潜力你知道吗? 大家有兴趣的可以用手机或微信打开 http://xh.yunxunmi.com/ 看看俺这酒后之做! 更 ...
- (转)sysbench部署与参数详解
sysbench部署 原文:https://wing324.github.io/2017/02/07/sysbench%E9%83%A8%E7%BD%B2/ sysbench作为每一个系统管理员,都应 ...
- 关于c#中”ref”和”out”关键字的一些理解
一. 综述(本文内容大部分来自网络,经本人整理而成,仅供学习参考,不免理解错误,欢迎批评指正) 在c#中,方法的参数传递有四种类型: (1) 传值参数(by value) 传值参数无需额外的修饰符.传 ...
- Chapter 14. Blocks and Statements
14.5. Statements There are many kinds of statements in the Java programming language. Most correspon ...
- AngularJS Eclipse Plugin
本文介绍如何安装和配置 AngularJS Eclipse.AngularJS Eclipse 插件是基于强大的 JavaScript 推断引擎(javascript inference engine ...
- docker搭建gitlab,设置邮件提醒,并运行runner
接着http://www.cnblogs.com/wsy1030/p/8431837.html 在另一台机子运行gitlab: docker run --name='gitlab' -d -p 222 ...
- Java 中 String 的常用方法(一)
上一篇介绍了 String 中的几个常用构造方法,由 String 这个核心对象发散出去关于字符的编码,字符的字节表达,对 GC 的影响,正则表达式,模式匹配,这可能是 Java 里内涵最丰富的对象了 ...
- 浅谈内存映射I/O(MMIO)与端口映射I/O(PMIO)的区别
最近在看NVMeDirect和SPDK的源码,觉得有必要梳理一下MMIO和PMIO的区别.关于MMIO和PMIO,维基百科上是这么讲滴, Memory-mapped I/O (MMIO) and po ...
- 设计模式笔记-观察者(Observer)
观察者设计模式应该是比较简单的一个设计模式. 定义 定义了对象之间的一对多依赖,这样以来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 简单理解就是: 当1个对象状态有所改变的时候,依 ...
- 《Think Python》第8章学习笔记
目录 8.1 字符串是一个序列(A string is a sequence) 8.2 len 8.3 用一个 for 循环进行遍历(Traversal with a for loop) 8.4 字符 ...