(计算机应用技术专业论文)分布式数据库数据复制技术研究.pdf_第1页
(计算机应用技术专业论文)分布式数据库数据复制技术研究.pdf_第2页
(计算机应用技术专业论文)分布式数据库数据复制技术研究.pdf_第3页
(计算机应用技术专业论文)分布式数据库数据复制技术研究.pdf_第4页
(计算机应用技术专业论文)分布式数据库数据复制技术研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)分布式数据库数据复制技术研究.pdf.pdf 免费下载

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

文档简介

分布式数据库数据复制技术研究李娟( 计算机应用技术)指导教师:张文东高级工程师摘要数据复制技术是分布式数据库中提高系统可用性和可靠性的一项重要技术。数据复制通过冗余数据,可以用本地数据读取代替远程数据访问,这样不但能降低网络通信开销和缩短响应时间,还能在节点和网络发生故障时保证系统依然正常运行。本文在理解分布式数据库系统的理论和数据复制技术的基础上,讨论了数据复制实现的主要方法和技术,论述了数据复制的体系结构,阐述了数据复制算法的思想,重点分析和总结了现有的异构数据库复制方案。本文给出了松散一致性代理复制方案( l c a r s ) ,它定义了两类节点:主节点和辅助节点,将整个复制流程划分为四个功能相对独立的构件:变化捕获、同步、数据分发以及冲突的检测与解决。变化捕获器采用了基于变更轨迹表的变化捕获方法,同步器使用了广播更新的同步方式,分发器使用了副本分割算法,冲突处理器采用了基于时钟向量法的冲突解决策略。此外,在主节点和辅助节点之间设计了数据传输算法和时钟同步算法,保证了数据的一致性。该方案具有平台无关性,能实现同构数据库和异构数据库的数据复制,同时支持双向的数据复制。根据本文提出的l c a r s 复制方案及其它理论,开发了数据复制工具u n a i d e dr e p l i c a t o r 。实验结果表明它体现了数据复制理论的基本特点,达到了预期目标。关键词:分布式数据库,数据复制,变化捕获,同步,冲突r e s e a r c ho fd a t ar e p l i c a t i o ni nd i s t r i b u t e dd a t a b a s es y s t e ml ij u a n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y )d i r e c t e db ys e n i o re n g i n e e rz h a n gw e n d o n ga b s t r a c td a t ar e p l i c a t i o ni sav e r yi m p o r t a n tt e c h n o l o g yi nt h ed i s t r i b u t e dd a t a b a s e ,w h i c hc a ni m p r o v ed a t aa v a i l a b i l i t ya n ds y s t e mp e r f o r m a n c e o w i n gt oi t sa c c e s s i n gl o c a ld a t aa n dt h ea v o i d a n c et oa c c e s sr e m o t ed a t au s i n gr e d u n d a n c y ,i tc a nn o to n l yr e d u c ec o m m u n i c a t i o nc o s ta n dr e s p o n s et i m eb u ta l s or u ns y s t e mr i g h t l ye v e ni np r e s e n c eo fs i t e sa n dc o m m u n i c a t i o nl i n ef a i l u r e t h i st h e s i sm a i n l ya n a l y s e st h eb a s i ct h e o r i e so fd i s t r i b u t e dd a t a b a s es y s t e ma n dd a t ar e p l i c a t i o nt e c h n o l o g y ,d i s c u s s e sd e t a i l e d l yt h ek e yt e c h n o l o g yt h a tt h es y s t e mr e a l i z e s ,p r o p o s e st h ea r c h i t e c t u r ea n da l g o r i t h mo fd a t ar e p l i c a t i o n , a n ds u m m a r i z e st h ei m p l e m e n t a t i o ns c h e m ao fh e t e r o g e n e o u sd a t a b a s er e p l i c a t i o n t h et h e s i sp r o p o s e san e wd a t ar e p l i c a t i o ns c h e m eb a s e do l ll o o s ec o n s i s t e n c ya g e n t t h ef r a m e w o r kd e f i n e st w ot y p e so fn o d e s :m a s t e xn o d ea n ds l a v en o d e s ;t h e nd e f i n e sf o u rc o m p o n e n t s :c a p t u r i n gm a n a g e r ,d i s t r i b u t o r s y n c h r o n i z e ra n dc o n f l i c t sm a n a g e r c a p t u r i n gm a n a g e ru s e sac a p t u r i n gm e t h o db a s e do nc h a n g et r a c et a b l e d i s t r i b u t o ri i s e sac o p yp a r t i t i o na l g o r i t h m ,s y n c h r o n i z e rb r o a d c a s t su p d a t e ,c o n f l i c t sn l a n a g e rc a nd e t e c ta n dr e s o l v ec o n f l i c t st h r o u g hv e c t o rc l o c k i na d d i t i o n , d a t at r a n s m i s s i o na l g o r i t h ma n dc l o c ks y n c h r o n i z a t i o na l g o r i t h ma r eu s e db e t w e e nm a s t e rn o d ea n ds l a v en o d e s i naw o r d ,t h es c h e m ec a l ls o l v et h eb i d i r e c t i o n a ld a t ar e p l i c a t i o no v e r d a t a b a s e s a c c o r d i n gt ot h er e p l i c a t i o ns c h e m eb a s e do nl o o s ec o n s i s t e n c ya g e n ta n do t h e rt h e o r i e s ,ap r o t o t y p et o o ln a m e du n a i d e dr e p l i c a t o ri sd e v e l o p e d t h et e s t i n gr e s u l t ss h o wt h a tu n a i d e dr e p l i c a t o ra c t u a l i z e st h ec h a r a c t e r so f a b o v et h e o r i e s ,a n da c h i e v e so u re x p e c t a t i o n k e yw o r d s :d i s t r i b u t e dd a t a b a s e ,d a t ar e p l i c a t i o n , c h a n g ec a p t u r e ,s y n c h r o n i z e ,c o n f l i c t独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人己经发表或撰写过的研究成果,也不包含为获得石油大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。关于论文使用授权的说明本人完全了解中国石油大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件及电子版,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。( 保密论文在解密后应遵守此规定)学生签名:奎缉2 。0 7 年f 月1 日z o 7 年牛月f日中国石油大学( 华东) 硕士论文第1 章前言1 1 研究背景及意义第1 章前言在分布式数据库系统中,为了提高系统的可靠性、存取效率和改善系统的性能,采用数据复制的方法来实现分布数据的同步,即在各分布节点存放整个( 或部分) 数据库的副本。数据库的广泛应用加上网络技术的飞速发展,使得地理上广泛分布的数据库互相连接在一起,而这些数据库在形式上是复杂多样的,表现出很大的异构性,如何能灵活和高效地利用这些异构数据库中的信息成为一个热点问题。异构数据库复制方法就是解决这一问题的有效途径,目前对它已经进行了一些研究,其中一些成果也在实际中被应用并取得了相当成效,但是由于对两个领域结合的紧迫性和复杂性不够重视,对异构数据库复制的研究在很多方面还处于探索阶段,需要进一步探索的地方还很多。现有的各种数据复制方案一般都依赖于数据库管理系统( d b m s ) 的支持,对异构数据库之间的双向数据复制问题解决得不好;而且在满足企业用户灵活的复制要求方面也有一定的欠缺;彼此之间的兼容性较差,它们都普遍存在着符合某种体系结构或标准的前提,因而导致对系统资源的要求较高而应用范围却受到限制。数据复制可分为同步复制与异步复制。同步复制非常依赖网络,要求系统资源随时可用,所以不适于慢速网络环境;即在慢速网络中,只能采用异步复制。本文试图提出一种适合于慢速网络的数据复制方案,该方案不依赖于具体的d b m s ,对资源要求低,可以按实际业务灵活定制复制数据,避免复制不必要的数据,有较少的通信量。中国石油大学( 华东) 硕士论文第1 章前言在分布式数据库系统中,数据复制技术有着重要的现实意义。当系统的某一个或几个节点发生故障时,可以对其它节点上的相同副本进行操作,不会因某处故障而造成整个系统的瘫痪,提高了系统的容错能力;另外,系统可以选择离用户最近的数据副本进行操作,降低了通信成本,改善了整个系统的性能。数据复制技术支持网络断续连接操作,且具有实施相对简单、投资少的优点,有着非常广阔的应用前景。近年来国内外许多成功事例都表明,从数据仓库、应用集成,到移动办公、电子商务,从高可用性系统、负载均衡,到嵌入式系统、互联网设备,数据复制在这些领域都发挥着重要作用。在理论方面,数据复制的许多理论也促进了分布式数据库的发展。比如两阶段提交协议保证了分布式事务的原子性,采用副本控制协议更新数据时减少了数据的不一致性。本文的工作对于研究分布式系统中数据的复制原理,具有很好的指导意义及参考价值,提出的数据复制方案和算法具有广泛的应用价值。综上所述,无论从理论研究还是从实际应用角度,数据复制技术的研究都具有十分重要的意义。1 2 国内外研究现状在分布式数据库数据复制领域,人们已经进行了大量的研究,提出了许多复制策略与算法;各个数据库厂商也提供了一些数据复制方案。1 2 1 国外研究现状( 1 ) 数据复制理论的研究:j i mg r a y 1 1 等人于1 9 9 6 年对副本控制技术作了分类,分类的标准是:2中国石油大学( 华东) 硕士论文第1 章前言更新在什么时候被传播( w h e nu p d a t e sa r ep r o p a g a t e d )哪些副本被更新( w h i c hc o p ie sc a nb eu p d a t e d )针对第一种情况,复制技术被分为同步复制和异步复制。同步复制是指在事务提交之前,更新操作在所有副本之间完成。异步复制是指在事务提交之后,更新操作才被传播到其它节点。早期的研究强调的是同步技术,同步复制技术传统的正确标准是单副本可串行性f 2 】( o n e - c o p ys e r i a l i z a b i l i t y ) 。尽管同步复制方法有很多优点,但这些思想很少被用在商业产品中,数据库设计者认为同步技术不实用,所以实际的商业数据库更倾向于使用异步复制模式,它们均使用了弱一致性模型【3 1 。为了发展异步方法以满足串行性,b r e i t b a r t 【4 等人做了很多努力,但它们都是基于主副本方法,基本思想都是限制主副本及其它副本的放置,控制在其它副本中的更新传递次序。至于第二种标准,也分成两种情况:主副本技术( p r i m a r yc o p y ) 和随处更新技术( u p d a t ee v e r y w h e r e ) 【5 】。在主副本技术中,节点必须将请求信息发送到一个特殊的节点,该节点就是主副本所在的主节点;然后主节点再将更新结果发送给其它节点。随处更新技术使得对数据项的更新操作能在系统中每一个节点上执行,而不需要专门处理的节点。另外,g r a y 和r e u t e r 6 ,b e m s t e i n 7 1 等和v a l d u r i e z 8 i 对两阶段提交协议( 2 p c ) 及其它同步复制协议做了权威性分析;a g r a w a l l 9 】等和s a i mi lo 】分别详细总结了悲观复制和乐观复制的算法。c e r i j 等对数据库复制中的基本理论,特别是修改方法进行了详尽的分类;k e m m e 和a l o n s o l l 2 l 通过分析一系列复制协议,指出现有复制方案还存在一些问题没有解决;b r e i t b a r t l l 3 1 等全面地研究了有关传播协议,并在此基础上提出改进后的新协议。在分布式计算环境下对数据复制的研究最具代表性的是:jg r a y 的中国石油大学( 华东) 硕士论文第1 章前言两级复制机制【1 4 】,c o d a 系统以及缓存失效广播技术等。两级复制机制采用了主拷贝更新复制协议,将分布式自治的节点分为两类:基节点和移动节点;在基节点之间建立第一级复制,分布式自治节点之间建立第二级复制。该方法可以完成在网络断续连接情况下数据库的暂时更新,一旦重新建立连接可以完成永久更新以保持系统的一致性状态。传统的副本是各个副本内容都完全一样,这种情况存在的原因是过去的复制需求以及处理流程比较单一;但是近年来,随着更多领域的飞速发展,再加上社会需求的多样化,使副本的形式发生了变化,出现了多分割副本【l q 。多分割副本如何复制是目前面临的难点课题,其中主要包括交叠副本数据不重复传播、未修改数据不进行传播及并行链路中多分割副本复制问题。( 2 ) 数据复制的应用领域:产业界对异构数据库复制的兴趣十分浓厚。他们不但取得了不少技术成果,而且其中一些己被广泛地应用,这些技术成果是本文研究资料的一个重要来源。几家大型数据库厂商在其主流数据库产品同构复制的基础上,进一步地提出了各自的异构数据库复制方案,其中o r a c l e 主张采用数据库转换器方案,s y b a s e 利用l t m ( 日志传输器) 方案,i b m 公司使用c c d ( 一致变化数据) 表方案,微软公司则提出了出版者预订者方案。这些主流的数据库管理系统( 如o r a c l e ,s y b a s e ,d b 2 ,s q ls e r v e r ,i n f o r m i x ) 都己经开发和实现了对分布式数据处理的支持,这些实现方法具有较高的安全性和可靠性,但是由于其实现严重依赖内部机制,因而般仅能用于自己家族的数据库系统,别的数据库系统往往无法使用;即便能够支持异构数据源,其支持程度也相当有限,也就是说不能完全解决异构问题。此外,一些独立软件开发商也开发出为数众多的具有异构数据库复制功能的中间件产品,获得了市场上的普遍认同。其中比较著名的有4中国石油大学( 华东) 硕士论文第1 章前言p e e r d i r e c t 公司的p d r e t 用、s y n c h r o l o g i c 公司的s y n c k i t l l 8 1 、s y w a r e 公司的d a t a s y n c 1 9 1 等。这些方法因为独立于数据库系统本身,能够解决各种异构问题;能够适应主从复制和同步复制;能够提供丰富的a p i ,可扩展性好:但是这些复制中问件都只针对一部分应用领域,没有一个做到真正的“万能”。由于把具体应用功能的实现和复制功能的实现集成在一起,因此要扩展或替换复制中间件的功能十分困难。1 2 2 国内研究现状在国内,数据复制技术在分布式系统中的应用也越来越成熟,其中比较典型的系统有:( 1 ) 金仓系统【2 0 l :中国人民大学的移动数据库系统金仓( k i n g b a s e )对数据库复制的理论和实现进行了研究,提出了一种新的分布式自治复制数据库系统模型一事务级结果集传递( t l r s p ) 移动复制模型,重点分析了该模型中的冲突检测及消解策略,提出了基于版本号的冲突检测与解决策略、简单的复制权限控制和t l r s p 移动复制算法等。它存在的问题是系统冲突的检测及消解复杂,需要用户的动态干预。( 2 ) g a l a x y 系统( 2 i 】:东南大学的g a l a x y 系统在对包括数据库系统、w 曲文件、文本等在内的各种异构数据源的集成、转换以及查询优化等方面作了较全面的分析研究;但是它在设计时支持重复副本和水平分片,在实现时却不支持分片,而是用快照技术来弥补不能分片的缺陷。( 3 ) 石化示范工程【捌:中科院软件所对象技术中心承担的“石化应用软件示范工程”,利用消息中问件i s m q 实现了实时数据库环境下的数据复制,已经在实际中应用。( 4 ) 面向移动的r 瓜1 2 3 ,2 4 】:国防科技大学周兴铭院士主持的研究组提出面向移动领域的t t r ,它是一个由服务器级复制、空中复制和客户级缓存组成的三级复制体系结构;并对数据广播进行深入地研究,提出中国石油大学( 华东) 硕士论文第1 章前言了启发式多盘调度算法,其工作主要集中在对传统复制技术的改造以适应分布式移动数据库的需求。1 3 本文的章节安排本文共分六章。文章的结构安排如下:第1 章前言,阐明了本课题的研究背景、研究意义、研究现状及主要研究内容。第2 章系统地介绍了分布式数据库中数据复制的理论,对数据复制的关键技术进行了归纳和总结,重点研究了变化捕获与冲突检测;然后分析和总结了目前最常用的几种异构数据库复制方案。第3 章针对在线数据和离线数据的处理情况,以一种全新的思路提出了松散致性代理复制方案( l c a r s ) ,对它的总体结构、各个主要构件及其它方面作了详细介绍,该方案具有完全异构性、与d b m s 无关性、普适性的特点。第4 章针对分布式数据库系统的本质特点,提出了副本分割算法,该算法能够提供更高的可用性、持久性和安全性,有效降低了系统开销。根据l c a r s 方案的基本思想,在主节点和辅助节点之间还设计了数据传输算法和时钟同步算法,保证了数据的一致性。第5 章根据l c a r s 方案及相关理论,开发出一个原型系统:u n a i d e dr e p l i c a t o r ,实验结果验证了第3 章提出的复制方案的可行性。第6 章结论,对本课题研究的结论进行了总结,对下一步工作进行了展望,并提出了本论文的创新点。6中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术第2 章分布式数据库数据复制技术2 1 分布式数据库的定义及分类分布式数据库( d d b ) 是指物理上分布在计算机网络的不同节点,但逻辑上又属于同一个系统的数据集合嗍。分布式数据库管理系统( d d b m s )是建立、管理和维护分布式数据库的软件系统。在复制系统中,每台能够独立工作的计算机称为一个节点( 或站点) 。按分布式数据库系统( d d b s ) 中各节点的局部数据库管理系统的数据模型对d d b s 进行分类,可分为同构型d d b s 和异构型d d b s 。如果各节点上的数据模型都是同一数据模型,则称该数据库系统是同构型d d b s 。如果各节点上的数据模型的类型是各不相同的,则称该数据库系统是异构d d b s 。数据复制的主要问题是由于数据异构引起,本文着重分析和解决数据异构引起的问题。2 2 数据复制的概念及分类数据复制有两种传统的分类方法,根据更新传播的方式分为同步复制和异步复制;根据参与复制的节点间的关系分为主从复制和对等复制脚l 。( 1 ) 根据更新传播的方式分类同步复制( 也称急切复制) :复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其它所有的复制节点。同步复制技术适用于那些对于实时性要求较高的商业应用中。7中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术异步复制( 也称懒惰复制) :所有复制节点的数据在一定时间内是不同步的。如果复制环境中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其它所有复制节点。复制节点之间的数据暂时是不同步的,但传播最终将保证所有复制节点间的数据一致。同步复制的优点是可以保障副本之间的一致性及较强的容错性,但它也带来一系列问题,其中包括:死锁、通信量增加、节点规模受限制及事务响应时间延长。异步复制的优点是降低了通信量并且缩短了响应时间,因而可提高系统效率;但它的缺点是可能在不同节点的副本之间存在着不一致,还可能有潜在的数据冲突,它所引起的事务回滚的代价较大。虽然异步复制会增加事务回滚的可能性,但它还是一种普遍采取的方法,特别是在连接不稳定的网络中,一些研究表明,在加以适当的限制条件下,异步复制方法在性能上优于同步复制方法。( 2 ) 根据参与复制的节点间的关系分类主从复制主从复制也称单向复制,参与数据库的角色是固定不变的。主从复制只允许从主数据库复制数据到从数据库中,更新数据的操作只能在主节点进行,从节点上的副本是只读的,如果想对从节点的副本进行修改必须先修改主节点上的主本,然后再同步到从节点的副本上,这样就能从根本上预防复制冲突的发生。对等复制对等复制也称双向复制、或随处更新( u p d a t ea n y w h e r e ) 复制,参与数据库既是源数据库也是目标数据库,复制可同时在两个方向进行,这时复制对象的所有副本都是可读写的,修改其中任何一个都会最终影响全部副本。在对等复制中,各个节点的地位是平等的,可以相互复制数据。用8中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术户可以在任何节点读取和更新全局数据,因此在这种结构中可能会产生更新冲突,必须有解决冲突的机制。比较上述两种结构,主从结构实现起来比较简单,易于维护数据一致性,但由于数据只能在主数据库更新,降低了系统的自治性。对等结构中,各节点高度自治,可用性好,但是它必须解决修改冲突,然而解决修改冲突的难度较大、系统开销大,因而其管理的代价也很高,不过对等复制比主从复制的适用范围更广一些。2 3 数据复制存在的问题n i c o l a 和j a r k e l 2 n 把数据复制产生的问题归纳为两个方面:( 1 ) 副本控制:如何在可接受范围内维护同一复制对象的多个副本相互之间的一致性,即“h o w ”和“w h a t ”的问题。( 2 ) 副本布放:对于同一复制对象的多个副本,把它们分布在哪些节点以及在什么时候进行分布,也就是解决“w h e r e ”和“w h e n ”。这两个问题其实是密切相关而又不可分割的,对数据库复制的研究基本上都围绕着它们展开。相对而言,本文内容更偏重于前者。数据一致性是指在数据库系统中,要保证多个副本之间的一致性,即任何时候在逻辑上只有一个正确值,不同节点上的并发事务在多个副本上的操作要满足单副本串行性。2 4 数据复制的相关术语( 1 ) 复制对象复制对象就是被复制的数据。在数据复制时,数据表示和存储对象相互之间都蕴含了一定的逻辑联系,可以按要求进行分割和组合,因此复制对象不一定采用与存储对象相同的基本单位。9中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术在关系数据库中,表示和存储的基本单位是关系。复制对象可以是整个关系、关系的部分行或列、索引、视图、过程或者它们的组合等。( 2 ) 更新方式更新方式表示更新数据副本时所使用的传输数据的形式。更新方式有三种基本形式2 8 1 :第一种是完整拷贝( f u l lc o p y ) 方式。不管复制对象有没有改变,以及哪些数据项发生改变,都将它的全部内容传输给相应节点。完整拷贝的优点是实现起来简单,不占用额外资源。其缺点是效率较低,而且不能用于同步复制和对等复制。除了复制初始化、崩溃恢复,它只能用于数据规模不大的场合。第二种是增量更新( i n c r e m e n t a lu p d a t e ) 方式。这种方式下传输的数据是复制对象的全部变化( 修改、插入、删除) 序列。增量更新的最大优点就在于它是唯一符合单副本可串行性的更新方式;因此能提供详细的控制信息,适用于任何类型的复制。但它的缺点是需要一些特定机制的支持,需要的资源也比较多。还有一种是净变化( n e tc h a n g e ) 方式。更新的数据是始、末两个时刻复制对象的净变化值。显然,净变化方式的传输量最小,在最坏情况下也只分别与前两种方式相等;而且它有多种实现方法,这是它的优点。但是它的缺点也很明显,由于它不以分布式事务为基础,因此不能用于同步复制,而且提供的控制信息相对简单,在对等复制时会遇到问题。( 3 ) 选时方式选时( t i m i n g ) 方式表示在什么时候刷新副本。本文归纳出三种基本的选时方式1 2 9 :最常见的选时方式是固定间隔方式。每隔一个固定时间段就更新副本。这种方式容易调度,效率也较高,时间间隔的大小对数据一致性的强弱程度和系统性能的高低有较大影响。另一种选时方式是请求响应方1 0中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术式,根据用户或程序的请求命令来更新副本。请求响应方式是基于事件驱动的,它的突出特点是灵活性强,多用在移动环境、动态环境以及需要人工干预的场合。还有一种选时方式是立即响应方式,源数据库的复制对象一旦发生变化,就立即分发到目标数据库。立即响应方式能保证或接近达到数据的紧密一致性,因此它能适用于同步复制和异步复制。2 5 数据复制体系结构数据复制的流程是:在源数据库获得复制对象的内容或变化情况,然后把它们从源数据库传送到目标数据库,并修改那里的副本。如果是对等复制,还需要检测副本之间是否有复制冲突并解决它们。根据以上描述,把整个复制流程分为四个功能相对独立的处理步骤:变化捕获、数据分发、同步以及冲突的检测与解决【3 0 1 。数据复制的体系结构如图2 - 1 所示:2 5 1 变化捕获图2 - ! 数据复制的体系结构图变化捕获是数据复制的重要环节,它直接决定了数据复制的更新方式和选时方式,对其它环节的影响也比较大,因此是本文研究的重点内容之一。变化捕获不仅要获得复制对象的变化序列,还要在对等复制时提供尽可能详细的控制信息。中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术通过分析目前常用的捕获方法,本文总结出六种基本的变化捕获方法。它们分别是基于快照法,基于触发器法,基于日志法,基于a p i 法,基于时间戳法,基于影子表法【3 l 】。( 1 ) 基于快照法快照( s n a p s h o t ) 是数据库中存储对象在某一时刻的即时映像,通过为复制对象定义一个快照或采用类似方法,可以将它的当前映像作为更新副本的内容,如图2 - 2 所示。散据厍图2 - 2 基于快照法的捕获基于快照法不需要依赖特别的机制,也不占用额外的系统资源,管理和操作也非常容易,而且在复制初始化和崩溃恢复时是必不可少的,但它不能用于同步复制和对等复制。( 2 ) 基于触发器法在源数据库为复制对象创建相应的触发器,当对复制对象进行修改、插入和删除等d m l ( 数据操纵语言) 命令时,触发器被激活,将变化传播到目标数据库,如图2 3 所示。基于触发器法对比较复杂的复制任务需要非常复杂的配置和实施,一定程度上造成管理上的不便。图2 - 3 基于触发器的捕获( 3 ) 基于日志法中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术数据库事务日志作为维护数据完整性和数据库恢复的重要工具,其中包含了全部成功提交的数据库操作记录信息。基于日志法就是通过分析数据库事务日志来捕获复制对象的变化序列,如图2 4 所示。大多数数据库都有事务日志,利用它不仅方便,也不会占用太多额外的系统资源,该方法对任何类型的复制都适用。利用日志,复制对象的变化序列很容易在其它节点再现。这不仅能提高效率和保证数据的完整性,还能在对等复制时提供详细的控制信息。圈2 - 4 基于日志祛的捕获( 4 ) 基于a p i 法一些小型数据库和非关系型数据库通常没有触发器和日志机制,另一些数据库则因为某些原因不能使用上述的捕获方法。此时可以在应用程序和数据库之间引入一类中间件,由它提供一系歹i j a p i ( 包括0 d b c 驱动程序) ,这些中间件在完成应用程序对数据库修改的同时,也把复制对象的变化序列记录下来,从而达到捕获的目的,如图2 5 所示。图2 - 5 基于a p i 的捕获( 5 ) 基于时间戳法中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术基于时间戳的方法需要相关应用系统中的每个表都有一个时间戳字段,以记录每个表的修改时间。它主要根据数据记录的更新时间判断是否最新数据,据此对数据副本进行相应修改。这种方法虽然不影响原有应用的执行效率,但是需要对原有系统做较大的调整,而且不能捕获到那些并非通过应用系统引起的操作数据的变化。( 6 ) 影子表法在初始时为复制对象表建立一个影子表,也就是做一份当时的拷贝,以后就可以在适当时机通过比较当前源表和影子表的内容来获取净变化信息。2 5 2 数据分发分发也称传播( p r o p a g a t e ) ,负责节点之间数据的发送和接收。一般情况下,它把副本的更新信息从源节点传输到目标节点,分发器在不同场合还有一些其它作用,例如在同步复制时分发器要承担协调者的任务:在对等复制时如果发现复制冲突,分发器还负责传递控制信息和仲裁结果。分发由不同的节点承担会产生不同的分发模型,从而影响复制的组织形式和效率。如果由源节点承担分发任务,传播内容表现为由源节点主动地发送给目标节点,这就是“推式( p u s h ) ”模型;而如果由目标节点承担分发任务,传播内容表现为由目标节点向源节点申请而来,这就是“拉式( p u l l ) ”模型。两者相比,“推式”模型的优势在于效率较高,而“拉式”模型在于容易调度p ”。还有一种“推拉结合”模型:分发任务由第三方节点承担,如图2 6所示,当节点数目比较少或复制任务比较轻松时,它无论在性能还是在成本上都不合算,但当节点增多而又有大量复制任务,特别是需要把复制任务独立出来时,推拉结合模型却是最合适不过的。目前支持这种分1 4中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术发模型的还不多,仅有微软的s q ls e r v e r 。2 5 3 同步图2 - 6 推拉结合模型同步是指根据更新的数据内容和冲突的仲裁结果来修改目标数据库,从而保证副本的一致性。通常情况下,同步紧接着分发环节执行,有时甚至被捆绑在一起,三种分发模型同样适用于同步;因此一些文献也把分发模型称为同步模型或预订模型。更新数据内容可以是源节点上复制对象的完全拷贝、变化序列或净变化。目标数据库在按不同方式处理它们时,对主键的要求也不一样。c r e a t e 方式:用更新内容创建一个新表。此时源表和目标表是否有主键,以及主键域是否等价都不是必要条件。i n s e r t 方式:将更新内容作为新记录插入已存在的表。有两种情况:在已经定义主键时,目标表的主键字段数一定多于源表;而在没有定义主键时目标表包含重复记录的现象就不可避免。r e p l a c e 方式:修改己存在表的相关记录。只有在更新数据内容是完全拷贝的情况下,才可以不必定义主键,否则源表和目标表都必须有主键而且主键域必须等价。c r e a t e 方式和i n s e r t 方式只能在异步主从式复制场合使用,而r e p l a c e 方式没有这方面的限制。中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术2 5 4 冲突的检测与解决( 1 ) 冲突类型由于使用定时增量复制技术,缺少并发性实时控制机制,所以对主从数据库的增加、修改和删除操作就很有可能产生数据冲突。具体地说,主要有以下几种吲:数据添加冲突数据添加冲突是指对同一个数据表在不同节点添加了同一条记录或者主键值相同的记录,当进行数据复制时便发生数据添加冲突。数据更新冲突数据更新冲突是指一个记录的两个拷贝在不同的节点被同时( 在两次刷新之内的间隔里) 更新为不同的内容( 如果其中一个更新的是主键值属性,那么问题更严重) ,在这种情况下会出现数据更新冲突。数据删除冲突数据删除冲突是指一个记录的两个拷贝,在两次刷新之间的间隔里,一个拷贝被删除而另一个被修改,在这种情况下会发生数据删除冲突。( 2 ) 冲突解决策略针对以上几种冲突情况,可以采用以下几种冲突解决策略:基于时间印的机制。时间印是指事务在某一节点激活时由系统赋予的全系统唯一的一个标识,这个标识能够表示事务激活的先后次序。为了实施这种策略,可以在更改历史表中增加一个时间印属性,以记录更改行的事务激活的时间。当实施同步时,系统如果检测到冲突,则比较冲突行的时间印值,并选择时间印最晚的副本的数据作为最终的数据。基于优先级的机制。在分布式数据库中,给各节点预先分配一个标识优先级的值。当实施同步并且发现冲突时,则选择优先级最高的节点的副本数据作为虽终决定的数据。定制的冲突解决机制。冲突解决策略一般是根据实际的具体应用1 6中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术决定的,而实际应用是千变万化的,因而提出一种普遍适用的冲突解决机制是不太现实的,这时可以利用分布式数据库系统提供的工具建立符合特定业务规则的冲突解决机制。2 6 几种经典的异构数据库复制方案目前有许多数据库厂商在其产品中实现了复制功能,一些独立的软件开发商也开发出数目众多的具有相同或相似功能的软件和产品。本文关注的重点就是异构数据库复制方案,选择几种典型方案分析其工作机制,并总结出各自的优缺点。2 6 1o r a c l e 的转换器方案o r a c l e 的对称复制有效结合了基于快照和基于触发器两种复制方式。基于快照法通过在本地节点定义一个与远程节点数据对应的快照,可以定时地传输远程数据到该快照中并自动同步数据,其粒度可以是整个数据库、整个表或者是表中的部分记录。基于触发器法利用预先定义的触发器,当对本地数据库的记录进行u p d a t e 、i n s e r t 、d e l e t e 操作时,它以实时或延迟r p c ( r e m o t ep r o c e d u r ec a l l ,远程过程调用) 的方式把变化实施到远程节点上。o r a c l e 主张通过数据库转换器【3 4 】来实现异构数据库复制。如图2 7所示。复制方向是对称的,可以是o r a c l e 数据库到非o r a c l e 数据库,也可以是非o r a c l e 数据库到0 r a c l e 数据库。图2 7o r a c l e 的转换器方案转换器方案的主要优点实现简单和整体化程度高。其缺点在于:中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术( 1 ) o r a c l e 使用了若干独特的机制以支持同构的对等复制,如共享属主和动态属主,这决定了转换器方案通常只能用于主从式的异构复制;( 2 ) 由于数据库转换器的复杂性,这种方案的运行性能受到限制,而成本却很高。2 6 2s y b a s e 的l t m 方案s y b a s e 的复制方案是基于日志的,它的系列服务器产品中包含了专用于复制的复制服务器。s y b a s e 复制的关键成分是l t m ( l o gt r a n s f e rm a n a g e r ,日志传输管理器) 【3 5 1 ,它是一个在源节点检测数据库日志的进程或线程,一旦l t m 发现源数据发生变化,就立即通知本地的复制服务器,将变化序列尽快地分发给远程节点,那里的复制服务器接收到以后,同步目标数据而完成复制过程,如图2 8 所示。当从s y b a s e 数据库复制数据“到”非s y b a s e 数据库时,只需在目标节点运行复制服务器就可以解决问题;而从非s y b a s e 数据库复制数据“到”s y b a s e 数据库时,还需要为非s y b a s e 数据库再提供相应的l t m 。图2 8 中的数据服务器可以是s y b a s es q ls e r v e r 服务器,也可以是其它数据库服务器。l t m 方案的主要优点在于:( 1 ) 由于最多只需构造l t m ,因此实现起来比较容易;( 2 ) 支持o p e ns e r v e r o p e nc l i e n t ,它具有良好的开放性。加上s y b a s e 又提供t r c l ( 复制命令语言) ,因此l t m 方案的适用范围广而且易于移植。它的主要缺点在于:( 1 ) 受c s 体系的限制,l t m 方案一般只支持主从式复制;( 2 ) 当通过广域网复制时,需要事先人工规划网络路径,同时对网络质量的要求也较高。中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术源数据图2 - $ s y b a s e 的l t n i 方案2 6 3i 阴的c c d 表方案目标数据i b m 的数据库家族是支持非关系型数据库复制的少数几个厂商之一。i b m 的复制方式也是基于目志的,i b m 的复制有三个主要成份:c d ( c h a n g ed a t a ) 表、捕捉程序和实施程序。c d 表中存放着复制源和复制目标的内容,其中有一类称为c c d ( c o n s i s t e n tc d ) 表用于异构复制场合;捕捉程序从数据库日志中获取复制源变化信息并存入c d 表;实施程序则从c d 表读取内容并根据它们来修改目标数据库。如图2 - 9 所示。i b m 的c c d 表方案【3 6 l 具有以下优点:( 1 ) i b m 的数据库家族庞大,并且i b m 开发了一系列的辅助工具,因此它的支持面很广;( 2 ) 由于提供的复制数据字典非常完善,c c d 表方案的数据库模式转换功能优于其它数据库厂商的方案;不过c c d 表方案也有一些缺点:( 1 ) c c d 表要占用较多的系统资源比如存储空问、进程等;( 2 ) 需要安装各种数据库的客户端,通过客户端连接到其它类型的数据库。1 9中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术源数据图2 - 9m m 的c c d 表方案2 6 4 微软的出版者预订者方案微软的s q ls e r v e r 提供了很全面的复制功能,除了快照复制、事务复制( 其实就是增量修改复制) 之外,还有专门解决对等复制的合并复制。s q ls e r v e r 的复制方案称为“出版者预订者”方案口7 1 ,其中有三个主要角色:出版者、预订者和分发者。出版者负责在源数据库建立出版物;预订者负责在目标数据库通过预订来接收数据;分发者则按照“推拉模型”来控制数据的传播。其它重要的组成部分包括:日志阅读器、快照代理、合并代理、分发代理和分发数据库等。出版者预订者方案建立在o d b c 0 l ed b 标准上,要实现s q ls e r v e r数据库“到”和“从”非s q ls e r v e r 数据库的复制,必须在s o ls e r v e r担任分发者的前提下,为非s q ls e r v e r 数据库创建相应的角色和代理,如图2 - 1 0 所示。“出版者预订者”方案的优点主要表现在:( 1 ) “出版者预订者”方案的复制功能最全面,不但有解决对等复制的合并复制,还有用于同步复制的选项;( 2 ) 0 d b c 0 l ed b 标准已经成为s q l 标准的组成部分,便于提高应用程2 0中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术序的可移植性;( 3 ) 出版者预订者方案的框架和构造规范而且明确。不过该方案也有一些缺点妨碍了它的进一步应用:( 1 ) 必须由s q ls e r v e r 服务器担任分发器角色;( 2 ) 出版者预订者方案涉及到的因素比较多,实现起来比较繁琐。幽2 i o 微软的。出版者,预订者4 方案从上述几种方案可以看出,尽管互相之间有着比较明显的差别,但数据库厂商方案的本质是类似的,也就是说它们都是在其主流数据库产品同构复制的基础上,配合厂商的体系结构或标准而发展起来的。这些异构方案既是对d b m s 传统功能的延伸,也是厂商整体发展策略和市场定位的体现。总的来看,数据库厂商方案的优点主要有:( 1 ) 这些方案与d b m s 核心技术紧密结合,充分利用了数据库系统的特点以及厂商的技术优势,因此在运行性能方面有着明显的优势;( 2 ) 这些方案能很好地解决平台异构和数据库模式转换问题:( 3 ) 厂商大多提供了一些辅助工具可以协助用户更好地完成复制任务。数据库厂商方案的不足之处主要有:中国石油大学( 华东) 硕士论文第2 章分布式数据库数据复制技术( 1 ) 各方案都采用与d b m s 核心关系紧密的实现技术,因此不一定适用于其它d b m s ,也就是说这些数据库厂商方案不是完全异构的;( 2 ) 向用户和开发者提供的接口是固定的、静态的,在要增加新功能

温馨提示

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

评论

0/150

提交评论