大数据时代下的SQL Server第三方负载均衡方案 ----Moebius测试
- 本文所涉及的内容(Contents)
- 背景(Contexts)
- 架构原理(Architecture)
- 测试环境(Environment)
- 安装Moebius(Install)
- Moebius测试(Testing)
- 负载均衡测试(Load Balancing Testing)
- 高可用性测试(Failover Testing)
- 数据安全性测试(Security Testing)
- 总结(Summary)
二.背景(Contexts)
前几天在SQL Server MVP宋大侠(宋沄剑)的一篇文章"数据库集群技术漫谈”中看到了格瑞趋势在SQL Server上的负载均衡产品Moebius,搞数据库的都知道:在Oracle上有RAC,MySQL也有对应的方案(可参考:MySQL搭建Amoeba系列),而SQL Server上直到SQL Server 2012版本的AlwaysOn到来,微软都没有提供一个负载均衡方案,我从宋大侠那里找来一个Moebius的测试版本进行一下测试,下面是我测试的过程。
三.架构原理(Architecture)
(Figure1:Moebius for SQL Server逻辑架构图)
四.测试环境(Environment)
操作系统:Windows Server 2008 R2
数据库版本:SQL Server 2012
服务器A:10.0.0.1
服务器B:10.0.0.2
虚拟IP:10.0.0.15
五.安装Moebius(Install)
Moebius的安装非常简便,在装有SQL Server引擎的服务器上直接点击安装包进行安装,安装过程中一直下一步即可。在此就不再多说。
在此交待一下我的测试环境,是两台虚拟机,IP分别为10.0.0.1和10.0.0.2,操作系统和SQL Server的版本分别为Windows Server 2012和SQL Server 2012。安装完成后在Management Studio管理工具中右击数据库,在弹出菜单中即可找到Moebius的菜单,如Figure2所示。
(Figure2:Moebius for SQL Server 2012)
安装完成后,打开配置管理器界面,如Figure3所示。
(Figure3:Moebius for SQL Server 2012)
分别将10.0.0.1和10.0.0.2这两台服务器加入集群,这里可以注意到,Moebius是以数据库为粒度的,相比实例而言,该种粒度会更加灵活,如Figure4所示。
(Figure4:设置数据库)
将10.0.0.1和10.0.0.2两台服务器的数据库分别加入集群后,建立虚拟IP和端口,建立的虚拟IP为10.0.0.15,端口为5000,之后所有前端应用的连接就可以通过该虚拟IP进行了,完全不需要理会后端的架构,可以让前端与后端解耦,如Figure5和Figure6所示。
(Figure5:设置虚拟IP)
(Figure6:设置连接属性)
建立完成后,集群就配置好了,效果如Figure7所示。
(Figure7:Moebius for SQL Server 2012)
六.Moebius测试(Testing)
(一).负载均衡测试(Load Balancing Testing)
集群的搭建完成后,就可以开始对集群进行测试。首先是负载均衡测试。负载均衡的测试办法是使用压力测试工具,然后分别查看两个实例的Profiler,根据我咨询宋沄剑的说法是,负载均衡的算法是默认根据两台服务器的过去一段时间采集的性能指标进行分析,优先将查询导到负载低的服务器中,但集群刚搭建的时候没有历史数据,则按照平均分配的原则。下面是我使用SQLQueryStress进行负载均衡测试的结果,如Figure8所示。我开了100个线程,每个线程循环10次,来进行一个非常简单的查询。
(Figure8:SQLQueryStress压力测试)
得到的结果如Figure9、Figure10所示,从图可以看到:负载基本被平均分配到两台服务器(由于测试工具每个查询都会附上Set Statistics IO On和Time On,因此负载应该为100个线程*10次循环*2)。
(Figure9:Profiler跟踪信息)
(Figure10:Profiler跟踪信息)
由Figure9、Figure10大概可以看出:负载基本被平均分配到集群中的两台服务器中。
(二).高可用性测试(Failover Testing)
接下来就是测试高可用性。高可用的测试我主要集中于故障转移切换的速度。首先,我开100个线程,每个线程循环20次,在集群上运行负载均衡,如Figure11所示。
(Figure11:SQLQueryStress)
Figure11大概执行了20秒,此时我再次执行,并在执行过程中,强制关闭集群中10.0.0.1的SQL Server服务,运行结果如Figure12所示。
(Figure12:SQLQueryStress)
我们看到,已经发送到到10.0.0.1服务器的部分事务给前端应用程序提示失败并回滚,除去停止服务所花的时间,以及所有的查询由10.0.0.1和10.0.0.2负载均衡执行,到仅仅只剩下10.0.0.2单独执行所花的时间,故障转移的切换时间在10秒以内,这个速度已经和SQL Server的镜像几乎持平了。
此时,再来看Moebius集群管理器,就发现10.0.0.1服务器已经被集群脱机,且虚拟IP已经漂移到了10.0.0.2,如Figure13所示。
(Figure13:Moebius for SQL Server 2012)
(三).数据安全性测试(Security Testing)
在Figure13描述的情况之后,此时只有10.0.0.2一台服务器处于活的状态 ,因为Moebius采用的是Share-Nothing架构,因此应该可以利用冗余数据防止数据丢失,从而保证了数据安全。此时我在10.0.0.2上新建立一张表Demo。并重新启动10.0.0.1的数据库服务,在Moebius中重新联机,如Figure14、Figure15所示。
(Figure14:Moebius for SQL Server 2012)
(Figure15:Moebius for SQL Server 2012)
在联机的过程中,有一个恢复差异数据的步骤,联机完成后我们来看10.0.0.1数据库,Demo表已经咋恢复差异数据的时候被自动同步了,如Figure16所示。
(Figure16:Demo表)
七.小结(Summary)
通过上面对Moebius的简单测试来看,Moebius的确实现了对SQL Server的负载均衡、高可用以及保证数据的安全。对于国内能够有公司实现类似Oracle RAC这样的负载均衡方案还是让我非常惊讶的,如果该结果在复杂的数据库环境下依然能够保持同样的结果,那么这个方案对于使用SQL Server的大公司来说价值就非常大了,有机会我再进行复杂一些的测试。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL Server几乎能在所有的系统和平台中进行数据的处理,作为最为普及的数据处理软件之一。那么,关于它的负载均衡问题我们也应该掌握好。那么对于这个问题,下文就将为大家详细介绍一下。望大家能对此部分的知识内容能有所了解。
然而,长期以来,SQL Server数据库服务器都只有“热备"的解决方案,而没有“负载均衡" 和“集群"的解决方案。这种解决方案固然提升了系统的可靠性,但也存在一些问题:
◆面对大数据量和大量的数据库查询请求,只能采取纵向提升服务器档次的方法,而纵向提升的成本远远高于横向扩展。
◆在热备时,数据库服务器只有一台在工作,另一台处于闲置备份的状态,造成了投资的浪费。
◆非实时切换。
而数据库路由器软件ICX的出现,为基于MS SQL Server的数据库系统提供了一种更优秀的集群解决方案。它可以真正的实现SQL Server数据库服务器的动态负载均衡,提高性能和速度;它可以真正的保证SQL Server数据库服务器不间断的提供服务,在服务器发生故障的时候实时切换到其他服务器上继续提供服务,切换时间为“零"。
数据库路由器是实时并发数据库事务处理同步复制器和负载平衡器。
数据库路由器--ICX(意思是:I SEE X DATABASE SERVERS),也就是说,在ICX后面可以同时连接N个数据库,结构如下图所示:
1.所有的数据库客户都通过ICX访问数据库。当访问、查询SQL Server数据库的时候ICX可以根据实际情况分配服务器来提供服务,大大提高服务速度和优化性能,完成负载均衡。
2.ICX可以同时连接多台数据库(2-16台,具体连多少台,看客户的具体需求而定),这若干台数据库的内容在任何时刻由ICX保证是完全一致的。也就是说,ICX采用了全新的并发事务处理的方式,向连接的N台数据库同步复制事务处理,使得系统在任何时刻具有多个一致的最新逻辑数据库数据集。当其中一台数据库服务器发生故障的时候,ICX可以实时的、第一时间切换到其他服务器上来继续提供服务。真正的实现零时间的服务器切换,大大提高安全性,真正意义的实现服务器不间断服
大数据时代下的SQL Server第三方负载均衡方案 ----Moebius测试相关推荐
- 大数据时代下房地产市场变革,微构房产大数据信息化应用简析
导读 大数据是看待市场的全新角度,将极大的改变土地.工程.营销.售后.物业等房地产企业经营运作的所有流程.本文从房企市场.数据类型.数据价值.应用场景等方面简要分析大数据时代下的房企应用. 随着房地产 ...
- 独家 | Michael I.Jordan:大数据时代下的安全实时决策堆栈与增强学习(视频+精华笔记)
金秋九月,2017国际大数据产业技术创新高峰论坛暨大数据系统软件国家工程实验室第一次会议盛大开幕,大数据系统软件国家工程实验室作为大数据系统软件技术研发与工程化的国家级创新平台,将通过大数据系统软件技 ...
- 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)...
柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重 ...
- 在大数据时代下金融风控的分类
@Date:2018-05-24 @Author:等等 依托城市数据湖海量数据资源,尤其是在信贷领域对企业或者个人的个人信贷画像描述评判准则已经是第三方房贷企业或者银行对借贷人的评分标准.风控建模以数 ...
- Thinking in BigData(二)大数据时代下的变革
大数据时代的思维变革 A Revolution That Will Transform How We Live, Work, and Think. 不期而遇的一本<大数据时代>将我引进大数 ...
- 爱肤宝医生产品负责人王照陆:大数据时代下的人工智能医疗
嘉宾介绍 王照陆:爱肤宝医生产品负责人.前华为研发工程师,CSDN博客专家,同济大学MBA,负责过医疗智能硬件血压.血糖.体脂等产品设计与数据分析:现负责皮肤医疗大数据产品,从0-1实现皮肤轻问诊预约 ...
- 精华 | 恩墨学院侯圣文:大数据时代下的 DBA 该何去何从?
嘉宾演讲视频 Guest Video 温馨提示: 本视频时长57分02秒,建议在 WIFI 下观看. 第七届数据技术嘉年华于 2017年11月17日-18日在北京丽都皇冠假日酒店胜利召开,全国各地技术 ...
- 本地差分隐私 随机响应_大数据时代下的隐私保护
本文作者程越强.孙茗珅.韦韬 1 引言 在大数据的时代,越来越多的服务和产品是围绕用户数据(隐私)建立的.这样虽然带来了个性化的服务,提高了服务质量和精度,但是在数据收集.使用以及公布的过程中,用户隐 ...
- 隐私保护与隐私计算研讨会 | 余维仁:大数据时代下需要各界更新对个人隐私保护的固有认识
8月13日下午,由深圳市信息服务业区块链协会.陀螺研究院.矩阵元主办,中国生物识别与计算机视觉科技创新产业联盟.金砖国家未来网络研究院中国分院.中国船舶综合技术经济研究院.深圳市人工智能产业协会.深圳 ...
- 看大数据时代下的IT架构(1)图片服务器之演进史
柯南君的公司最近产品即将上线,由于产品业务对图片的需求与日俱增,花样百出,与此同时,在大数据时代,大流量的冲击下,对图片服务器的压力可想而知,那么今天,柯南君结合互联网的相关热文,加上 ...
最新文章
- android蓝牙扫描中断,一段时间后,Android蓝牙Le扫描仪停止运行
- java如何得到GET和POST请求URL和参数列表(转)
- 超级管理器Android,超级文件管理器app
- Linux环境下Tomcat部署Solr4.x
- windows下SVN日志反馈中文乱码的解决方法
- Windows网络命令行程序
- Java中string,map,json之间的常用转换方法(json转map,map转json,json转string等)
- MTK 一个分支兼容多客户开机Logo方案
- 数学分析 函数的连续性(第4章)
- 神奇的数字之回文数c语言,奇妙的数字
- python移动文件,将一个文件夹里面的文件移动到另一个文件夹
- Windows 4K低延时H265/H264硬编码直播
- Datawhale组队学习开源内容汇总
- 类似三角形数的一般推导公式
- 阿里云服务器购买步骤
- Android程序员二本出身、逆袭网易、一路孤独,idea开发工具
- 一般怎样恢复u盘丢失的文件
- 买卖股票的最佳时间含手续费的代码实现
- python 使用pymssql的基本总结
- JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC