一、为什么要使用对等事务复制

首先要说明的是使用sqlserver复制的目的

使用sqlserver数据库复制的目的,就是要将数据库压力由一台服务器分散到多台服务器,通过一台sqlserver服务器作为主机,将主数据库中的数据,复制到其他N台备份服务器上,从而实现分布式查询,大大降低了主服务器的压力.

在图一中,右面的拓扑结构就是典型的复制,写入的压力,全都在B这台服务器上,读取的压力平衡到两台机器上

图一

综上所述,使用sqlserver复制的目的就是均衡压力,提高sqlserver的高可用性

类似的能够提高数据库高可用性的解决方案目前有四种

1 windows集群实现sqlserver双机热备

2 sqlserver 数据库镜像

3 sqlserver日志传送

4 sqlserver复制

在这四种解决方案中,能够满足分布式数据库需求的只有sqlserver复制

其次为什么要使用事务复制呢?在sqlserver复制技术中,共有三种

1 快照复制

2 事务复制

3 合并复制

在这三种复制技术中

快照复制最简单,定时将主数据库中的所有数据,同步到其他备份机器中,这样做的缺点有两点,1 数据同步定时,不即时;2 浪费I/O资源,每次同步都是将主数据库中的所有数据同步到其他备份机器上.快照复制的主要用途是定期初始化备份机,例如在进行事务复制时可用设定每周进行一次快照复制,有效的保证了主数据库与其他备份数据库的数据一致性.

合并复制较为复杂,在合并复制中 主数据库与其他备份数据库可以同时修改一条数据,当发生冲突是,处理起来较为复杂.

事务复制是最适合做分布式的,首先,要求主数据库和其他备份数据库中的架构和数据一致(可以通过使用相同的备份还原,快照复制等方法),当数据库运行时,只用当主数据库中的架构或者数据发生变动,才产生事务将变动同步到其他备份数据库上.相比快照复制,同步即时,又省I/O资源.相比合并复制,简单,可靠.

那为什么要使用对等事务复制呢?

在sqlserver 事务复制中,又分为三种方式

1 标准事务复制

2 层次结构更新订阅事务复制

3 对等事务复制

在上面,介绍复制技术的三种方式中,已经将了标准事务复制的好处,但是这里要讲讲它的缺点,大家可以再仔细看看图一,就会发现,所有写入压力都在B这台服务器上,也就是说事务复制的瓶颈在于主服务器,当主服务器挂掉时,虽然其他备份数据依然可以提供读取服务,但是这个数据库系统已经挂掉了,不能写入了.

这时应该怎么办?别担心,Microsoft已经为我们提供了解决方案,那就是 可更新订阅的事务复制和对等事务复制

可更新订阅的事务复制有一个特性,可以同时在多个位置(服务器)更改同一行。这必然会带来冲突.

所以我们选择了对等事务复制,同一行在同一时间只能在一个位置修改.

图一中,左边的图,就是典型的对等事务复制,不单单读取的压力被分散到多台服务器上,连写入的压力也被分散了.

图二中就是一个典型的对等事务复制实施案例

图二

上图显示了三个参与数据库,它们作为一家在洛杉矶、伦敦和台北均设有办事处的国际软件支持单位的后端数据库。每个办事处的支持工程师接听客户电话,并输入和更新每个客户电话的相关信息。三个办事处的时区各相差八小时,因此不会出现工作日的重叠:台北办事处下班时,伦敦办事处正开始一天的工作。如果办事处下班时电话仍在进行中,则电话将被转接到下一个开始办公的办事处的代表。

每个地点都有一台数据库服务器和一台应用程序服务器,供支持工程师在输入和更新客户电话的相关信息时使用。拓扑按时间进行分区,因此更新只发生在正在办公的节点。然后更新流动到其他参与数据库。此拓扑具有下列优点:

·                独立,但不孤立:每个办事处都可以独立插入、更新或删除数据,还可以共享数据,因为数据将复制到其他所有的参与数据库。

·                出现故障或维护任一参与数据库的同时可提供更高的可用性。

图三

上图显示了向三节点拓扑添加节点的过程。当出现下列情形时,可以添加一个节点:

·                因为又开设了一家办事处。

·                为了提供更高的可用性以支持维护或提高发生灾难性错误时的容错能力。

·                请注意:在三节点拓扑和四节点拓扑中,所有的数据库都向其他数据库发布和订阅,从而在需要维护或者一个或多个节点发生故障时,提供最大的可用性。添加节点后,必须针对性能以及部署和管理的复杂性来权衡可用性和可伸缩性的需要。

二、怎样实现对等事务复制

在这里,将演示怎样配置两个sqlserver实例中的数据库来实现对等事务复制

首先要介绍下试验环境,YUANLQ\SQLSERVER2005和.\SQLSERVERcopy

主数据库就是YUANLQ\SQLSERVER2005中,实例数据库AdventureWorks

前提条件

1 .\SQLSERVERcopy中需要有一个和主数据库结构完全一样的数据库,在这里我们使用advW来进行演示

2 确保所有sqlserver实例的代理服务器都开启,下图中,两个sqlserver实例的代理都亮起了绿色,表示运行正常.

在这里要说明的一点,这两个实例都曾发布过复制,并且分发服务器选择的都是本地,所以,在演示中不会出现要求配置分发服务器的界面

开始配置

首先在 主机上发布事务复制

选择需要对等事务复制的数据库

下一步,选择复制方式 事务复制

下一步 选择要发布的对象 在这里选择全部

下一步,这里说明了某些问题可能导致更改程序

下一步,由于对等事务复制不支持筛选,所以这里直接跳过

下一步, 因为备份数据库中个结构和数据与主数据库完全一致,所以这里什么都不选,直接跳过

下一步,配置代理,点击快照代理的安全设置

进入 安全设置中,在这里,推荐做法是专门为代理设置widows帐户,我这里偷懒了

下面的一项是发布服务器帐户,我专门为它开通了一个sqlserver登陆账户

确定之后回到 代理安全性

下一步 创建发布

需要给发布一个名称

点击完成,开始发布

发布完成

点击关闭就好了

想要进行对等事务复制还要修改复制属性

在备份实例中,也要进行相应的操作,只是要注意一点,发布名称要和主数据库实例中的发布名称一致就好了,下图中,能够看到 两个sqlserver实例都发布了自己的事务复制

下面开始配置对等事务复制,这里需要注意的是,只须在主服务器上配置就可以了

这里需要将所有备份数据库所在的sqlserver实例添加进来,点击添加sqlserver

登陆到这些备份sqlserver实例上去,选择对等数据库

点击红色圆圈中的按钮

下一步

最终,我们能够看到,两个sqlserver实例都发布了自己的事务复制,也都订阅了对方的事务复制

=================================================

赶快连接两个sqlserver实例试试吧,修改其中任何一个库中的数据,过1到2秒之后,就会同步到另一个库中.

配置对等事务复制完毕.

转载于:https://www.cnblogs.com/gaofeng-soft/archive/2011/05/31/2065263.html

sqlserver2005分布式架构负载相关推荐

  1. 【从单体架构到分布式架构】(二)请求增多,单点变集群(1):负载均衡

    这是我的第 47 篇原创文章作者 l 会点代码的大叔(CodeDaShu) 上一个章节,我们搭建了一个最简单的单体服务项目,单体架构就是把所有的功能都放在一个工程项目中. 但是当访问量不断增加,我们只 ...

  2. 单一nginx负载均衡+LNMP分布式架构

    随着互联网的快速发展,我们的web站点访问量和数据流量的快速增长,对于我们服务器的处理能里的要求也越来越高,这样的情况下,单一的服务器根本无法承受,  这样的话我们丢弃掉原有的设备,做硬件升级,会造成 ...

  3. 负载均衡在分布式架构中是怎么玩起来的?

    什么是负载均衡(Load balancing) 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战.这时候我们就会想到通过扩容的方式来 ...

  4. 分布式架构下的“负载均衡”

    分布式架构下的"负载均衡" 在网站创立初期,我们一般都使用单台机器提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战.这时候我们就会想到通过扩容的方式来提供 ...

  5. Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载)

    Java开源生鲜电商平台-Java分布式以及负载均衡架构与设计详解(源码可下载) 说明:主要是针对一些中大型的项目需要进行分布式以及负载均衡的架构提一些思路与建议. 面对大量用户访问.高并发请求,海量 ...

  6. Windows平台分布式架构实践 - 负载均衡

    Windows平台分布式架构实践 - 负载均衡 概述 http://www.cnblogs.com/jesse2013/p/dlws-loadbalancer.html 最近.NET的世界开始闹腾了, ...

  7. 一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等

    1.引言 关于"负载均衡"的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务. 负载均衡(Load ...

  8. 【分布式架构】“高并发” -- 详解

    一.什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求. 高并发相关常用的一些指标有 1响应时 ...

  9. 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

最新文章

  1. 如何做好网络推广浅析新手对网站SEO内链该如何优化?
  2. 科大星云诗社动态20210210
  3. 什么是 Web 应用性能评测领域的 RAIL 模型
  4. JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性
  5. 如何安装tensorflowGPU环境搭建(不报AVX2的警告)
  6. CleanMyMac v4.10.1支持Monterey 12.x
  7. IPsec的NAT穿越详解
  8. 天猫精灵服务器修改密码,天猫精灵怎么解绑 天猫精灵解绑账号方法
  9. 数据分析报告的 8 种颜色
  10. 关于base64编码解码(Android编码,JS解码,案例为解决安卓端H5页面的emoji表情显示问题)
  11. Alist保姆级搭建教程
  12. win10无法连接到win7系统更新服务器,win10系统提示无法连接到windows服务的解决方法...
  13. IntelliJ IDEA 15 Released 破解 注册码
  14. MyEclipse 9 0正式版官网下载(附Win+Llinux激活方法 汉化包)
  15. Arduino智能小车——循迹篇
  16. miix5 u盘安装linux,联想Miix510U盘装系统win10教程
  17. excel html 查询,html 连接 excel表格数据库数据-利用EXCEL表格为数据库制作查询网页...
  18. 移动护理中病人显示的内容
  19. 2017冬季24集训模拟-4.排座椅
  20. python true和false是什么,Python True真和False假的含义是什么?

热门文章

  1. 深度学习在CTR中的应用
  2. hbase获取region以及读取每个region的第一行
  3. Nutch+Hadoop集群搭建
  4. 初学者也能看懂的DPDK解析
  5. 用贝叶斯来看看抛硬币的概率
  6. node.js 使用----相关常用命令总结
  7. 基于ASP.NET MVC的ABP框架入门学习教程
  8. sqlplus 格式化一例
  9. 【168天】黑马程序员27天视频学习笔记【Day07】
  10. 理解离散傅立叶变换(一. 傅立叶变换的由来)