`
zy116494718
  • 浏览: 477776 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库集群

 
阅读更多

      数据库是用来保存计算最终结果的,所以是整个信息系统中的最重要组成部分。在好多人看来,经过几十年的发展,当前的数据库技术已经是非常成熟了,然而,随着互联网的迅速发展,当今企业的数据量、用户数都在以火箭般的速度猛增,在这样一个不断增长的环境下,当前的数据库技术其实还存在不少急迫的技术问题。对于所有的数据库而言,除了记录正确的处理结果之外,它们都面临着四方面的挑战:如何提高处理速度;如何保证数据可用性、数据安全性以及如何实现数据集可扩性?
随着计算机硬件技术的高速发展, PC服务器以其高性能和低廉的价格而倍受广大客户青睐,在WEB应用或高性能计算中,为了追求更高的性能、以及可用性,大家都采用计算机集群技术(将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术);那么在数据库上,能否将多个数据库联在一起组成数据库集群来实现上述目标?这应该是很多人可以联想到的,理想的情况下数据库集群应该做到以下几点:
数据集的可扩性:传统方案当一台服务器处理能力都用尽时,我们一般会替换成一台新的更强大的服务器。这样的扩展方式我们称之为向上扩展,随着服务器处理能力的增强,它们的价格也会更昂贵。在需要更高数据库处理速度,我们只要简单地增加数据库服务器就可以了。这样可以大大减小硬件投资的风险,而且大大提高现有服务的质量。
在任何时刻需要有多个随时可用的实时同步数据服务。为了防灾,最好有多个异地的同步数据服务。这不光会大大增加数据可用性,还会有意想不到巨大处理加速的效益。
数据库的负载均衡(Load Balance):多个数据库服务器可以自动的均衡压力。不像网络的负载均衡那样简单,在数据库上要实现数据库的负载均衡更重要的是解多个决数据库中数据的实时同步。保证任何时刻需要有多个随时可用的实时同步数据服务,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。
1 集群软件的分类:
一般来讲,集群软件根据侧重的方向和试图解决的问题,分为三大类:高性能集群(High performance cluster,HPC)、负载均衡集群(Load balance cluster, LBC),高可用性集群(High availability cluster,HAC)。
高性能集群(High performance cluster,HPC),它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多;
负载均衡集群(Load balance cluster, LBC),它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的响应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能响应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系统的可用性和稳定性。这类集群在网站中使用较多;
高可用性集群(High availability cluster,HAC),它是利用集群中系统 的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用。
2 数据库集群的现状
数据库集群是将计算机集群技术引入到数据库中来实现的,尽管各厂商宣称自己的架构如何的完美,但是始终不能改变Oracle当先,大家追逐的事实,在集群的解决方案上Oracle RAC还是领先于包括微软在内的其它数据库厂商,它能满足客户高可用性、高性能、数据库负载均衡和方便扩展的需求。
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的性能,不过他们现在的立场已经发生了变化,他们现在认为“性能固然重要,但真正需要解决的问题是持续可用性”。类似的情况也出现在其它数据库身上。 接下来我们以微软的集群为代表剖析一下高可用集群的优缺点。
2.1 Microsoft SQL Server 的集群技术介绍
2.1.1 故障转移集群Micosoft Cluster Server(MSCS)


相对于单点来说Micosoft Cluster Server(MSCS)是一个可以提升可用性的技术,Micosoft称之为故障转移集群。
从硬件连接上看,很像Oracle的RAC,两个节点,通过网络连接,共享磁盘;事实上SQLServer数据库只运行在一个节点上,当出现故障时,另一个节点只是作为这个节点的备份;
因为始终只有一个节点在运行,在性能上也得不到提升,系统也就不具备扩展的能力。
当现有的机器不能满足应用的负载时只能更换更高配置的机器。
对于一个小型的应用来说,使用一个共享设备和一个在正常情况下用不到的机器,总体成本的浪费还是很严重的。
从细节上讲,当一个节点出现故障的时候,另一个节点接管业务又是需要一定的步骤和时间。
2.1.2 SQL Server 2005 Mirror
在数据库镜像中,一台SQL Server 2005实例连续不断的将数据库事务日志发送到另一台备用SQL Server实例的数据库副本中。发送方的数据库和服务器担当主角色,而接收方的数据库和服务器担当镜像角色。主服务器和镜像服务器必须是独立的SQL Server 2005实例。
在所有SQL Server数据库中,在对真正的数据页面进行修改之前,数据改变首先都记录在事务日志中。事务日志记录先被放置在内存中的数据库日志缓冲区中,然后尽快地输出到磁盘(或者被硬化)。在数据库镜像中,当主服务器将主数据库的日志缓冲区写入磁盘时,也同时将这些日志记录块发送到镜像实例。
当镜像服务器接收到日志记录块后,首先将日志记录放入镜像数据库的日志缓冲区,然后尽快地将它们硬化到磁盘。稍后镜像服务器会重新执行那些日志记录。由于镜像数据库重新应用了主数据库的事务日志记录,因此复制了发生在主数据库上的数据改变。
主服务器和镜像服务器将对方视为数据库镜像会话中的伙伴。数据库镜像会话包含了镜像伙伴服务器之间的关系。一台给定的伙伴服务器可以同时承担某个数据库的主角色和另一个数据库的镜像角色。
除了两台伙伴服务器(主服务器和镜像服务器),一个数据库会话中可能还包含第三台可选服务器,叫做见证服务器。见证服务器的角色就是启动自动故障转移。当数据库镜像用于高可用性时,如果主服务器突然失败了,如果镜像服务器通过见证服务器确认了主服务器的失败,那么它就自动承担主服务器角色,并且在几秒钟之内就可以向用户提供数据库服务。
2.1.3 结论
微软以其简单易用等优点占据了很大一部分客户,但是同时也不得不面临这样的局面:伴随着企业的发展,企业的数据量和访问量也会迅猛增加(如一些电子商务企业或网站),而这个时候数据库就会面临很大的负载和压力,意味着数据库会成为提升整个信息系统的瓶颈,这个时候大家常常会有两种解决的办法:
第一、升级到综合性能更强大的硬件,带来的问题是硬件的浪费,然而,单节点体系结构最终会达到一个瓶颈并无法实现进一步的有效扩展。具体表现为逐渐缩小的回报率或者价格惊人的昂贵硬件设备。系统得不到可持续的扩展,不能从根本上解决问题;
第二、组建数据库集群,而Microsoft所提供的集群解决方案又不能很好的满足需求,好多用户就面临着要移植到Oracle平台上,采用RAC来解决。大家都知道,这将是一个即费财力又费物力、人力,同时还要面临很大风险的一个艰难过程。
那么有没有一个即不向大机器的方向发展,又不用升级到Oracle RAC上的方案呢?能不能在Microsoft SQL Server的架构上实现像Oracle RAC一样高性能、高可用性和方便扩展的集群解决方案呢?答案是肯定的。
3 Moebius(莫比斯) for SQL Server负载均衡集群介绍
Moebius for SQL Server负载均衡集群是一款基于SQL Server的第三方数据库集群,集群采用向外扩展,取代传统向上扩展的架构,目标是联合多个价格相对较低的中小型服务器替代大型服务器;Moebius集群创新地将高可用技术和负载均衡技术结合在一起,通过并行计算充分发挥集群中各节点的综合性能,最终实现集群的高性能、高可用性、高扩展性、高性价比、高持续性。




(图1)数据库负载均衡集群
Moebius for SQL Server负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由Moebius中间件衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。
Moebius for SQL Server负载均衡集群支持无共享磁盘架构,集群可以不连接一个共享设备,数据可以存储在每个机器自己的存储中,这样冗余的架构不但可以避免单点故障而且提供了杰出的故障恢复能力。一旦某节点发生故障,Moebius for SQL Server负载均衡集群对用户保证最高的可用性,保障关键业务数据不丢失。


(图2)Moebius支持无共享磁盘架构
由Moebius构建的集群中,需要更高数据库处理速度时,只需简单增加数据库服务器就可以实现,可以大大减小硬件投资的风险,而且大大提高现有服务的质量,扩展非常方便。
4 Moebius for SQL Server负载均衡集群组成
如图所示,Moebius for SQL Server数据库负载均衡集群生态系统的组成,共分为六大部分:集中管理平台、中间件、应用程序连接组件、高可用组件、数据智能同步组件,传输压缩组件共同实现集群的超强综合性能。

(图3)Moebius集群生态系统组成
5 Moebius for SQL Server负载均衡集群的显著特点
5.1 实现数据库的负载均衡
数据库负载均衡是由Moebius集群的架构来支撑的,集群中的每个节点都具有同等地位,Moebius可以在多个节点之间实现动态均衡连接请求,实现各节点压力的均衡,进而显著提升数据库系统的性能。



(图4)Moebius集群的负载均衡
5.2 保证应用的不间断
Moebius for SQL Server构建的数据库集群系统中,可以提供持续的服务来应对企业计划或非计划停机,在Moebius集群中若某节点发生故障,故障节点的虚拟IP会立即飘移到其余健康的节点来响应连接请求,保证业务不中断,同时可以在不影响业务的情况下完成故障节点的修复、重新上线。
5.3 保证数据的安全性、可靠性
集群中各节点在任何时刻具有实时一致的数据,实现了真正的数据冗余,不会因为系统故障导致数据的丢失,大大提高了整个系统的可靠性与安全性。
5.4 降低系统TCO(总体拥有成本)
 集群支持无共享磁盘架构,可以节省存储设备的开销;
 可以充分利用企业原有设备组建集群,避免资源浪费;
 可以用多个廉价PC服务器代替昂贵的小型机或大型机,节约硬件成本;
 集群支持SQL Server各个版本,可以和SQL Server标准版搭配节约软件的投资;
5.5 集中统一管理平台
Moebius集群的集中管理平台可以方便您在一个统一平台上部署、维护多个集群。图形化的管理工具可以轻松的实现数据同步、节点扩展、负载设置、日志记录、性能预警、邮件通知以及更加及时的短信通知等操作,最大限度地降低用户的管理成本。

(图5)Moebius集群集中管理平台
5.6 集群透明、移植简单、方便易用
集群完全透明,在移植的过程中无需改变数据库结构和前端应用程序,实现系统的平滑移植。对DBA或开发人员来说,他们面对的还是熟悉的SQL Server数据库、SQL语句以及开发、调试工具,不需要学习新的工具,不需要改变原有的习惯,感觉就像使用一个数据库,易用性非常好。
5.7 集群的可扩展性
传统方案中,当一台服务器处理能力都用尽时,一般会替换成一台新的更强大的服务器。随着服务器处理能力的增强,它们的价格也会更昂贵。使用Moebius集群, 在需要更高数据库处理速度的时候,只需简单增加数据库服务器就可以了,不需要修改应用程序,降低系统风险。
5.8 故障时切换时间短
在双机热备等集群中,一个节点发生故障后,另一个节点首先要接管共享存储中的数据,然后要重新启动数据库实例,再转移应用连接,所以故障切换时间要长,而在Moebius集群中,每个节点都是活动的,实时工作的,发生故障时,只需要转移一下应用的连接,切换时间很快。
5.9 支持广域网异地集群
在由Moebius组建的异地集群中,有多个实时同步的数据服务,这不仅可以有效地应付站点失败,保证数据库可用性,还会实现异地集群的负载均衡。Moebius异地集群针对广域网带宽、高延迟以及安全性薄弱等弱点进行了特别优化和数据压缩,保障数据在传输过程中的正确、高效及安全。

分享到:
评论

相关推荐

    数据库集群搭建代码

    数据库集群是一种将多台计算机通过网络连接在一起,共同提供数据库服务的系统。这种架构能够提高数据的可用性、可扩展性和容错性,是大型企业和高并发应用的常见选择。在"数据库集群搭建代码"中,我们将探讨如何利用...

    数据库集群系统负载均衡技术的应用

    对异构数据库集群中间件的研究,即对于负载均衡的分析和设计。使用了三层体系架构模式,基于中间件技术而设计的,其中间件为一个构建在普通硬件上的数据库集群中间件,把网络内的各种异构数据库进行连接,组建起数据库...

    DBTWin数据库集群安装使用手册

    DBTWin数据库集群安装使用手册 DBTWin数据库集群安装使用手册是关于DBTWin V4.2数据库集群软件的安装和使用手册。该手册详细介绍了DBTWin集群软件的安装、配置、测试和注意事项等内容。下面是该手册中的一些重要...

    SQL_Server_数据库集群

    ### SQL Server 数据库集群搭建详解 #### 一、数据库集群的作用与优势 数据库集群是一种将多台数据库服务器组织起来共同提供服务的技术。理想中的数据库集群能够实现以下几点: 1. **扩展性能**:当需要更高的...

    oracle数据库集群安装详细步骤

    Oracle数据库集群安装是一个复杂而精细的过程,涉及到多个层面的技术知识,包括数据库系统、操作系统、集群软件和存储解决方案等。在本篇文章中,我们将深入探讨Oracle数据库集群安装的详细步骤,特别是涉及ARC...

    集群分类数据库集群数据库集群

    数据库集群,如Oracle RAC,允许多个数据库实例共享同一数据集,提供高可用性和负载均衡。在Oracle RAC中,当一个实例遇到故障时,其他实例可以接管,保证数据库服务的连续性。同时,RAC还能实现读写分离,提高...

    基于Zookeeper框架实现MySQL分布式数据库集群.pdf

    MySQL作为一种流行的开源关系型数据库管理系统,虽然提供了一个基于日志的同步模式,但在实际应用中,尤其是在分布式数据库集群环境中,还面临着诸多挑战和问题。数据一致性监控、主从切换、灾难恢复后加入集群以及...

    Oracle RAC数据库集群PPT教案.pptx

    Oracle RAC 数据库集群技术详解 Oracle RAC 数据库集群技术是指通过多个服务器节点的集群来提供高可用性、负载均衡和可扩展性的数据库解决方案。该技术可以满足企业对高性能、可靠性和可扩展性的需求。 为什么要...

    数据库集群系统实现方案详解数据库集群系统实现方案详解

    【数据库集群系统实现方案详解】 数据库集群是一种高可用性和高可靠性的解决方案,它通过将多台服务器联结成一个整体,对外展现为一个单一的系统,以提供不间断的服务。集群技术的关键在于,当集群中的一台服务器...

    主流数据库集群技术深入探讨

    【数据库集群技术详解】 数据库集群技术是通过将多个数据库服务器联合起来,形成一个高可用、高性能的系统,以解决数据库的处理速度、可用性、安全性及扩展性等问题。集群技术通常分为两类:基于数据库引擎的集群...

    SQLSERVER_并行数据库集群实现.doc

    【SQLSERVER_并行数据库集群实现】 SQL Server的并行数据库集群,如Moebius集群,是一种高效且高可用性的解决方案,尤其适用于大型企业或高流量应用。Moebius集群采用了无共享磁盘架构,这使得它能够在多台服务器...

    MySQL分布式数据库集群高可用设计及应用

    标题与描述:“MySQL分布式数据库集群高可用设计及应用”这一主题深入探讨了如何构建和维护一个高可用性的MySQL分布式数据库集群。在IT行业中,数据库的高可用性是确保业务连续性和数据安全的关键因素之一,特别是在...

    MSSQL数据库集群

    【MSSQL数据库集群】是一种高可用性和灾难恢复解决方案,它通过将多个SQL Server实例组合在一起来提供数据服务。在这样的集群中,每个实例都运行在不同的物理服务器上,这些服务器共享同一个逻辑名称,即虚拟服务器...

    基于MongoDB的高可用性分布式数据库集群技术研究.pdf

    本文讨论的是MongoDB在实现高可用性分布式数据库集群中的技术应用,强调了分片技术和复制集的故障自动恢复功能,这两项技术对于构建和维护企业级、高可用性的数据库集群至关重要。 分片技术是MongoDB中用于处理高...

    MyCAT+MySQL搭建高可用企业级数据库集群.txt

    为了提升数据库的性能,本课程围绕MyCAT来实现对业务数据库的分库分表、读写分离,构建一个以MyCAT为核心的数据库集群架构,以企业级方案解决数据库出现的性能问题,做个数据库高手!

    数据库集群技术

    数据库集群技术是现代IT基础设施中不可或缺的一部分,尤其在大规模数据处理和高并发访问场景下,其重要性愈发凸显。数据库集群技术旨在通过整合多台服务器的资源,形成一个统一的、高可用、高性能的数据库系统,以...

    高校数字化校园ORACLERAC数据库集群分析与部署.pdf

    【高校数字化校园ORACLERAC数据库集群分析与部署】 随着信息技术的发展,高校的管理与教学逐渐依赖于数字化校园系统,而数据库系统作为其中的核心组成部分,其稳定性和可用性至关重要。Oracle RAC(Real ...

Global site tag (gtag.js) - Google Analytics