数据库资源高可用性的分析与设计.pdf

上传人:asd****56 文档编号:69680507 上传时间:2023-01-07 格式:PDF 页数:5 大小:139.10KB
返回 下载 相关 举报
数据库资源高可用性的分析与设计.pdf_第1页
第1页 / 共5页
数据库资源高可用性的分析与设计.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《数据库资源高可用性的分析与设计.pdf》由会员分享,可在线阅读,更多相关《数据库资源高可用性的分析与设计.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第1 3卷第1期2 0 0 5年2月电脑与信息技术C OMP UT E RANDI NF OR MAT I ONT E C HNOL OG YVo l.1 3 No.1F e b r u a r y=2 0 0 5收稿日期:2 0 0 4 0 9 2 3作者简介:胡吉明(1 9 6 0),男,副教授,主要研究方向为软件复用技术,并行处理技术;孙祥鹏(1 9 7 8),男,河南信阳人,硕士研究生,主要研究方向为高可用性技术,分布式系统。文章编号:1 0 0 5 1 2 2 8(2 0 0 5)0 1 0 0 4 3 0 5数据库资源高可用性的分析与设计胡吉明,孙祥鹏(河海大学计算机及信息工程学院

2、,江苏 南京2 1 0 0 9 8)摘要:通过对当前数据库资源高可用性不足之处的分析,建立了主从式数据库系统的数据库资源高可用性模型,实现了异质数据库间高可用性的模块化,提出了基于日志传输的设计方案,保证了主从数据库数据的一致性与完整性。关键词:高可用;异质;数据库;日志传输中图分类号:T P 3 1 1.1 3文献标识码:AT h ea n a l y s i s a n dd e s i g no f h i g ha v a i l a b i l i t yo f d a t a b a s er e s o u r c e sHU J i mi n g,S UNX i a n g p

3、 e n g(C o mp u t e r a n dI n f o r ma t i o nE n g i n e e r i n gC o l l e g e,Ho h a i Un i v e r s i t y,Na n j i n g 2 1 0 0 9 8,C h i n a)A b s t r a c t:Anh i g ha v a i l a b i l i t ymo d e lo fd a t a b a s er e s o u r c e swa se s t a b l i s h e di nt h i sp a p e r,b a s e do nt h ea

4、n a l y s i so f d e f i c i e n c yo f e x i s t i n gd a t a b a s es y s t e ms.A s o l u t i o no f l o gs h i p p i n gwa sd e s i g n e da n di mp l e me n t e dt oe n s u r et h ec o n s i s t e n c ya n di n t e g r a l i t yo fh e t e r o g e n e o u sd a t a b a s e s.An dt h eh i g ha v a

5、 i l a b i l i t yo f b o t ha c t i v ea n ds t a n d b yd a t a b a s e swa sr e a l i z e d.Ke yw o r d s:h i g ha v a i l a b i l i t y;h e t e r o g e n e o u s;d a t a b a s e;l o gs h i p p i n g0引言随着信息化业务在世界范围内的迅猛发展,提供2 4 7不间断服务的高可用性已成为大多数计算机系统的一个必备特性,这是因为每一次的故障停机都会给服务方和客户方造成重大的损失。而数据库资源的高可用

6、性在整个系统高可用性中占有极其重要的地位,对于事务/任务关键应用而言,绝大多数是基于数据库服务。目前,各个数据库系统一般均含有实现数据库高可用的实现模块,如Mi c r o s o f tS QLS e r v e r2 0 0 0E n t e r p r i s eE d i t i o n、I B M D B 2、Or a c l e9 i等,但它们或者是基于群集模块之上,或者必须有特殊的功能集合予以支持,在异质跨平台实现方面尚欠满意。本文所采用的方法是构建于多个异质数据库基础之上的,采用J D B C方式,将多个异质数据库系统统一于一个高可用系统框架内,通过一致的编程接口向用户提供数据

7、库服务,同时兼顾各个数据库系统的特殊情况。1D B R HA(D a t a b a s e R e s o u r c e Hi g hA v a i l a b i l i t y)的半对等模式设计1.1逻辑层次结构为了实现数据库资源的跨平台使用,本系统进行了分层设计,这样就可以将具体数据操作的实现和实际的平台相分离,即把一些高层控制逻辑抽象,并针对数据库系统的具体操作进行封装,向程序员提供统一的调用形式,从而隐藏实现细节,做到异质数据库(不同的数据库系统,如S QL与Or a c l e)资源跨平台调用的相对用户透明化。D B R HA逻辑层次的结构如图1所示:4 4 电脑与信息技术第1

8、 3=卷图1 D B R HA逻辑层结构各逻辑层次描述如下:(1)数据源配置层是整个结构的基础,它不仅负责系统内所有数据源的配置和驱动程序的搜寻,而且也是实际数据库存取操作的依据。鉴于数据库系统的多样性,可单独设置一个配置文件来存放这些信息,可用X ML格式并定义相应的标记来表示,为方便配置,可由G UI程序实现。(2)数据库物理层和具体数据库系统打交道,其主要功能是实现数据库操作,针对不同的数据库系统的具体实现,由于其机制不尽相同,可以考虑使用J D B C或将它们的驱动程序动态配置以达到目的。(3)数据库逻辑层将各种数据库以及不同系统中的数据库的所有操作都封装在一个统一的接口程序中进行,客

9、户端对数据库的操作经此接口转换为标准的S QL语句,再由第(2)层具体实现。它主要具有定义数据库、定义关系、数据库操作命令的转发以及向仲裁模块发送更改信息的功能。(2)、(3)层共同构成数据库操作部分。(4)数据通信层负责将客户端的数据请求传送到数据操作部分,并将操作结果返回客户端。(5)监视层主要功能是监视数据库资源的运行情况,主要包括对特定的数据库系统的一些服务程序以及数据库资源的存储空间使用情况进行监视,并描述所有被监视的数据库的状态,通常分为正常、警告、严重警告及失败四种状态。(6)日志层除了存放一些必要提示和警告信息外,为了实现数据库资源的高可用,还定义了一个堆栈用于存放数据库的恢复

10、操作。(7)数据库状态控制层用于控制系统中各个数据库资源的状态(系统中仅有一个活动数据库,其余为备用数据库)。当活动数据库处于状态时,向命令转换层发送资源迁移命令,设置当前活动数据库为备用,并选取一个备用的活动数据库。(8)命令转换层获取监视层的数据库状态报告,传给数据库状态控制层,并对数据库状态控制层传来的资源迁移命令进行解释。1.2主从式数据库结构监视层和日志层共同构成监视模块,而数据库状态控制层和命令转换层则构成仲裁模块。显然,监视模块一般是和某个结点服务器的软、硬件环境息息相关,但仲裁模块则和具体的环境无关,只是可以通过某种数据交换方式(例如X ML方式)获悉各个数据库系统的运行情况,

11、并加以状态控制。本模式之所以称为半对等模式,是因为系统内的服务结点(运行监视模块)的地位是等同的,而且是同质的。而仲裁结点(运行仲裁模块)存在主从之分,它们可以是异质的,这样就可以将不同系统的资源进行统一表示并进行监视。若系统中有n台服务器,则其中任一台服务器都驻留有监视模块,用以监视数据库的运行状态;仲裁模块存在于其中的任一台,但在任何时刻,仅存在一个运行中的主仲裁模块,其余为备用从仲裁模块。主仲裁模块可与任一监视模块通讯,而监视模块之间不能有直接的数据交换,如有通讯请求,必须通过主仲裁模块。当主仲裁模块出现故障时,启动备用的从仲裁模块,并重启主仲裁模块,这也就构成了主从式数据库系统。2有限

12、状态自动机表示状态转换关系通过以上描述可以看出,保证系统的正常运行必须要用一些状态来表示监视模块与仲裁模块的运行情况,本系统将这些状态分为五种情况:a.活动态服务结点处于正常运行状态,但特定时刻只有一个结点处于此状态;b.监视态系统中除了活动态结点,其余都处于监视态,并随时可以切换至活动态;c.转换态结点正由一种状态向另一种状态转换;d.恢复态服务结点正处于修复活动;e.失败态服务结点完全无法工作,只能停止服务,等待修复。第1期胡吉明等:数据库资源高可用性的分析与设计=4 5 2.1有限状态自动机的定义本系统定义了一个4元组的有限状态自动机来描述监视模块、仲裁模块的这五种状态间的转换关系:F

13、S M=(Q,q0).其中:(1)Q是一个有穷状态集合,称作状态集,本系 统 中 将 监 视 模 块 的 状 态 集 合 定 义 为:Q1=a c t i v e,s t a n d b y,t r a n s i t i o n,r e c o v e r y,f a i l e d ,仲裁模块的状态集合定义为:Q2=a r b i t e r a c t i v e,a r b i t e rs t a n d b y,a r b i t e rt r a n s i t i o n,a r b i t e rr e c o v e r y,a r b i t e r f a i l e

14、d ;(2)是所有输入所组成的集合,称作字母表;(3)是状态转换函数集合,它的定义域为输入字母表集合和系统状态集合的笛卡儿乘积,值域为系统状态集合,称作转移函数,即:QQ。对于确定状态自动机而言,也可以表示为:f ,q1,q2Q,有f(q1,)=q2;(4)q0Q,是起始状态。2.2状态转换输入字母表由于系统内状态的切换不可能通过简单的方式设置,所以在设计中考虑使用一个阈值集合作为其输入字母表,但对于仲裁模块以强制方式(手工)将系统内的某个服务结点从运行态切换至监视态的操作则需要另外设置一个命令集合,其中只包含元素,即C OMMAND=s wi t c h s t a t e ,所以针对具体情

15、况需要使用两个集合作为输入字母表。对于自动切换状态的操作,可以定义一个由实数构成的闭集,其范围在-1和1之间,表示服务结点可用情况。令AVAI L I B I L I T Y=-1,1 ,并令系统当前可用度为x AVAI L I B I L I T Y。其中若x=0表示系统不可用,如果x -1,0)表示服务结点处于监视态或修复态的可用性,而x(0,1 表示服务结点处于活动态,若某个服务器从监视态或修复态转换至活动态,则只需将x取绝对值就可以了。2.3系统状态转换函数根据系统状态,可以定义以下几个状态转换函数:(1)活动态转换至监视态针对系统内某一主服务结点而停止对外继续提供服务,通常是为了更换

16、硬件或者更新软件,这种转换一般是用手工方式进行的,而不是系统出现故障引起的;(2)监视态转至活动态这种状态的切换必须经过转换态,否则可能造成系统内出现多台服务器处于活动态,从而造成网络地址冲突,因此需要产生一定的时间延迟等待其主服务器转换成其它状态的信号,这种状态的切换也是通过仲裁模块的直接干预而实现的;(3)恢复态转换至活动态系统修复成功;(4)恢复态转换至监视态从服务器修复成功;(5)恢复态转换至失败态系统无法修复,经过若干次(可以设定次数上限,如3次)尝试仍无法进入正常状态;(6)活动态转换至失败态主服务器系统状态不正常或资源(含硬、软件)的使用情况低于(高于)某个或某几个阈值;(7)监

17、视态转换至失败态从服务器系统状态不正常或资源(含硬、软件)的使用情况低于(高于)某个或某几个阈值。上面的几种转换关系可以通过图2予以说明:图2状态转换(没有画出转换态)2.4起始状态对于一个特定的高可用系统的起始状态而言,如果假定某个结点是主服务器,则其起始状态应为活动的;相反,其它结点的起始状态则应是监视态。虽然监视模块和仲裁模块中的自动机定义基本类似,但由于仲裁模块可以侦测其它结点的系统状态,所以从它的角度观察整个系统,可以看到系统内存在多个有限状态自动机,而且主仲裁模块与从仲裁模块之间也存在直接的相互监视关系,这样可以保证在主仲裁模块失效时,从模块可以立即参与工作。4 6 电脑与信息技术

18、第1 3=卷3 D B R HA解决方案3.1设计目的本设计是针对不同数据库的非同质数据源的,这样做是有其现实意义的。例如一个结点机系统中安装了同一数据库系统的两个互备份数据库(或镜像),一旦D B MS出现问题,则数据库都不可用;又如同一数据库系统不同版本、不同数据库系统、不同操作系统之间的数据移植都有可能造成数据的不可用。综上所述,本方案的设计目的如下:(1)实现单机的数据库高可用(可将不同的数据库系统安装在不同的硬盘上)。(2)实现数据库结构相似的新、旧系统并行。(3)实现跨平台的数据库资源高可用。3.2故障模式数据库系统的故障大体上可分为4大类:(1)错误的数据输入这是一种无法自动检测

19、的由人工错误输入导致的软故障。(2)介质故障一般指磁盘的局部故障,即只改变一位或几位的故障,通常能通过与磁盘扇区相关联的奇偶校验检测到。(3)灾难性故障主要指火灾、地震、掉电等人为或自然因素造成的故障。(4)软件故障系统的软件损坏或软件错误引起的故障。第(2)种和第(4)种故障是高可用性研究的重点。3.3日志传送(l o gs h i p p i n g)方案3.3.1日志格式为了实现异质数据库系统的高可用性,必须将活动数据库中的所有诸如增加、删除、修改等会引起数据库变化的操作用标准的S QL语句记录下来。在记录这些操作时,必须要用一种标识类型加以区分,通常在单结点机中用时标作为标识,但在多机

20、环境中的各结点机的时间并不统一,因此时标作为标识显然不合适。本方案采用系统流水号作为标识。系统流水号 分 为 两 个 部 分:其 一,活 动 数 据 库 流 水 号(S e r i a lAC T I V E);其 二,备 用 数 据 库 流 水 号(S e r i a lS T ANDB Y i)。且应满足关系:S e r i a lS T ANDB Y iS e r i a lAC T I V E(1 i n)。可以 将 日 志 视 为 一 个 三 元 组,即:。其中,S是流水号集合,L是与流水号对应的操作的S QL语句的长度集合,S QL是S QL语 句 集 合,它 包 括 类 似C R

21、 E AT E、D E L E T E、I NS E R T等操作的完整语句。3.3.2日志记录当客户端发送更新操作时,数据库资源高可用模块将S QL语句从中分离,取出当前系统活动数据库流水号(S e r i a lAC T I V E)并加一,然后将S QL语句写入活动日志,待成功后更新活动数据库,再逐一更新各备用数据库并改变其备用流水号(S e r i a lS T ANDB Y i)。算法流程如下:接受客户端数据请求包;解析包中的S QL语句;i f(活动数据库数据被改变)取系统活动流水号S e r i a lA C T I V ES e r i a l;S e r i a l=S e

22、r i a l+1;Wh i l(!更新当前活动数据库日志)更新活动数据库日志;i f(超出时限)出错处理;更新活动数据库内容;f o r(i=1;i =n;i+)取备用数据库的流水号S e r i a lS T A NDB Y iS e r i a li;S e r i a li=S e r i a li+1;更新各备用数据库;i f(!更新备用数据库)出错处理;3.3.3日志恢复若系统内出现备用数据库和活动数据库的系统流水号不同步或活动数据库状态不正常,就必须进行日志恢复操作。第一种情况只需根据活动数据库日志中的记录将不同步的操作重做一遍即可;而对于第二种情况,则必须在系统中找到一个与活动

23、数据库进行了完全一致操作的备用数据库,并用其暂时充当活动数据库。算法流程如下:取当前活动流水号S e r i a l;i=1;wh i l e(i =n)取备用数据库(Di)的流水号S e r i a lS T AND B YiS e r i a li;第1期胡吉明等:数据库资源高可用性的分析与设计=4 7 i f(S e r i a liS e r i a l)对Di重做流水号 S e r i a li,S e r i a l 间的所有操作;i f(活动数据库状态不正常)i f(S e r i a li!=S e r i a l)c o n t i n u e;将活动数据库设置为备用数据库;

24、将备用数据库Di设置为活动数据库;对原活动数据库进行修复;4结束语通过对数据库高可用的研究分析,本文提出了一种利用日志传输实现数据库资源高可用性的解决方案。今后,主要还有两方面的工作要做:第一,活动数据库的记录日志如果在每次更改数据库时都自动刷新,就会影响性能;而如果先放入内存,则有可能因掉电等意外情况造成数据库丢失,无法实现高可用,因此必须协调好系统性能与高可用之间的关系。第二,由于本设计要实现异质数据库之间的高可用,为了满足用户多方面的要求,应该对各种数据库内部状态进行深入、细致地分析和集成,以实现相对用户透明的通用数据库。参考文献:1 He c t o rG a r c i aMo l

25、i n a,J e f f r e y D.Ul l ma n,J e n n i f e rWi d o m.D a t a b a s e S y s t e ms:T h e C o mp l e t e B o o k M.P e a r s o nE d u c a t i o n,I n c,2 0 0 2.2 高文,祝明发.基于生灭过程的机群系统高可用性分析和设计 J .微电子学和计算机,2 0 0 1(4):4 7 4 9.3 R e d u n d a n c ya n dF a i l o v e rMe c h a n i s m E B/OL.h t t p:/www.

26、a l t e r s y s.c o m/Ap p l i c a t i o n n o t e s/f a i l o v e r.p d f.2 0 0 2,0 2.4 D e l i v e r i n gHi g hAv a i l a b i l i t yS o l u t i o n swi t hR e dHa t L i n u xAd v a c e dS e r v e rVe r s i o n,2.1 E B/OL.h t t p:/r e d h a t/a s/c l u s t e r/mg r.p d f=.2 0 0 2.(上接第2 9页)图4中的文件头

27、给出了文件的基本信息,如版本号、段的数目及创建时间等,每个段都有一个段头,记录段的大小等信息。对于初始化了的段,还有r a wd a t a和重定位(r e l o c a t i o n)信息。符号表记录汇编源文件中定义的全局符号和引用的外部符号。字符串表保存字符串。C OF F文件中存放名字的字段一般只有8个字节,当名字的长度超过8时,该名字存入字符串表。各段的r a w d a t a的起始地址在第一遍结束后即可算出,但重定位信息的起始地址不可算出。第二遍处理时,汇编器可直接将生成的指令或数据的二进制代码输出至C OF F目标文件,但重定位信息不能立即输出,应缓冲起来,直到第二遍结束。第

28、二遍处理完后,重定位信息的大小得到了,就可以考虑C OF F文件的符号表和字符串表的内容。检查汇编器的符号表,从中取出所有的全局符号和外部符号,并输出至C OF F文件的符号表。再依次检查C OF F文件的符号表和段的名字,将长度超过8的名字存入字符串表,同时记录它们的偏移位置。接着解决段头、重定位信息、符号表以及字符串表之间的引用关系,这些都确定了之后就可以输出C OF F文件的除r a w d a t a之外的其余部分。3.4重定位处理汇编器汇编代码时,认为每个段的起始地址均为0,所有标号(也称可重定位符号)的地址值则是相对其所在段的起始地址0的偏移。然而,实际上不可能所有段都安排为从内存

29、地址0处开始,段可能会映射至其它的内存地址。因此,汇编器碰到对可重定位符号的引用时,要创建一个重定位条目以记录这次可重定位引用。重定位条目存放至C OF F文件的重定位信息部分,它供连接器(l i n k e r)读取使用。重定位的处理在第二遍进行。描述一个重定位条目需要三个字段:符号表索引字段、虚地址字段和 重 定 位 类 型 字 段。符 号 表 索 引 字 段 存 放C OF F文件中的符号表的索引,表示重定位因引用索引指向的那个符号而发生。虚地址字段存放的是引起重定位的代码在它所在段的地址偏移。重定位类型字段说明重定位类型,连接器根据这个字段知道如何修正相应的代码。4总结YHF TD 4

30、是一款具有VL I W体系结构的D S P,本文给出了YHF TD 4汇编器的设计和实现 方 法。经 测 试 表 明,我 们 设 计 和 实 现 的YHF TD 4汇编器功能正确,能够有效地将汇编源程序转换为可重定位的C OF F目标文件。参考文献:1 G r a h a m R M.P r i n c i p l e so fS y s t e msP r o g r a mmi n g.J o h nWi l e y&S o n s,1 9 7 5.2 S a l o mo nD.As s e mb l e r sa n dL o a d e r s.E l l i sHo r wo o d,1 9 9 3.3 D h a md h e r eD M.S y s t e msP r o g r a mmi n ga n dOp e r a t i n gS y s t e ms,S e c o n dR e v i s e dE d i t i o n.清华大学出版社,2 0 0 1.4 L e v i n eJ R,Ma s o nT,B r o wD.l e x与y a c c(第2版).杨作梅,张旭东,等译.机械工业出版社,2 0 0 3.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁