(计算机应用技术专业论文)数据库集群系统高可用性的研究与应用.pdf_第1页
(计算机应用技术专业论文)数据库集群系统高可用性的研究与应用.pdf_第2页
(计算机应用技术专业论文)数据库集群系统高可用性的研究与应用.pdf_第3页
(计算机应用技术专业论文)数据库集群系统高可用性的研究与应用.pdf_第4页
(计算机应用技术专业论文)数据库集群系统高可用性的研究与应用.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机应用技术专业论文)数据库集群系统高可用性的研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库集群系统高可用性的研究与应用 摘要 数据库是电子商务,电子政务,m i s ,e r p ,以及金融等系统的基础,通常存储着重 要信息。然而,随着数据量和业务量的不断高速增长,以及高并发访问等问题的出现,使 得传统的单机数据库已经难以满足需求,提高数据库系统性能和可用性已成为亟待解决的 问题。集群技术已经成为解决此问题的首选方案,深入研究数据库集群技术,将有助于提 高其性能和可用性。高可用性作为评价数据库集群系统的重要指标,也是本文的重点研究 方向。 集群已经在多层软件结构中得到成功应用,比如高并发访问造成的w e b 服务器瓶颈, 已经可以通过集群技术得到解决。但在后台数据库上还缺乏这种工具,当数据库出现瓶颈 时,采用昂贵的商业产品如o r a c l er a c 并非所有用户可以接受,大多数中小型用户更加倾 向于使用开源免费软件。本文的主要工作是深入分析基于数据库中间件的集群技术,研究 影响高可用性的因素以及提高可用性的技术,并使用开源软件s e q u o i a 构建一个高性能、 高可用性的数据库集群系统,将其应用于实践。 高可用性数据库集群系统必须具备良好的可扩展性、数据一致性、负载均衡性以及消 除单点故障的能力。开源中间件技术s e q u o i a ,通过j d b c 接口引进了虚拟数据库的概念, 使用j d b c 驱动的底层数据库上的应用程序,无须任何改动就能运行在集群环境下。它具 有灵活的体系结构,支持大型复杂的体系结构,可以提供高性能、强容错能力、易用的平 台。本文深入分析了s e q u o i a 的工作原理,详细说明其安装和配置过程,以p o s t g r e s q l 及 o r a c l e 作为底层真实数据库,组建了一个数据库集群系统。针对该数据库集群系统进行数 据一致性、失效切换、负载均衡等测试,并对实验结果进行分析。实验结果显示使用s e q u o i a 中间件技术构建的数据库集群系统具有良好的可扩展性、数据一致性,具备消除单点故障 以及负载均衡的能力,提高了查询速度,改进了查询性能,提高了数据库集群系统的可用 性,能够很好地应用于实际领域。 最后,本文构建了一个公司广告客户业务管理系统。根据项目要求,为了降低成本, 整个系统的硬件都是采用日常使用的性能较好的p c 机,通过高速以太网连接,开发工具 和数据库全部采用开源免费软件。项目采用s t r u t s + s p r i n g + h i b e m a t e + s e q u o i a + p o s t g r e s q l 开源架构,包含w e b 服务器集群和数据库服务器集群两大部分,其中数据库集群的体系结 构采用上述s e q u o i a 中间件技术构建。该管理系统在l i n u x 平台下开发,已经成功应用于 实践。 关键词:集群,高可用性,中间件,s e q u o i a 数据库集群系统高可用性的研究与应用 a b s t r a c t d a t a b a s ei st h ef o u n d a t i o no ft h ee l e c t r o n i cc o m m e r c e ,t h ee g o v e r n m e n t ,m i s ,e r p , a s w e l l 硒f i n a n c i a ls y s t e m u s u a l l ys a v i n gt h ei m p o r t a n ti n f o r m a t i o n h o w e v e r , w i t ht h ed a t a q u a n t i t ya n dt h eb u s i n e s sv o l u m ef a s tg r o w t h ,a n dt h eh i 曲c o n c u r r e n tv i s i t sa p p e a r a n c e ,c a u s e t r a d i t i o n a lt h es t a n d a l o n ed a t a b a s eu n b e a r a b l e ,s ot h es y s t e m sp e r f o r m a n c ea n da v a i l a b i l i t y u r g e n t l yn e e dt ob es o l v e d t h ec l u s t e rt e c h n o l o g yi st h ef i r s tc h o i c e ,t h ed e e pr e s e a r c hd a t a b a s e c l u s t e rt e c h n o l o g y , w i l lb eh e l p f u li ne n h a n c i n gi t sp e r f o r m a n c ea n dt h ea v a i l a b i l i t y , t h eh i g h a v a i l a b i l i t y 嬲a ni m p o r t a n tm e a s u r eo fd a t a b a s es y s t e m t h i sp a p e rw i l lf o c u so n t h ec l u s t e rh a sb e e na p p l i e di n t ot h em u l t i - l a y e rs o f t w a r ea r c h i t e c t u r es u c c e s s f u l l y , f o r i n s t a n c et h eh i g hc o n c u r r e n tv i s i tc a u s e st h ew e bs e r v e rb o t t l e n e c k ,a l r e a d ym i g h tb es o l v e d t h r o u g hi t b u tl a c k st h i sk i n do ft o o li nt h ed a t a b a s es y s t e m ,w h e nt h ed a t a b a s ep r e s e n t st h e b o t t l e n e c k ,f o rm o s tu s e r s ,i ti sn o tag o o di d e at ou s ee x p e n s i v ec o m m e r c i a lp r o d u c tl i k eo r a c l e r a c ,t h e ye v e nm o r ef a v o r i t ei nu s i n gf r e es o f t w a r e t h i sp a p e ra n a l y z e dt h ec l u s t e rt e c h n o l o g y b a s e do nt h em i d d l e w a r ea n dt h ef a c t o ro fa f f e c t i n gt h eh i 曲a v a i l a b i l i t y , f i n a l l yc o n s t r u c t e da l l i g hp e r f o r m a n c ea n dh i 曲a v a i l a b i l i t yd a t a b a s ec l u s t e rs y s t e mu s i n gt h es o u r c e s o f t w a r e s e q u o i a , a n dh a sa p p l i e di ti n t op r a c t i c e h i 曲a v a i l a b i l i t yd a t a b a s ec l u s t e rm u s th a v ea9 0 0 ds c a l a b i l i t y , d a t ac o n s i s t e n c y , l o a d b a l a n c ea n dt h ea b i l i t yt oe l i m i n a t es i n g l ep o i n tf a i l u r e o p e ns o u r c em i d d l e w a r es e q u o i a t h r o u g hj d b ci n t e r f a c et oi n t r o d u c et h ec o n c e p to fav i r t u a ld a t a b a s e ,t h ea p p l i c a t i o n su s i n g j d b cc a r lb er u ni nt h ec l u s t e re n v i r o n m e n tw i t h o u ta n yc h a n g e s i ti saf l e x i b l ea r c h i t e c t u r et o s u p p o r tl a r g ea n dc o m p l e xa r c h i t e c t u r e ,i tc a np r o v i d eh i g h p e r f o r m a n c e ,s 仃o n gf a u l t - t o l e r a n t a b i l i t y , e a s y - t o - u s ep l a t f o r m i nt h i sp a p e r , a n a l y z e dt h ep r i n c i p l eo fs e q u o i ad e e p l y , d e t a i l e d d e s c r i p t i o no ft h ei n s t a l l a t i o na n dc o n f i g u r a t i o n ,a n db u i l dad a t a b a s ec l u s t e ru s i n gs e q u o i a , o r a c l ea n dp o s t g r e s q l ,t h e nf o l l o w i n gt h ec o n s i s t e n c y , f a i l u r es w i t c h i n g ,l o a db a l a n c i n ga n d o t h e rt e s t i n g ,t h ee x p e r i m e n t a lr e s u l t ss h o wt h a tt h ec l u s t e ru s i n gs e q u o i ah a sag o o ds c a l a b i l i t y , d a t ac o n s i s t e n c y , f a u l t - t o l e r a n ta sw e l l 蠲t h ea b i l i t yt ol o a db a l a n c e ,i m p r o v e dq u e r ys p e e d , e n h a n c e dq u e r yp e r f o r m a n c e ,i m p r o v e dd a t a b a s es y s t e ma v a i l a b i l i t ya n dc o u l db ea p p l i e dt ot h e a c t u a lf i e l d f i n a l l y , t h i sp a p e rc o n s t r u c t e dac o m p a n ys p o n s o rb u s i n e s sm a n a g e m e n ts y s t e m a c c o r d i n g t op r o j e c tr e q u e s t ,i no r d e rt or e d u c et h ec o s t , o v e r a l ls y s t e m sh a r d w a r ei sp cm a c h i n e ,t h r o u g h t h eh i 【曲s p e e de t h e m e tc o n n e c t i o n ,t h ed e v e l o p m e n tk i ta n dd a t a b a s eu s e st h es o u r c ef r e e s o f t w a r ec o m p l e t e l y t h ep r o j e c tu s e ss t r u t s + s p r i n g + h i b e m a t e + s e q u o i a + p o s t g r e s q l ,c o n t a i n s t h e 印砀s e r v e rc l u s t e ra n dt h ed a t a b a s es e r v e rc l u s t e r , d a t a b a s ec l u s t e r sa r c h i t e c t u r eb a s e do nt h e 数据库集群系统高可用性的研究与应用 a b o v es e q u o i am i d d l e w a r et e c h n o l o g y t h i sm a n a g e m e n ts y s t e mi sd e v e l o p e du n d e rt h el i n u x p l a t f o r m ,a n dh a sb e e ns u c c e s s f u l l ya p p l i e di np r a c t i c e k e y w o r d s :c l u s t e r , h i g ha v a i l a b i l i t y , m i d d l e w a r e ,s e q u o i a i 曲阜师范大学博士硕士学位论文原创性说明 ( 在口划“4 ) , 本人郑重声明:此处所提交的博士口硕士耐论文数据库集 群系统高可用性的研究与应用,是本人在导师指导下,在曲阜师范 , 大学攻读博士口硕士耐学位期间独立进行研究工作所取得的成果。 论文中除注明部分外不包含他人已经发表或撰写的研究成果。对本文 的研究工作做出重要贡献的个人和集体,均己在文中已明确的方式注 明。本声明的法律结果将完全由本人承担。 作者签名:圣凰椐同罕 日期:乙d 。g 9 夕 曲阜i j 币范大学博士硕士学位论文使用授权书 ( 在口划“) 数据库集群系统高可用性的研究与应用系本人在曲阜师范大 学攻读博士口硕士回学位期间,在导师指导下完成的博士口硕士 孵位论文。本论文的研究成果归曲阜师范大学所有,本论文的研究 内容不得以其他单位的名义发表。本人完全了解曲阜师范大学关于保 存、使用学位论文的规定,同意学校保留并向有关部门送交论文的复 印件和电子版本,允许论文被查阅和借阅。本人授权曲阜师范大学, 可以采用影印或其他复制手段保存论文,可以公开发表论文的全部或 部分内容。 作者签名:砻虺 貉回军日期:2 沁g 争、7 导师签名:多钐缸荟一日期:如矽年夕 数据库集群系统高可用性的研究与应用 1 1 研究背景 第一章绪论 从2 0 世纪6 0 年代末数据库技术产生到现在,一直在快速发展。随着计算机技术,特 别是网络、通信技术和电子商务的飞速发展,数据库的应用领域不断扩大,传统的大型结 构化数据库系统越来越多的应用在i n t e m e t i n t r a n e t 上,并担当着企业业务和信息系统核心 的重任。数据库已经成为人们进行数据存储、数据共享和数据处理以及信息管理的重要 工具。 。, 用于传统业务的数据库系统越来越多的面临超大规模数据量和高强度瞬时并发访问 等棘手的问题。无论是企业或政府在i n t e m e t 上的网站,还是i n t r a n e t e r p c r m 等内部业 务管理系统,随着数据量和业务量的不断高速增长,数据库系统的执行效率逐渐降低,使 得数据库的访问速度及其可用性大大降低。高并发访问己经成为制约系统性能和效率提升 的瓶颈。 数据库的可用性是衡量数据库系统性能的重要指标。在一些特殊应用场合,如电子商 务系统等,对数据库的可用性要求很高,常规数据库技术己无法胜任这些工作,需要一种 新的数据库技术来解决这些问题,以提升数据库的可用性。传统的增加数据库服务器单机 处理能力,比如单纯的提高c p u 处理速度、内存大小等等,已经不能满足日益增大的业务 量的需求。幸运的是,近几年来并行计算机系统的发展十分迅速,并且集群并行计算系统 十分符合我国的国情口3 。因此,数据库集群应用而生口1 。 数据库集群技术在不同的电子事务处理、网格计算等系统中得到了广泛的应用,是一 种被业界广泛关注的计算机技术。简单的增加数据库服务器的数量就可以提高数据处理的 速度,而且大大增加了数据库的可用性h ,。 1 1 1 国内外研究现状 最初,高可用的研究是基于计算机集群系统的研究,集群系统的最初模型分化为两个 不同的领域即高性能( h p ) 和高可用( h a ) 。集群系统大体上可以定义为互相连接的并行 或分布的计算机集合,它们使用统的计算资源。并行计算机系统侧重集群系统的高性能 以及延展方面的性能,一般被称作w s c s ( w o r k s t a t i o nc l u s t e r s ) 或n o w s ( n e t w o r ko f w o r k s t a t i o n s ) ,而事务任务关键系统则侧重于集群系统的高可用性,即被称作h a 集群系 统。 高性能和高可用性的发展并非是同步的,但事实上,高性能并行计算机和高可用性的 数据库集群系统高可用性的研究与应用 发展可谓是相辅相成的。并行处理是将多个处理单元整合以达到高性能的目的,而只有具 有一定的容错性才能形成有效的并行计算,这是因为容错性使得应用程序运行的连续性得 以保证;另外一方面,由于并行处理技术从本质上提供给高可用系统一种重要的因素即整 体架构的冗余,因此高性能技术又促进了高可用技术的发展。 目前,各个数据库系统一般均包含有实现数据库高可用性的实现模块,如m i c r o s o f t s q l s e r v e r2 0 0 5 、i b md b 2 、o r a c l er a c 等,但它们通常需要特殊的功能集合予以支撑, 商务解决方案如o r a c l er a c 已经开始从事应用共享存储系统;i b m 的d b 2i n t e g r a t e d c l u s t e r 环境中应用了网络共享存储;开源阵营在数据库集群方面,m y s q l 采用主从机制 来实现。这些技术有一个明显的缺点就是为了实现集群的特性就必须扩展数据引擎,所以 应用程序要用一些额外的a p i ,并且这些不同的技术很难实现相互协作。而目前分布式系 统中的数据库系统通常包含若干种数据库系统。因此,分布式系统中的数据库资源的高可 用性研究还有很长的路要走。 1 2 研究意义和本文主要工作 多层软件结构( 比如w e b 服务器集群) 中已经成功地应用了集群,但在后台数据库上 还缺乏这种工具,所以当数据库层出现瓶颈时,就必须在硬件上花费高额的费用,采用昂 贵的商业产品如o r a c l er a c 。为了降低系统的费用,提高性价比,使用性价比高的p c 机 建立数据库集群成为首选。开源数据库集群中间件s e q u o i a 解决了上述问题。它通过 j d b c 接口引进了一个虚拟数据库,只要拥有基于j d b c 驱动的数据库应用程序,程序无 须任何改动就能运行。s e q u o i a 具有灵活的体系结构,支持大型复杂的数据库集群体系结构, 为数据库集群提供了高性能、高可用性、强容错能力、易用的平台。 本文的工作主要包括以下几个方面: ( 1 ) 深入分析高可用性数据库系统的含义、主要功能和基本特征,并讨论提高数据库 集群高可用性的技术及影响因素。比较分析主流的高可用性数据库技术。 ( 2 ) 深入分析数据库集群中间件技术s e q u o i a ,从体系结构、容错能力、支持集群结构、 性能对比等几个方面做了详细分析。描述高可用性数据库集群系统的配置,并针对s e q u o i a 技术的数据一致性、失效切换和负载均衡功能进行测试,得到并分析实验结果。 ( 3 ) 结合当前流行的多种开源技术,本文设计并部署切实可行的w e b 系统方案和数据 库集群高可用性方案,开发一个实际的应用系统。 1 3 论文结构 第一章论述数据库领域的主要研究方向,介绍本课题的研究背景、研究意义和本文主 要工作。 2 数据库集群系统高可用性的研究与应用 第二章对集群技术及其现在普遍使用的数据库集群技术进行简单分析。 第三章对高可用性数据库系统作了全面、深入的研究。分析影响高可用数据库的因素 和衡量参数,以及对当今普遍使用的高可用性数据库进行详细的讨论。 第四章主要分析s e q u o i a 中间件技术的体系结构和主要功能。详细说明s e q u o i a 的安装 和配置方法,最后进行数据一致性、失效切换、负载均衡等测试,并对实验结果进行分析。 第五章针对实际应用的要求,提出高可用性数据库系统设计和应用软件的详细设计方 案,并给出关键配置文件及其部分技术的代码片段。 第六章总结与展望,最后是论文的结论部分,总结了课题已经完成的工作,并指出了 需要进一步完善和实现的部分,以及需要更深入研究的方向。 数据库集群系统高可用性的研究与应用 2 1 集群技术发展现状 第二章数据库集群技术概述 简单的说集群( c l u s t e r ) 就是由两台或多台节点机( 服务器) 构成的一种松散耦合的 计算节点集合,为用户提供网络服务或应用程序( 包括数据库、w e b 服务和文件服务等) 的单一客户视图,同时提供接近容错机的故障恢复能力。集群系统就是将多台服务器用集 群软件连接在一起,作为一个整体为客户端提供服务,每个集群节点都是运行其自己进程 的独立服务器。这些进程可以彼此通信,对网络客户来说就像是形成了一个单一系统,协 同起来向用户提供应用程序、系统资源和数据。除了作为单一系统提供服务,集群系统还 具有恢复服务器级故障的能力瞄1 。集群系统还可通过在集群中继续增加服务器的方式,从 内部增加服务器的处理能力,并通过系统级的冗余提供固有的可靠性和可用性。 集群根据其功能的侧重点不同,可分为以下三类。 2 1 1 高性能计算科学集群 以解决复杂的科学计算问题为目的的认集群系统,是并行计算的基础。它可以不使 用专门的由十至上万个独立处理器组成的并行超级计算机,而是采用通过高速网络来链接 一组1 2 4c p u 的i a 服务器,并且在公共消息传递层上进行通信以运行并行应用程序。这 样的计算集群,其处理能力与真正超级并行机相等,并且具有优良的性价比。 例如:b e o w u l f 。当谈到l i n u x 集群时,许多人的第一反映是b e o w u l f o 它是最著名 的l i n u x 科学软件集群系统。实际上,它是一组适用于在l i n u x 内核上运行的公共软件 包的通称。其中包括流行的软件消息传递a p i ,如“消息传送接口 ( m p i ) 或“并行虚 拟机 ( p v m ) ;对l i n u x 内核的修改,以允许结合几个以太网接口、高性能网络驱动器; 对虚拟内存管理器的更改以及分布式进程间通信( d i p c ) 服务。公共全局进程标识空间允 许使用d i p c 机制从任何节点访问任何进程。 2 1 2 负载均衡集群 负载均衡集群为企业需求提供更实用的系统,使各节点的负载流量可以在服务器集群 中尽可能平均合理地分摊处理。该系统需要均衡处理端口负载或网络流量负载。这样的系 统非常适合于大量用户运行同一组应用程序。每个节点都可以处理一部分负载,并且可以 在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程 序接受大量入网流量,无法迅速处理,这就需要将流量发送给其它节点。负载均衡算法还 4 数据库集群系统高可用性的研究与应用 可以根据每个节点不同的可用资源或网络的特殊环境来进行优化。 2 1 3 高可用性集群 为保证集群整体服务的高可用,考虑计算硬件和软件的容错性。如果高可用性集群中 的某个节点发生故障,那么将由另外的节点代替它。整个系统环境对于用户是一致的。 例如:l v s ( l i n u xv i r t u a ls e r v e r ) 。它是一个负载均衡高可用性集群,主要针对大业 务量的网络应用( 如新闻服务、网上银行、电子商务等) 。l v s 是建立在一个主控服务器 及若干真实服务器( r e a l s e r v e r ) 所组成的集群之上。r e a l s e r v e r 负责实际提供服务,主控 服务器根据指定的调度算法对r e a l s e r v e r 进行控制。而集群的结构对于用户来说是透明的, 客户端只与单个的i p ( 集群系统的虚拟i p ) 进行通信,也就是说从客户端的视角来看,这 里只存在单个服务器。 2 2 数据库集群技术的两种体系 目前,数据库集群技术分为两大体系结构:基于数据引擎的集群技术和基于数据库网 关( 中间件) 的集群技术。 2 2 1 基于数据引擎的集群技术 基于数据引擎的集群技术大多都是共享磁盘,多个数据库服务器对共享的磁盘设备具 有相同的访问能力。体系结构如图2 1 所示: 图2 - 1 基于数据引擎的集群技术 典型的如:o r a c l er a c 是共享磁盘的体系结构,用户只需简单地增加一个服务器节点, 数据库集群系统高可用性的研究与应用 r a c 就能自动地将这个节点加入到集群服务器体系中去,r a c 会自动地将数据分配到这 节点上,并且会将接下来的数据库访问自动分布到合适的物理服务器上,而不用修改应用 程序。 2 2 2 基于数据库网关( 中间件) 的集群技术 随着集群技术的发展,无共享结构( s h a r e d - n o t h i n g ) 并行机成为并行数据库系统的主 流结构,也使利用中间件技术管理多个单机版数据库获得并行数据库性能成为了可能嘲。 随着网络技术的进步及处理器能力的提高,越来越多的开发者开始用相对廉价的以太网等 常用通信网络系统,把相对便宜的服务器连接起来组成集群使用,从而以较少的代价获得 比较高的性能。 基于数据库网关的集群技术采用非共享磁盘,由每个数据库服务器管理自己的磁盘设 备。基于数据库网关的数据库集群不需要中央c p u ,共享的只是把所有的系统连接起来的 网络连接h ,如下图2 2 所示: , 2 3 本章小结 数据库引擎 上 l 后台数据库 i 数据库引擎 图2 2 基于数据库网关的集群技术 本章对数据库集群技术进行了简单概述,包括数据库集群的研究现状、分类。着重分 析了数据库集群技术两大体系结构:基于数据引擎的集群技术和基于数据库网关( 中间件) 的集群技术。 6 数据库集群系统高可用性的研究与应用 第三章高可用性数据库系统 在当今社会的信息化进程中,人们对数据库服务器的性能和可靠性提出了越来越高的 要求。由于计算机硬件技术的飞速发展,数据库服务器的硬件平台已经有了相当好的可用 性。据统计,一个独立系统的可用性在9 9 以上,如果配用一些系统管理工具,则系统的 可用性可以达到9 8 8 至9 9 5 博1 。 从表面上看,这种可靠性已经很好了,对于一些可靠性要求不高的应用来说,应该是 能满足要求的了。但是如果按一年3 6 5 天计算,则每年仍然有1 8 到4 4 小时的停机时间, 这对于那些任何停机都将导致财产损失、名誉损失、甚至生命损失的关键性应用如电信、 银行和军用系统等应用系统的要求来说还有很大差距。 为了满足这些可用性要求极高的关键性应用的需求,人们一般使用专用结构和广泛冗 余的容错系统,通过付出比常规系统昂贵若干倍的代价将系统的可用性提高到9 9 9 9 9 以 上,也就是将每年的平均停机时间降至5 分钟! 这种解决方案力求做到将故障发生的概率 降至最低,以致几乎不可能发生。高可用性数据库系统就是以硬件资源的冗余和专用的软 件结构来换取系统极高的可用性。 3 1 可用性的定义 可用性需要应用系统的最终用户来衡量,它是指应用程序或服务在用户使用它们时的 可用程度。可用性是以系统运行和可用时间的百分比来衡量一1 ,是表征计算机系统如何持 续地对客户进行服务的尺度。它主要依赖于系统的可用性来防止出现故障或从故障中进行 恢复。高可用性系统提供一个改进的或者比一般可用性系统更高级的系统可用性,减少了 系统的故障时间。 简单的讲,可用性就是系统正常对外提供服务的时间比例。对系统可用性的评价,在 不同发展阶段和不同的关注角度有不同的描述n 们n 1 1 2 | ,通常将可用性分为两种n 3 儿h 1 : ( 1 ) 一般可用性,其具体数值计算方法定义如下n 引: 可用性:丕笙篁箜三堡堕塑二垫堕堡垫壁塑 “一 系统总的工作时间 ( 2 ) 瞬时可用性,计算机系统在时刻,能正常工作的概率。一般用a ( o 表示,用于考察 系统在时刻r 能提供服务的能力。 按照一般可用性的大小,一般可以将数据库系统划分为三类,如下表3 1 所示: 7 数据库集群系统高可用性的研究与应用 表3 1 数据库系统可用性分类标准 可用比例( p e r c e n ta v a i l a b i l i t y ) 年停机时间 可用性分类 9 9 9 8 8 小时 一般可用性系统 9 9 9 9 9 5 3 分钟高可用性系统 9 9 9 9 9 9 9 3 2 秒容错系统 ( 1 ) 一般可用性系统 一般可用性系统的可用性可以达到9 9 9 ,它没有容错功能,也没有特殊的软件来做 错误处理,系统的错误检查和恢复完全依靠系统管理员来完成。一旦系统出现故障,无论 是硬件故障还是软件故障,用户都无法再对系统进行访问。 ( 2 ) 高可用性系统 高可用性系统的可用性可以达到9 9 9 9 9 ,它是在冗余的一般可用性系统基础之上, 运行高可靠性软件而构成。高可靠性软件用于自动检测系统的运行状态,在一台服务器出 现故障的情况下,自动把故障服务器己经进行的任务转移到其它服务器,由其它服务器继 续提供服务。 ( 3 ) 容错系统 容错系统的可用性可以达到9 9 9 9 9 9 ,它能够提供最高层次的系统可用性,可以将冗 余性集成到系统的各个方面。真正的容错系统一般价格极为昂贵,而且不能提供高性能。 这是因为容错技术一般利用冗余硬件交叉检测操作结果。当发现异常时,故障部件会被隔 离开而不影响用户的操作,这样就会导致系统对外提供服务的性能下降。 从实用角度讲,容错系统自身的局限性限制了它的推广应用。在实际应用中大部分是 高可用性系统。随着处理器速度的加快和价格的下跌,容错技术会越来越多的转移到软件 中,未来的容错技术将完全在软件环境下完成,那时容错系统也就成了高可用性系统,而 高可用性系统的容错性会进一步提高。 3 1 1 高可用性数据库的主要功能 高可用性数据库系统的主要功能包括: ( 1 ) 软件故障的检测与排除; ( 2 ) 备份和数据保护; ( 3 ) 监视各个数据库服务器的运行情况,能随时或定时报告系统运行情况,发生故障 时能及时报告和更替,并提供必要的控制手段; ( 4 ) 实现错误隔离以及主、备服务器间的服务切换,保证提供不问断服务。 8 数据库集群系统高可用性的研究与应用 3 1 2 高可用性数据库的特点 高可用性数据库系统具有四个基本特征可靠性、可恢复性、连续运转和高性能。 ( 1 ) 可靠性:系统很少出故障,出现故障的平均间隔时间足够长。数据库系统能够自 动处理许多系统失败以及数据库失败,并且必须对每个单一失败节点进行标识,同时为每 个这种组件提供了相应的冗余组件。 ( 2 ) 可恢复性:一旦系统出现故障,系统能够及时报警,并能在短时间内恢复。系统 能够提供最大限度的失败恢复透明性,使得主数据库系统在崩溃时能够尽量不影响系统的 整体可用性。需要说明的是,失败恢复不仅是指数据库系统失败的检测功能,同时还包括 做出相应响应动作的过程。必须提供一种机制,能够周期性地检测数据库系统的稳定性。 如果将这种周期性检查的周期时间设置过短,那么就有可能会由于经常性的检测动作而导 致系统整体性能的下降。而如果将这种周期性检查的周期时间设置过长,那么就有可能导 致数据库系统服务的失败被终端用户所感觉到。此外,一旦主数据库系统的失败被检测到, 所采用的失败恢复策略必须能够重新发现数据库的新连接路由,以便尽快地与数据库系统 建立连接。这时需要注意的是,先前的数据库连接有可能是活跃的也有可能是非活跃的。 其中对于数据库连接的活跃性判断非常关键,2 4 7 方式必须保证数据库连接中的应用程 序具有重新启动功能。如果这种功能不能实现,那么数据库的解决方案中就必须提供一种 机制,能够在必要的情况下重新建立应用程序与数据库系统的连接,从而减少应用程序反 复调用数据库的开销。有些时候,数据库系统服务的中断很容易被数据库访问用户发现, 这是因为用户可以明显地感觉到数据库系统连接被中断。 ( 3 ) 连续运转:系统能够提供连续的服务,一旦某一节点出现故障,系统内的其它节 点能立刻接管故障节点的所有已产生的业务,不会出现所有节点全部发生故障的情况,而 且数据库维护与管理是联机进行,不会停机。 ( 4 ) 高性能:由于数据库系统中各节点之间存在通信延迟,因此单个节点的性能是降 低了n 引。但数据库系统对外是一个整体,系统中的各节点能够分流业务量,因此系统能够 对外提供性能优良的服务,而且性能的提高不以停机时间的增加为代价。 3 2 影响高可用性数据库的因素 3 2 1 数据库性能和可用性之间的关系 系统性能与可用性之间并没有天然的反比关系。理论上来说,可用性是性能的一个子 集( 如果系统没有任何的吞吐量,那么它就不会有任何可用性) 。但从实际的观点看,性 能与可用性是两个相互独立的现象。性能通常与“数据库运行速度有多快相关,而可用 9 数据库集群系统高可用性的研究与应用 性通常与“用户在什么时候需要访问数据库 相关。比如说在数据库n o l o g g i n g 模式 下创建索引来加速数据库建立过程,以便提高系统性能。但是,如果数据库在索引被建立 之后就崩溃了,这种情况会增加数据库的停工时间。数据库恢复过程不能恢复最新创建的 索引,从而必须在数据库可用之前手工创建这个索引,因而会延长停工时间。 但是上面这个例子是比较极端的,系统中高性能和高可用性是可以共存的。在实际应 用中,用户必须在进行系统安装过程中就同时考虑到系统的性能与可用性,并且将这两者 作为进行系统配置时的目标,而不能只兼顾其中一方。毕竟,一个在性能上非常低劣的数 据库系统所提供的吞吐率与响应时间都是不能接受的。在实际应用中,如果这种性能过于 底下并达到某个临界点,那么就可以认为这个系统不能使用。虽然在性能与可用性之间存 在一定的对立关系,但用户必须采取一种合适的手段使两者都能够最大限度地发挥效能, 而不必为了迎合某一个指标而减弱另一个指标,这一点对用户和系统设计者都非常重要。 3 2 2 经费开销和可用性之间的关系 实现一个具有高可用性系统的代价可能是非常昂贵的。在开销与可用性之间存在一个 非常直接的关系,希望获取的可用性越高,那么开销也越大。如下图3 1 所示: 开 销 可用性 图3 1 数据库系统开销与可用性之间的关系 3 3 提高数据库可用性的技术及衡量参数 3 3 1 提高数据库可用性的技术 根据物理法则,提高冗余是提高数据库可用性的唯一途径,而集群是一种很好的实现 方法n 7 1 。提高数据库冗余大致有四种方法: , ( 1 ) 硬件级的冗余。主要思想是让多处理机同时执行同样的任务以屏蔽瞬时和永久的 硬件错误。有两种具体的实现方法:构造特殊的冗余处理机或使用多个独立的数据库服务 器。冗余处理机的造价昂贵,效益很低,因此实际应用日渐减少。 1 0 数据库集群系统高可用性的研究与应用 ( 2 ) 通讯链路级的冗余。冗余的通讯链路可以屏蔽瞬时和永久的通讯链路级的错误。 基于数据引擎的集群系统有两种结构:共享磁盘和独立磁盘。r a c ,m s c s 和m y s q lc s 可以认为是共享磁盘的集群系统。u d b 和a s e 是用独立磁盘的。共享磁盘集群系统对系 统的网络要求很高,所以通讯的冗余度最小。独立磁盘集群系统可以把磁盘系统独立管理, 通讯冗余度较高。i c x 的通讯链路级的冗余度最高,因为它使用的是多个独立的数据库服 务器和独立的磁盘系统。i c x 也可以用于共享磁盘系统,但是冗余度会相应降低。 ( 3 ) 软件级的冗余。由于现代操作系统和数据库引擎的高度并发性,竞争条件、死锁、 以及时间相关的错误占据了非正常停机原因的绝大多数。采用多个冗余的运行数据库进程 能屏蔽瞬时和永久的软件错误。 ( 4 ) 数据冗余。有两类冗余数据集:一种是被动更新数据集,目前所有的数据复制技 术( 同步或异步) ,例如磁盘镜像、数据库文件复制以及数据库厂商自带的数据库备份工 具都只能产生被动复制数据集。通常,为了实现复制功能,需要消耗主服务器5 ( 异步) 到3 0 ( 同步) 的处理能力。被动更新的数据一般只用于灾难恢复,被动更新数据集有两 个致命的问题:一旦主处理机出现故障造成数据损坏,被动更新的数据集也会被破坏。另 外,和主动更新系统相比,被动更新系统对数据网络的带宽要求更高,这是因为它缺少交 换的信息,很多数据复制是盲目的。还有一种是主动更新数据集,这种数据集需要一台( 或 多台) 独立的备份数据库服务器来管理,由于这种数据集及时可用,它可以有多种用途, 例如报表生成,数据挖掘,灾难恢复甚至低质量负载均衡。 3 3 2 可用性的衡量参数 平均故障时间和平均恢复时间是评价高可用性的主要参数。软件和硬件组件具有不同 的故障特点,从而使软件故障难于管理或预测。硬件组件的故障特性通常是指数分布,一 般情况下,经过初始阶段之后,硬件组件运行时间越长,它发生故障的频率就越高。因此, 如果知道了设备的平均故障时间,那么就有可能预测出该设备进入故障状态的大概时间。 3 4 高可用性数据库的分类 一般来说,数据库系统的高可用性主要是通过双机备份或者多机的集群来实现的。集 群系统由一组通过高速网络互联的服务器和存储设备组成,集群中的每个服务器称为节 点。这些节点协调工作,对外提供一个单一、完整、灵活的数据资源。采用数据库集群技 术实现高可用性系统已经成为实现大型数据库系统的主流设计方案。 根据集群中各个节点的工作状态不同,传统的数据库集群又可以分为以下几种: ( 1 ) 采用备份机的方式,这其实不属于高可用性的范畴,但可以将出现故障后恢复服 务的时间控制在几十分钟的量级,而且备份机平时还可用作其他用途。这种方式是一种低 数据库集群系统高可用性的研究与应用 成本的简单方案,对于不是非常重要的应用比较适合。 ( 2 ) 通过软件方式实现双机热各。各大软件公司,如浪潮通软提供双机热备的解决方 案。这种方案不采用共享的存储设备,数据不是存储在单个节点,本机的数据可以向多台 主机做实时的数据复制。这种方式的优点是节省了昂贵的存储设备投资,缺点是或者会产 生数据差异,而且会影响数据库的速度。比如,如果在服务中断时切换到备机,则可能有 少量己经在主机完成的事务在备机上尚未实现。备份机启动后,后续的操作继续进行,丢 失的事务就很难恢复。因此,这种方式适用于丢失少量数据不是非常敏感的系统。 ( 3 ) 基于共享存储设备和双机软件实现双机热备,即通常所说的a c t i v e s t a n d b y 方式。 数据同时向两台或多台数据库服务器写,或者使用一个共享的存储设备。当a c t i v e 服务器 出现故障的时候,通过软件诊测( 一般是通过心跳诊断) 将s t a n d b y 机器激活,保证应用 在短时间内完全恢复正常使用。这种方案能够在无人值守的情况下提供秒级的切换,并且 不会丢失数据。 目前,主要的大型数据库厂家如o r a c l e 、i b m 、m i c r o s o f t 等都推出了各自的高可用性 组件,下面对他们作详细的比较分析。 3 4 1o r a c l er a c 技术 o r a c l er a c 技术( 9 i 以前的版本称作o r a c l ep a r a l l e ls e r v e r ,o p s ) n 胡( i 鲫用来在集群环 境下实现多机共享数据库,以实现应用的高可用性,同时可以自动实现并行处理及负载均 衡,还能实现数据库在故障时的容错和无断点恢复。 o r a c l er a c 技术具有共享缓存体系结构,它运行在通过集群互联和共享存储设备子系 统连接在一起的多台机器上。数据文件存储在共享存储设备( 一般是磁盘阵列) 脚1 上,允 许多个o r a c l e 实例同时访问一个数据库存储设备,实例之间共享缓存,共享同一数据文件, 保证了所有数据在任意时刻对所有节点来说都是相同的。i 认c 系统的结构主要分三部分: 节点、私有网络、和共享磁盘口,体系结构如图3 2 所示: 1 2 数据库集群系统高可用性的研究与应用 3 4 2m i c r o s o f tm s c s 技术 图3 2 0 r a c l e r a c 体系结构 m s c s ( m i c r o s o f tc l u s t e rs e r v i c e ) 是m i c r o s o f t 提供的一种基于n t 系统的集群技术, 它的主要用途是通过自身提供的容错能力提高应用程序可用性,是一种操作系统级的高可 用性解决方案。s q ls e r v e r2 0 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论