数据库集群技术有哪些?

数据库集群技术有哪些?
集群软件的分类:
一般来讲,集群软件根据侧重的方向和试图解决的问题,分为三大类:高性能集群(High performance cluster,HPC)、负载均衡集群(Load balance cluster, LBC),高可用性集群(High availability cluster,HAC)。
按照集群工作的层面,可分为:数据库服务器集群,应用服务器集群,交换机集群等
按照集群的架构,可分为:共享磁盘型,非共享磁盘型。
按照集群粒度不同:基于IO;基于操作系统;基于数据库实例的;基于每个数据库的等。

什么是高性能集群
高性能集群(High performance cluster,HPC),它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多;
什么是负载均衡集群
负载均衡集群(Load balance cluster, LBC),它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的响应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能响应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系统的可用性和稳定性。这类集群在网站中使用较多;
什么是高可用性集群
高可用性集群(High availability cluster,HAC),它是利用集群中系统 的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用。
数据库集群的现状
数据库集群是将计算机集群技术引入到数据库中来实现的,有数据库厂商自己开发的;也有第三方的集群公司开发的;还有数据库厂商与第三方集群公司合作开发的,各类集群实现的功能及架构也不尽相同
Oracle’s Real Application Cluster (RAC)
 Microsoft SQL Cluster Server (MSCS)
IBM’s DB2 UDB High Availability Cluster(UDB)
 Sybase ASE High Availability Cluster (ASE)
 MySQL High Availability Cluster (MySQL CS)
基于IO的第三方HA(高可用性)集群
RAC(Real Application Cluster,真正应用集群)是Oracle9i数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。它的出现解决了传统数据库应用中面临的一个重要问题:高性能、高可伸缩性与低价格之间的矛盾。在很长一段时间里,甲骨文都以其实时应用集群技术(Real Application Cluster,RAC)统治着集群数据库市场。
其余供应商似乎主要将重点放在了可用性上。例如,xkoto公司(该公司为DB2提供集群技术)最初的计划本来是着眼于DB2的性能,不过他们现在的立场已经发生了变化,他们现在认为“性能固然重要,但真正需要解决的问题是持续可用性”。
您为什么需要集群
伴随着企业的成长,在业务量提高的同时,系统的访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的需求。于是,人们希望通过几个中小型服务器组建集群,实现数据库的负载均衡,在需要更高数据库处理速度,我们只要简单地增加数据库服务器就可以得到扩展。

数据库作为应用系统的核心,在企业的IT系统中起着非常重要的作用,单一设备根本无法保证系统的持续运行,发生系统故障,严重影响系统的正常运行,甚至带来巨大的经济损失。于是人们希望通过组建数据库集群,来保证系统的可用性,一旦某节点发生故障,系统会自动故障转移,实现系统的持续工作。

企业的数据是企业的一些重要信息,一些核心数据甚至关系着企业的命脉,单一设备根本无法保证数据的安全性,一旦发生丢失,很难再找回来,于是人们希望通过组建数据库集群,实现数据集群的冗余,通过多份数据来保证安全性。


问:SQL Server自身提供的集群有哪些,和Moebius 集群有什么区别?
答:SQL Server自身提供的集群技术有两种:失败转移集群(MSCS)和镜像(Mirror)
失败转移集群(MSCS),这是一种基于共享磁盘架构的高可用集群,是操作系统级别的集群;
镜像(Mirror),是一种共享磁盘架构的高可用集群,是数据库级别的集群。
它们共同的特点就可以保证系统的可用性,但是对性能没有丝毫的提升,甚至较单机还有下降,事实上SQL Server数据库只运行在一个节点上,当出现故障时,另一个节点只是作为这个节点的备份;因为始终只有一个节点在运行,在性能上也得不到提升,系统也就不具备扩展的能力。当现有的机器不能满足应用的负载时只能更换更高配置的机器,而且是一次性更换两台。
Moebius集群研究的范畴
在SQL Server数据库平台上开发的,用于实现数据库的负载均衡,同时提高数据库可用性,保证数据安全性的综合集群方案。Moebius集群基于每个数据库实现,粒度更小,应用起来更加灵活方便;结构上采用无共享磁盘架构,横向扩展,具有良好的伸缩性;设计上,采用与SQL Server高度集成的方式,将Moebius中间间宿主于SQL Server的引擎中,将Moebius集群的配置管理器集成到SQL Server Management Studio管理工具中,不论是管理还是开发上,最大程度地顺应了用户的使用习惯。
Moebius集群常见问题?
1.    问:使用Moebius集群软件搭建集群是不是还要搭建MSCS(微软失败转移集群)或第三方HA(高可用)集群?
    答: 不需要,Moebius集群是一个单独的集群软件,是基于SQL Server数据库平台开发的,在应用时不依赖于其它的集群软件。
2.    问:Moebius集群支持无共享磁盘架构,若我现在已经搭建MSCS,使用了共享磁盘,怎么办?
    答:Moebius 集群也支持在共享磁盘架构上搭建集群,只是有两份相同的数据存放在同一个存储中。
3.    问:我一台服务器上有多个SQL Server数据库,会不会影响我使用Moebius集群?
    答:不会影响,Moebius 集群是基于数据库级别的集群,可以将多个数据库搭建成多组集群。
4.    问:Moebius集群中的机器是不是一定要求一致,一个4CPU机器能不能和一个2CPU机器搭建集群?
    答:可以,使用Moebius集群时,可以根据节点性能的不同,配置不同的权重,4CPU机器多分配些压力,2CPU机器少分配一些压力。
5.    问:我的应用程序很复杂,数据库的表结构也很复杂,是不是使用Moebius集群需要要我们更改应用程序,更该数据库结构?
答: 在Moebius集群中,我们将客户的应用体验放在了很高的位置,客户不必担心由于使用Moebius集群而更改原有程序,Moebius集群是和SQLServer数据库高度集成的,Moebius配置管理器集成到SQLServer的Management Studio管理工具中,Moebius 中间件宿主在SQLServer的数据库引擎中,整个集群对外只暴露一个IP地址,您不但不需要更改程序而且不用改变使用习惯,透明性非常好。
6.    问:Moebius集群中提供几种连接数据库的方法,负载均衡如何来实现?
答:共提供了三种方式,
1、通过格瑞趋势专门为数据库集群定制的负载均衡软件Loadbalancing Director来连接数据库。2、通过负载均衡硬件来连接数据库,如F5等。3、通过其它的负载均衡软件来连接数据库。
7.    问:使用LB Director负载均衡软件连接数据库集群是不是消耗很大?
    答: 不是,LoadBalancing Director是一个Windows服务,根据后端数据库服务器的压力的不同,合理的进行分发。
8.    问:使用LB Director负载均衡软件具体如何连接数据库?
    答: LB Director负载均衡软件可以部署在一台单独的服务器上,也可以部署在应用程序所在的服务器上。
9.    问:使用Moebius集群,管理工具是不是要增加额外的机器?有多少个节点,是不是就要安装多少次?
    答: 不需要,首先,Moebius集群的配置管理器集成到SQLServer的Management Studio管理工具中,不需要您增加额外的机器;在您安装Moebius for SQL Server 时,您实际上安装的是Moebius集群的配置管理器,通过配置管理器来部署集群,在部署的过程中,Moebius 中间件会自动创建到其它服务器的数据库节点上去。
10.    问:由于业务逻辑复杂,某SQL语句在单机上执行时间为5分钟,搭建Moebius集群后,若是两个节点,那么是不是要执行10分钟?
    答:不是,Moebius集群中,首先在集群中的一个节点上执行,花费的时间也是5分钟,中间件监测到数据有变化,将变化的数据同步到其它节点,不需要在另一节点上重新执行。
11.    问:在同步数据的过程中,若同步到一个节点花费的时间是10毫秒,那么同步到2个节点花费的时间是不是20毫秒?3个节点是不是30毫秒?
    答:不是,在同步数据的过程是以一个并发的形式进行的,所以这个时间和同步到一个节点花费的时间应该是基本相同。
12.    问:数据同步的具体消耗是多少?
    答:消耗是和实际的应用场景以及硬件环境有关系的,假设在环境相同的情况下,以某次测试的真实数据来说,单机执行3毫秒;在集群环境下执行3.5毫秒。
13.    问:Moebius在同步数据的过程中是如何保证数据一致性的?
    答:Moebius中间件宿主在SQL Server里面,监测数据的变化,当有数剧变化时,中间件才工作,同步工作是在一个分布式事务中完成的,由MSDTC保证,所以数据是一致的。
14.    问:使用MSDTC来保证事务的一致性是不是会增加额外的消耗,消耗会不会很大?
    答:不是,首先分布式事务是有消耗,要比本地事务消耗大一点儿。
15.    问:Moebius集群和SQL Server的镜像有什么区别?
    答: 相同:都采用了基于事务日志的复制技术
a)    不同:镜像中只有一个服务器可读写,镜像服务器处于recoveing状态,是不能提供读写服务的(可以通过快照做报表等,详细参考MS镜像相关介绍;在Moebius集群中,两个节点是处于同等地位的,都是可读写的,可以有效均衡访问压力的。
b)    在复制日志的过程中镜像是严格按照日志的顺序逐条传送的,在Moebius集群中,采用了传输压缩以及智能同步策略,以最小的消耗完成数据的同步(详细参考Moebius帮助文档中中间件的同步策略及传输压缩部分)
16.    问:我不知道Moebius集群是否适合我当前的应用,到底对我的数据库能提升多大性能,若想得出一个直观的测试结果,我该怎么做?
    答: 确实,在不同的应用场景、不同的硬件环境,所表现出来的性能提升是有差别的,建议您将自己的真实业务的还原到测试环境中,通过实际的测试数据来得出结论。格瑞趋势提供了专门的测试工具,您也可以用专业的测试工具如LoadRunner等

部署Moebius集群时操作系统问题列表?
1.    现象:Cannot use SAVE TRANSACTION within a distributed transaction.或者:不能在分布式事务内部使用 SAVE TRANSACTION
解决办法:升级到版本2047以上
2.    现象:不允许启动新请求,因为该请求应具有有效的事务描述符
解决办法:属于一个.Net 2.0的Bug,打hotfix:ndp20-kb916002-x86
3.    现象:在使用DTC ping的时候会出现一个警告"Warning: the CID values for both test machines are the same"
    原因:克隆的操作系统导致
    解决:添加/删除

4.    现象:win 2000上不能启动分布式错误:
 
解决办法:打开注册表,HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC   
修改以下两项:
      AllowonlySecureRpcCalls=0   
      TurnoffRpcSecurity=1
5.    现象:
 
解决办法:
1、    安装.net补丁文件   extensibilitymsm.msi
2、    在命令行中执行
3、    %SYSTEMROOT%\Microsoft.net\Framework\v2.0.50727\regasm "C:\Program Files\Moebius for SQL Server 2005\GRQSH.Moebius.Studio.dll"
4、     cdC:\ProgramFiles\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE
5、    qlWb.exe /setup

部署中问题列表
1.    现象:添加第二个节点不成功
原因:没有按照用户手册中的说明操作,在添加第二个或其他节点时,这些节点的数据库都是由首节点备份还原所得到。
 
2.    现象:添加好后,保存不成功
 
3.    原因:
1、    DTC服务没配置,注意不论是操作工具还是数据节点说在的服务器都要配置DTC服务。
2、    防火墙开启,请暂时关闭防火墙,或者将DTC所涉及的端口全部开启。
3、    克隆操作系统
4.    克隆操作系统解决办法:
6、    Use Add Windows Components, and remove Network DTC.
7、    Go to the command line and run: MSDTC -uninstall
8、    Go to the registry and delete the MSDTC keys in
HKLM/Software/Microsoft/Software/MSDTC, HKLM/System/CurrentControlSet/Services/MSDTC, and HKEY_CLASSES_ROOT\CID (if they're still there).
9、    Reboot
10、    Go to the command line and run: MSDTC -install
11、    Use Add Windows Components, and add Network DTC.
12、    Go to the command line and run: net start msdtc


 

你可能感兴趣的:(数据库)