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

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

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

文档简介

摘要随着企业信息化的发展和网络与计算机技术在企业中的广泛应用,如何高效、安全地保持数据库之间数据同步,使各部门既能独立地处理本部门的数据,也能实现部门间协调处理跨部门事务,做到企业中各部门之问共享信息,是现代企业应用系统中需要考虑的重要问题之一。本文主要研究分布式数据库系统同步传输技术,通过数掘库同步机制研究解决了多级数据库信息交换过程中上下级数据库数据不一致问题,解决分布式数据库数据传输中发送数据库与接收数据库数据的一致性和传输系统的可靠性问题。分析和研究分布式数据库同步更新机制,探索相关技术。设计传输缓冲池,通过软件技术保证发送数掘缓冲池与接收数据缓冲池同步一致,以确保发送数据库与接收数据库的一致性;采用数据库同志更新技术,传输过程中用同志传输代替数掘传输,减轻数据负载,提高传输效率。关键词:分布式数据库同步更新m o b i l i n k ;触发器a b s t r a c ta l o n gw i t ht h ed e v e l o p m e n to fe n t e r p r i s ei n f o r m a t i z a t i o na n dw i d eu s eo fn e t w o r ka sw e l la sc o m p u t e r , o n eo ft h em o s ti m p o r t a n ti s s u e st ob ec o n s i d e r e di nm o d e me n t e r p r i s ea p p l i c a t i o ns y s t e mi sh o wm a i n t a i nd a t as y n c h r o n i z a t i o ne f f i c i e n t l ya n ds a f e l ya m o n gd a t a b a s e s ,w h i c hc o u l dn o to n l ye n a b l et h es e t t l e m e n to fd a t ap r o c e s s i n gw i t h i na n da m o n ge v e r yd e p a r t m e n tt oe n s u r et h es h a r i n go f i n f o r m a t i o n t h em a i nt o p i co ft h i sp a p e ri st h et r a n s m i s s i o no fd i s t r i b u t e dd a t a b a s es y n c h r o n i z a t i o nt e c h n o l o g y d a t a b a s es y n c h r o n i z a t i o nm e c h a n i s mc o u l dr e s o l v et h ec o i n c i d e n c eo fan u m b e ro fl o w e r - l e v e ld a t a b a s eo nt h ed a t a b a s ei n f o r m a t i o ne x c h a n g ep r o c e s sd a t aa n dg i v es o l u t i o nt od d b s sd a t at r a n s m i s s i o ns e n d i n ga n dr e c e i v i n gd a t a b a s ec o n s i s t e n c ya n dr e l i a b i l i t yo ft h et r a n s m i s s i o ns y s t e m t h ew a yt oe n s u r et h ec o i n c i d e n c eo fd a t ad i s p a t c h i n ga n dr e c e i v i n ga r et h es y n c h r o n i s ma n a l y s i n ga n ds t u d y i n gd i s t r i b u t e dd a t ab a s er e n e w sm e c h a n i s mw i t hp r o b i n gt h er e l e v a n c et e c h n o l o g y ;d e s i g n i n gt h ec o m p a t i b i l i t yt r a n s f e r r i n gb u f f e rp o o l ,e n s u r i n gt h a ts e n d i n gd a t ab u f f e rp o o la n dt a k i n g o v e rd a t ab u f f e rp o o lc o i n c i d et oe n s u r et h a td i s p a t c h i n gad a t ab a s ea n dr e c e i v i n gad a t ab a s es y n c h r o l yb yt h es o f t w a r ee n g i n e e r i n g ;a d o p t i n gd a t ab a s ed a i l yr e c o r dt or e n e wat e c h n o l o g y , t r a n s m i s s i o np r o c e s si su s e f u ld a i l yr e c o r dt r a n s m i s s i o nr e p l a c ed a t at r a n s m i s s i o n ,l i g h t e nd a t al o a d s ,i m p r o v et r a n s m i s s i o ne f f i c i e n c y k e yw o r d s :d i s t r i b u t e dd a t a b a s es y n c h r o n o u su p d a t e ,m o b i l i n k t r i g g e r长春理工大学硕士学位论文原创性声明本人郑重声明:所呈交的硕士学位论文,分布式数据库系统同步技术研究是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文中已经注明弓用的内容外,本论文不包含任何其他个人或集体己经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果出本人承担。作者签名:避礁游舅丛r长春理工大学学位论文版权使用授权书本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学位论文版权使用规定”,同意长春理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权长春理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。作者签名:缒型年旦月同艚翩繇箨旦4 年丛月“日1 1 研究的目的和意义第一章绪论当今社会已经进入信息化时代,信息量的剧增使信息和数据处理处于越来越重要的地位,也成为人们越来越繁重的工作之一。计算机技术特别是数据库技术的发展和应用为信息和数据的处理提供了强有力的工具。近年来,分布式数据库的设计在国内许多系统中的应用已经日渐广泛。例如各银行的客户管理系统、民航的预定机票系统以及全国铁路运输管理信息系统等。随着企业的不断发展和壮大,企业的各子部门地处于不同区域的情况越来越多,为了使企业异地使用相同的数据,大多数企业都采用了数据库提供的同步技术来解决这一问题,但该方法操作难度较大,而数据库提供的同步技术也会因网络、电力等原因造成时间同步无法进行,引起数据的丢失等。由于系统的特点不同以及对于各系统要求的不同,在设计分布式数据库系统的过程中,仍然有许多要研究和解决的问题,而其中最重要的问题之一就是如何保证分布式数据库系统的数据同步以确保整个系统各数据库数据的一致性和安全性。1 2 国内外研究现状t 2 1 国外发展现状异构数据库的同步问题近几年才提出,一些专家学者对它的研究刚刚起步,因此目前还很少见到有对异构数据库同步进行系统而深入研究的成果。相比之下,产业界对异构数据库同步的兴趣要浓厚得多,进入较早,不但取得了不少技术成果,而且其中一些己被广泛地实际应用。1 几家大型数据库厂商在其主流数据库产品同构复制的基础上,进一步提出了各自的异构数据库复制方案。其中:( 1 ) o r a c l e 主张通过数据库转换器( o r a c l et r a n s p a r e n tg a t e w a y ) 来实现异构数据库同步,它的复制是对称的“1 。该方案的优点是:实现简单,整体性程度高。其缺点在于:该方案只能用于主从式的异构复制,且复制的数据规模不能太大,流程也不能太复杂。( 2 ) d b 2 使用c c d ( c o n s i s t e n tc h a n g ed a t a ) 表来实现异构复制,只要按要求建立c c d 表,就可以实现i b m 数据库“到”或“从”非i b m 数据库的复制“。该方案的优点是:支持面很广,提供的复制数据字典非常完善,因而它的模式转换功能优于其它数据库厂商。它的缺点是:对对等式复制支持有限,占用较多的系统资源,要建立和维护c c d表不容易,实现较为复杂。( 3 ) 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 ) 来实现异构复制,l t m 是一个在源结点检测数据库日志的进程或线程0 1 。该方案的优点是:实现比较容易,适用范围广,且易于移植。它的缺点是:该方案只支持主从式的异构复制,缺乏选时、调度等方面的选择,需要事先人工规划网络路径,同时对网络质量要求较高。( 4 ) s q ls e r v e r 提出出版者预订者方案“1 。该方案的复制方式最全面,不但有解决对等式复制的合并复制,还有用于同步复制的选项,该方案的框架和构造规范、明确。但该方案也有缺陷:必须由s q ls e r v e r 服务器担任分发器角色,只能在n t 平台运行,涉及到的因素比较多,实现比较麻烦。2 目前,广泛应用于商业当中的数据库同步方案主要分为两大类型“1 :分布式数据库采用的数据同步方法和同步中间件,一些i s v 也开发出大量具有异构数据库同步功能的软件和产品,获得市场的普遍认同。其中比较著名的有:( 1 ) p e e r d i r e c t 的p d r e ,它提出了一种基于控制表变化法的同步方法。p d r e 的数据传输是基于会话式的,它没有消息管理、网络路径规划之麻烦事,而且可以在低质量的网络环境中正常工作。p d r e 控制表中包含很详尽的信息,能够提供非常全面的多策略同步冲突解决规则。p d i z e 按照开放体系设计,有较强的扩展性能。它的不足是:不具备单个结点的可串行性,它在数据库模式转换、多重同步定义等场合存在一些问题:由触发器来捕获变化,存在一定程度的局限性。( 2 ) s y w a r e 的d a t a s y n c ,是通过影子表方案来实现。它的优点包括:独立于任何应用程序和支持平台,符合完全异构;简单易行,不仅适用于关系数据库,也适用于其它类型的数据库,甚至是半结构化的数据源;具有强大的数据转换功能。它的缺点包括:不符合单个结点的可串行性要求;存在f c l d 隐患,在对等式同步时会遇到许多问题;占用双倍的存储空间,而且每次获取变化时都需扫描整个源表和影子表,运行性能低。( 3 ) s y n c h r o l o g i c 的s y n c k i t ,是基于a p i 方法来实现。它的优点有:应用程序与运行平台相互独立,通过统一的a p i 连接,也是一种完全异构的方案,a p i 是可替换的,具有很强的灵活性。它的缺点也很明显:如果数据库修改是由那些不经过该类a p i 的操作引起,a p i 方案无法捕获到,导致它几乎只能在客户端使用,通过a p i 来操作数据库,运行性能很低。i 2 2 国内发展现状国内对于分布式异构数据库数据同步的研究与国际上相比存在较大的差距,只在一些文献中偶尔能发现部分相关的内容,其中比较有名的系统有锄:21 中国人民大学的金仓数据库系统( k i n g b a s e ) ,它对数据库复制的理论和实现进行了研究,提出基于版本号的同步冲突检测及解决策略、简单的复制权限控制等。2 东南大学的g a l a x y 系统,它对包括数据库系统、w e b 文件、文本等在内的各种异构数据源的集成、转换及查询优化等方面作了较全面的分析研究。3 国防科技大学的t t r ,它提出了面向移动领域的t t r ,是一个由服务器级复制、中间复制和客户级缓存组成的三级复制体系结构。4 中科院软件所对象技术中心承担的“石化应用软件示范工程”,它利用消息中间件i s m q 实现了实时数据库环境下的数据同步。1 3 研究内容及论文组织结构1 3 i 研究内容主要研究分布式数据库系统同步传输技术,解决分布式、异构数据库系统数据传输中发送数据库与接收数据库数据的一致性和传输系统的可靠性问题。各类异构业务系统间关联业务数据同步更新,广域网络系统业务整合与系统集成。目前,传输中间件采用数据传输方式传输数据,所需要传输的信息量相对较大,由于传输数据量大导致传输中断过于频繁,使传输无法进行。研究数据库日志更新机制,传输过程中用日志传输替代数据传输,减轻传输负载,提高传输效率。国外现有的消息中间件产品通过传输队列方式实现数据交换,由于数据的打包,解包和死信数据经常造成发送方与接收方数据库数据不一致,数据库间数据的一致性问题一直是数据传输领域的技术难题。分布式数据库系统同步技术研究在数据库问数据一致性的研究上主要包括:1 我们采用传输缓冲池同步传输技术,以确保发送数据库与接收数据库数据的一致性,发生故障自动回滚与断点续传确保系统安全可靠,解决在发生意外故障后数据丢失,发送数据库与接收数据库数据不一致等数据传输中的技术难题。2 数据库日志更新技术,避免大量数据传输,大大提高传输效率,比数据传输提高效率5 0 以上。采用日志传输可大大的节约传输时间,在网路不稳定的地区,由于网络性能不稳经常造成传输中断,频繁的续传、重传导致网络堵塞和死锁,影响系统的正常运行。日志传输使传输时间大大缩短,减少故障几率,提高了系统的稳定性。1 3 2 组织结构第一章绪论,介绍研究的现实意义、国内外研究现状及主要研究内容第二章介绍该研究涉及的相关理论第三章需求分析与总体设计,总体介绍系统以及各模块。第四章详细设计部分,详细介绍开发环境,系统实现的关键技术,数据库设计,部分程序代码设计。第五章总结与展望,总结系统开发的完成情况,指出不足和改进方向。4第二章数据库同步技术的相关理论2 1 分布式数据库分布式数据库( d i s t r i b u t e dd a t a b a s e ,d d b ) 是计算机网络环境中各场地( s i t e ) 或结点( n o d e ) 上数据库的逻辑集合。一般称传统方式的数据库为集中式数据库( c e n t r a l i z e dd a t a b a s e ,c d b ) ;称分布式数据库系统中的各场地数据库为局部数据库( l o c a ld a t a b a s e ,l 0 6 ) ,是物理的数据库;称分布式数据库为全局数据库( g l o b a ld a t a b a s e ,g o b ) ,是逻辑的数据库。分布式数据库具有分布性和逻辑协调性。分布性是指数据不是存放在单一场地为单个计算机配置的存储设备上,而是按全局需要将数据划分成一定结构的数据子集,分散地存储在各个场地上:逻辑协调性是指各场地上的数据子集,相互间由严密的约束规则加以限定而在逻辑上是一个整体。分布式数据库系统有两种:一种是物理上分布的,但逻辑上却是集中的。这种分布式数据库只适宜用途比较单一的、不大的单位或部门。另一种分布式数据库系统在物理上和逻辑上都是分布的,也就是所谓联邦式分布数据库系统。由于组成联邦的各个子数据库系统是相对“自治”的,这种系统可以容纳多种不同用途的、差异较大的数据库,比较适宜于大范围内数据库的集成。分布式数据库系统( d d b s ) 包含分布式数据库管理系统( d d b m s ) 和分布式数据库( d d b ) 。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储,由不同的d b m s 进行管理,在不同的机器上运行,由不同的操作系统支持,被不同的通信网络连接在一起。一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理结点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好像那些数据是存储在同一台计算机上,由单个数据库管理系统( d b m s ) 管理,用户并没有感觉什么不一样。分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。在集中式数据库中,尽量减少冗余度是系统目标之一。其原因是冗余数据浪费存储空间,而且容易造成各副本之间的不一致性。而为了保证数据的一致性,系统要付出一定的维护代价。减少冗余度的目标是用数据共享来达到的,而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因是:1 。提高系统的可靠性、可用性当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,不会因一处故障而造成整个系统的瘫痪。2 提高系统性能系统可以根据距离选择离用户最近的数据副本进行操作,减少通信代价,改善整个系统的性能。2 1 1 分布式数据库特点1 数据独立性与位置透明性数据独立性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本( 冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。分布透明性的优点是很明显的。有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样,当数据从一个场地移到另一个场地时不必改写应用程序,当增加某些数据的重复副本时也不必改写应用程序。数据分布的信息由系统存储在数据字典中。用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送。2 集中和结点自治相结合数据库是用户共享的资源。在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有d b a 负责监督和维护系统的正常运行。在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据,这些数据是本场地用户常用的。二是全局共享,即在分布式数据库的各个场地也存储可供网中其它场地的用户共享的数据,支持系统中的全局应用。因此,相应的控制结构也具有两个层次:集中和自治。分布式数据库系统常常采用集中和自治相结合的控制结构,各局部的d b m s 可以独立地管理局部数据库,具有自治的功能,同时,系统又设有集中控制机制,协调各局部d b m s 的工作,执行全局应用。当然,不同的系统集中和自治的程度不尽相同。有些系统高度自治,连全局应用事务的协调也由局部d b m s 、局部d b a 共同承担面不要集中控制,不设全局d b a ,有些系统则集中控制程度较高,场地自治功能较弱。3 支持全局数据库的一致性和和可恢复性分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性。除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。这是因为全局应用要涉及两个以上结点的数据。因此在分布式数据库系统中一6个业务可能由不同场地上的多个操作组成。例如,银行转帐业务包括两个结点上的更新操作。这样,当其中某一个结点出现故障操作失败后如何使全局业务滚回呢? 如何使另一个结点撤销已执行的操作( 若操作已完成或完成一部分) 或者不必再执行业务的其它操作( 若操作尚没执行) ? 这些技术要比集中式数据库复杂和困难得多,分布式数据库系统必须解决这些问题。4 复制透明性用户不用关心数据库在网络中各个结点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。6 易于扩展性在大多数网络环境中,单个数据库服务器最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。2 1 2 分布式数据库的优缺点1 分布式数据库的优点”1 :( 1 ) 具有灵活的体系结构( 2 ) 适应分布式的管理和控制机构( 3 ) 经济性能优越( 4 ) 系统的可靠性高、可用性好( 5 ) 局部应用的响应速度快( 6 ) 可扩展性好,易于集成现有系统2 分布式数据库的缺点:( 1 ) 系统开销大,主要花在通信部分( 2 ) 复杂的存取结构,原来在集中式系统中有效存取数据的技术,在分布式系统中都不再适用( 3 ) 数据的安全性和保密性较难处理2 1 3 分布式数据库系统的目标分布式数据库系统的目标,也就是研制分布式数据库系统的目的、动机,主要包括技术和组织两方面的目标:1 适应部门分布的组织结构,降低费用。7使用数据库的单位在组织上常常是分布的( 如分为部门、科室、车间等等) ,在地理上也是分布的。分布式数据库系统的结构符合部门分布的组织结构,允许各个部门对自己常用的数据存储在本地,在本地录入、查询、维护,实行局部控制。由于计算机资源靠近用户,因而可以降低通信代价,提高响应速度,使这些部门使用数据库更方便更经济。2 提高系统的可靠性和可用性。改善系统的可靠性和可用性是分布式数据库的主要目标。将数据分布于多个场地,并增加适当的冗余度可以提供更好的可靠性。一些可靠性要求较高的系统,这一点尤其重要,因为一个场地出了故障不会引起整个系统崩溃,故障场地的用户可以通过其它场地进入系统,而其它场地的用户可以由系统自动选择存取路径,避开故障场地,利用其它数据副本执行操作,不影响业务的正常运行。3 充分利用数据库资源,提高现有集中式数据库的利用率当在一个大企业或大部门中已建成了若干个数据库之后,为了利用相互的资源,为了开发全局应用,就要研制分布式数据库系统。这种情况可称为自底向上的建立分布式系统。这种方法虽然也要对各现存的局部数据库系统做某些改动、重构,但比起把这些数据库集中起来重建一个集中式数据库,则无论从经济上还是从组织上考虑,分布式数据库均是较好的选择。4 逐步扩展处理能力和系统规模当个单位规模扩大要增加新的部门( 如银行系统增加新的分行,工厂增加新的科室、车间) 时,分布式数据库系统的结构为扩展系统的处理能力提供了较好的途径:在分布式数据库系统中增加一个新的结点。这样做比在集中式系统中扩大系统规模要方便、灵活、经济得多。在集中式系统中为了扩大规模常用的方法有两种:一种是在开始设计时留有较大的余地,这容易造成浪费,而且由于预测困难,设计结果仍可能不适应情况的变化;另一种方法是系统升级,这会影响现有应用的正常运行,并且当升级涉及不兼容的硬件或系统软件有了重大修改而要相应地修改己开发的应用软件时,升级的代价就十分昂贵而常常使得升级的方法不可行。分布式数据库系统能方便地把一个新的结点纳入系统,不影响现有系统的结构和系统的正常运行,提供了逐渐扩展系统能力的较好途径,有时甚至是唯一的途径。2 2 数据库同步技术通过交换每个成员中所有已更新的记录和对象,来更新一个副本集的两个成员的过程。当每个副本集内的更改都相互应用于另一个副本集时,两个副本集成员就实现了同步。数据库同步又分三种:直接同步,间接同步,i n t e r n e t 同步。81 直接同步用于在直接连接到局域网的副本之间对数据进行同步的方法,可通过共享的网络文件夹使用。2 间接同步一种用于断开连接环境中( 如带着便携式计算机外出时) 的同步方法,必须用“复制管理器”来配置间接同步。3 i n t e r n e t 同步用于将已配置了i n t e r n e t 服务器的脱机环境中的副本同步。必须使用“复制管理器”来配置i n t e r n e t 同步。2 3 数据同步方法分类1 基于快照法快照( s n a p s h o t ) 是数据库中存储对象在某一时刻的即时映像。1 。通过为同步对象定义一个快照或采用类似方法,可以将它的当前映像作为更新副本的内容。基于快照法不需依赖特别的机制,不占用额外的系统资源,管理和操作也非常容易,而且在同步初始化和崩溃恢复时是必须的。但由于无法区分同步对象中哪些具体项发生改变,因此效率很低。o r a c l 和s q ls e r v e r 明确提供了基于快照的方法。事实上,所有的同步方案都隐含地要用到它。2 基于触发器法在源数据库为同步对象创建相应的触发器,当对同步对象进行修改、插入或删除等d m l ( d a t am a n i p u l a t i o nl a n g u a g e ) 命令时,触发器被唤醒,将变化传播到目标数据库。基于触发器法克服了基于快照法的主要缺点,提高了效率。但是触发器法占用的系统资源比较多,对较复杂的同步任务需要非常复杂的配置和实施,管理极不方便。o r a c l e 的对称复制综合应用了基于快照和基于触发器两种方法。3 基于日志法数据库日志作为维护数据完整性和数据库恢复的重要工具,其中己经包含了全部成功提交的操作记录信息。基于日志法就是通过分析数据库日志的信息来捕获同步对象的变化序列。传输的上下级之间仅在进行同步时,仅对相对于上次同步传输后修改的数据进行传输。传输上下两级之间日志发生变化的记录从而提高传输速度,减少了传输信息量以及带来的一系列问题。大多数数据库都有日志,利用日志不仅方便,也不会占用太多额外的系统资源。但是基于日志法也存在一些缺点:首先,一些数据库系统不公开其日志的格式,除非厂家提供相应的日志分析工具或接口,否则要开发一个基于日志的变化捕获程序非常困难;其次,尽管都是利用数据库日志获取变化,但不同数据库系统在具体细节上还是存在很大差异,这会给异构数据库带来新的问题;最后,很多情况下d b a 对数据库日志的管理已经很繁重、很复杂了,而基于日志法无疑会加重这种负担。d b 2 ,s y b a s e ,s o ls e r v e r 等主要商用数据库都采用了该方法。4 基于a p i 法一些小型数据库和非关系型的数据库没有触发器和日志机制,可以在应用程序和数据库之间引入一类中间件,由它提供一系列a p i ( 包括o d b c 驱动程序) ,在a p i 上来完成应用程序对数据库修改的同时,记录下同步对象的变化序列“”。在某种意义上,基于a p i 方法可以看成是基于日志法的一个变种,它能够实现基于日志法的大多数优点,而且既会给异构数据库同步带来便利,也不再增添d b a 的负担。但是基于a p i 法存在两个严重缺陷:其一,对那些不经过a p i 操作进行的s q l 语句而产生的数据变化,a p i 是无法捕捉到的;其二,应用程序的可移植性差,当从一种运行环境( o s ,d b m s 等)移植到另一种运行环境时,往往要重新编写应用程序甚至改变数据库模式。基于a p i法主要被i s v ( i n d e p e n d e n ts o f t w a r ev e n d o r ) 的产品所采用,如s y n c h r o l o g i c 的s y n c k i t 。5 基于影子表法许多情况下,源数据库无须了解同步对象的每一次操作,只要知道最后总共发生了什么变化就足够了。因此,可以在初始化时为同步对象表t 建立一个影子( s h a d o w ) ,也就是作一份当时的拷贝,以后就可在适当时机通过比较当前t 和s 的内容来获取净变化信息。基于影子表法能在任何数据库上实现,应用程序可以方便地在多种平台间移植,因此很适合解决异构数据库同步。影子表法的代价只有倍的存储空间和不高的管理成本,由于得到的是净变化值,传输效率还能进一步提高。当然基于影子表法的缺点也很明显:首先,它不符合单个结点的可串行性的要求,中间过程的操作信息全部丢失,不能提供足够的控制信息;其次,在判断操作时间先后时不可避免地会产生f c l d ( f i r s tc h a n g el a s td e t e c t ,即先发生的操作后于其它操作被实施同步) 现象,这样在对等式同步( 即各个结点地位平等,没有主次,相互同步) 时就会出现许多问题;最后,每次捕获变化都需扫描整个t 和s 表,效率很低,随着结点数目的增多会成为一个严重的性能瓶颈。s y w a r e 的d a t a s y n c 是使用基于影子表法的一个实例。6 基于控制表变化法基于控制表变化( c o n t r o lt a b l ec h a n g e ) 法就是为每个要同步的源表t 创建一个控制表c ,c 只包含t 的主键字段p k 和一些控制信息字段,当t 中某个记录发生变化时,c 中同主键p k 的记录也随即被修改。这一过程通常可以通过触发器实现,到时候只需根据c 就能知道t 的变化信息。基于控制表变化法可以获得同步对象的净变化,运行和传输效率都很高。控制表占用的存储空间小于影子表,而且易于管理。另外控制表中保存了修改时间、操作者、结点等多种控制信息,弥补了解决同步冲突的不足。但终究它不具有单个结点的可串行性,同时由于它一般依靠触发器实现,因而其应用有一定局限性。该方法最先由p e e r d i r e c t 开发的p d r e 使用。i o2 4 缓冲池技术个缓冲池是与单个数据库相关联的,可以被多个表空问使用。当考虑将缓冲池用于一个或多个表空间时,必须保证表空间页大小和缓冲池页大小对于缓冲池所“服务”的所有表空间丽言都是一样的。一个表空间只能使用一个缓冲池。数据库连接缓冲池,其实就是保存数据库连接的一个集合。需要数据库连接缓冲池是因为每次对数据库的开闭都是非常耗时耗资源的,如果并发请求过大,可能就导致系统反应缓慢甚至造成崩溃。2 5 触发器实现算法简介数据库管理系统作为信息系统的核心部件,在信息化时代所充当的角色是其它任何软件所不能替代的。当前数据库应用的一个普遍要求是数据库管理系统能够在一些数据库相关事件发生时触发预先定义的操作,实现信息管理的自动化,因此引进了触发器机制。触发器可以增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,并执行一定的数据操作。触发器机制实现主要涉及触发事件的检测以及触发条件的判决等关键技术问题,以及对触发器的编译存储和调用执行等具体操作。触发器定义了当某些数据库相关事件发生时数据库应采取的动作1 。触发器可增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,其实现主要涉及到触发事件的检测以及触发条件的判决等关键技术问题。1 触发器事件检测机制包括对事件的检测和存储,是实现触发器的关键触发器检测的事件类型比较简单,基本事件主要包括对数据的插入、删除以及更新等。g k d - b a s e 的触发器在对事件检测时,直接在相关事件发生的前后调用检测函数截获并分析事件消息,以确定是否对触发器点火。触发器事件检测机制实现的关键在于对触发事件的存储。触发事件具有时间顺序,因此存储时也必须按照严格的时间顺序进行存储。2 触发器的条件判决机制触发器的条件判决机制是触发器的核心,根据s o l 9 9 标准的定义,可以将触发器分为前触发、约束判定和后触发三种类型。触发器的条件评估是影响触发器机制的最关键因素。在数据库环境中,大多数数据修改行为只能影响数据库的一小部分内容,因此没必要每次都从头开始评估触发器规则条件,r e t e 和t r e a t 网络等增量条件评估方法已经被证明是触发器条件评估( c o n d i t i o ne v a l u a t i o n ) 的有效处理手段。3 触发器的创建触发器的具体实现可以分为触发器创建和调用,此外还包括触发器的修改、删除等操作。其中触发器的创建包括触发器的编译与存储操作,触发器的调用包括对触发器事件的检测和触发器动作的执行。触发器的创建包括触发器的编译和存储。触发器的编译涉及到触发器的命名、触发器事件的正确性检查、触发器引用表的合法性检查以及触发器主体的语法检查。触发器创建之前首先要检查用户是否有创建触发器的权限,以及触发器名是否已经在存储触发器的数据字典中被使用。触发事件部分在触发器创建时要进行检查,需要检查的内容包括语法检查、触发器引用的表和列是否存在,以及用户是否有针对这个表创建触发器的权限。保存触发器相关信息的数据结构最终需要保存在数据字典中。因为触发器使用单独的命名空间,可以设计一个单独的系统表作为存储触发器的数据字典。数据字典应该保存触发器调用过程中必须的信息,类似于o r a c l es y s t r i g g e r s 表。触发器主体是一个语句块,对它可以当作一个存储过程来处理,单独保存在一个系统表中,通过触发器主体的i d 号与存储在u s e rt r i g g e r s 表中的其它触发器信息相关联,在触发器调用过程中,根据触发器中的i d 来调用。4 触发器的调用首先要从外存中读取触发器的信息,并写入内存相应的数据结构中。触发器的内存形式是为了更方便地进行触发器约束条件的检查而设立的。为了在触发事件发生时,能立即判断当前被处理对象是否满足触发约束条件,通过调用p l s q l 引擎编译器将外存中存放触发器约束源代码转换为其内存表示,存放在相应触发器的内存结构中。在触发器被调用前,系统将被同一触发事件所触发的所有活跃的触发器组织成四条链。如图2 1 所示:s b 链:记录语句级前触发器r b 链:记录行级前触发器s a 链:记录语句级后触发器r a 链:记录行级后触发器图2 1 触发器链示意图根据这个数据结构,触发器调用算法如下:( 1 ) 将与触发事件相关的触发器按类型分别记入s b 、s a 、r b 和r a 四条链中,如没有某种类型的触发器,则相应链置空。( 2 ) 如s b 不为空,则转s b 链触发操作算法。( 3 ) 如r b 不为空,则转r b 链触发操作算法。( 4 ) 对当前数据对象进行触发事件所规定的d m l 操作。( 5 ) 如i a 不为空,则转r a 链触发操作算法。( 6 ) 判断触发事件所作用的数据记录是否都被处理完毕,如是,转( 7 ) ;否则,取出下一条记录作为当前的数据对象,转( 3 ) 。( 7 ) 如s a 不为空,则转s a 链触发操作算法。( 8 ) 释放所占的资源,结束触发器调用的处理。对给定触发器链操作算法如下:( 1 ) 根据触发器调用算法检测,当前触发器链不为空,取链首触发器。( 2 ) 将待处理数据对象的相关信息代入触发条件判断,如果条件为真,转( 3 ) ;否则转( 4 ) 。( 3 ) 启动一个p l s q l 解释执行器,对当前触发器动作链中所记录的动作进行解释执行。( 4 ) 取链中下一个触发器为链首,判断是否为空,如是,转( 5 ) ;否则转( 1 ) 。( 5 ) 完成当前触发器链操作,返回触发器调用算法继续。触发器的更新操作是对一个触发器进行编译后,替换已存在的作用在同一个表上的同名触发器,基本操作与触发器的创建是一致的;触发器的删除操作步骤主要是在数据字典中对指定的触发器进行查询并删除。3 1 需求分析3 1 1 系统功能第三章需求分析与总体设计分布式数据库同步系统主要完成对于网络中数据库系统的数据同步操作及相关设置,通过编写程序实现网络中对于o r a c l e ,m ss q ls e v e r 等数据库之间数据的同步操作。利用缓冲池技术提供数据交换的安全保障,确保数据在同步过程中保持数据的一致性。采用标准的数据通讯方式,以及标准的同步交换协议。实现主数据库对结点o r a c l e 数据库,m ss q ls e v e r 数据库数据的同步。触发同步机制,使得主数据库与结点数据库数据保持一致性。定制对异构数据库自动同步操作,可以实现按预定规则实现定时更新数据库数据。3 1 2 系统需求1 界面友好本应用程序是在p o w e r b u i l d e r 9 0 开发环境下完成的,界面友好,使用户的操作变得十分方便。通过次性配置设置,让不常接触电脑的用户也能很快的利用该软件,实现复杂的分布式数据库数据的同步工作以及简单的系统管理工作。2 功能齐全不仅提供多种异构数据库数据同步操作,而且提供计时任务设定,操作员管理以及操作员的权限配置等丰富的系统管理功能。3 环境适应能力强本系统通过设置缓冲池和采用日志传输技术,对于各种网络环境均有较好的适用性,数据传输效率与数据传输量相关,通过缓冲池调整,对于绝大多数客户传输要求均能满足。3 2 总体设计3 2 1 数据库同步系统结构分析总体设计本着从用户角度出发的原则,要求使用并且符合用户提出的合理要求。数据同步系统架构如图3 1 所示:1 4图3 1 数据库同步系统架构图分布式数据库数据同步系统由变化捕获、日志还原、同步触发、通讯和数据更新等5 个模块组成。变化捕获模块负责捕获变化并记录日志;日志还原模块把变更操作还原成数据库语句;同步触发模块根据同步策略激活通讯发送;通讯模块负责数据的发送与接收;数据更新模块负责把传送过来的数据更新到目标数据库。3 2 2 系统功能模块简介分布式数据库同步系统包含五个基本功能模块:启动0 r a 同步,启动删s 同步,自动同步,同步o r a ,同步s q l 。如图3 2 所示:图3 2 分布式数据库系统功能模块i 启动o r a 同步,在主机数据库所在服务器启动o r a 同步服务。2 启动删s 同步,在主机数据库所在服务器启动s q l 同步服务。3 自动同步,在主机数据库所在服务器启动自动同步服务,使得同步工作按照预定设置的条件进行自动同步服务。4 同步o r a ,对于网络中主机数据库与o r a 的结点数据库进行同步工作,同步以后使得主数据库与o r a 的结点数据库数据保持一致。5 同步s o l ,对于网络中主机数据库与s q l 结点数据库进行同步工作,同步以后使得主数据库与s q l 的结点数据库数据保持一致。64 1 系统环境配置第四章系统详细设计与实现通用数据传输平台基于选定的m o b i l i n k 技术作为软件开发的技术支持,使用s y b a s ea s a 8 0 作为m o b i l i n k 的客户端与同步服务器。通用数据传输平台系统具有传输对象的配置与定义功能,采用基于传输缓冲池的数据同步传输与日志传输技术,以拨号网络作为主要应用环境,同时支持实时网络传输环境。通用数据传输平台体现了通用性、高效性、安全性和稳定性。4 2 开发工具简介在p o w e r b u i l d e r 的应用开发中,运用面向对象技术不是必须的,但是对一个大型复杂应用系统的开发,如果采用了面向对象技术,则开发效率会大大提高。用p o w e r b u i l d e r 开发的好处是“,即使您不懂得什么是面向对象技术,您也可能会下意识地用到面向对象技术的一些特性,但是如果您对这一技术有了充分的了解,那对您所设计程序的可重用性,可维护性和其他各方面的质量都会有大幅度提高。4 3 m o b i l i n k 技术概述m o b i l i n k 技术一种基于发布订阅方式的异步消息中间件技术“”。主要是以m o b i l i n k 客户端在建立m o b i l i n k 用户的基础上完成单向的同步发布同步预订,m o b i l i n k 同步服务器只需要处于启动的状态,使m o b i l i n k 客户端通过m o b i l i n k 同步服务器来进行同步。对于具体的传输机制将在以下部分作为详细地介绍。4 3 1 m o bi l ln k 的同步过程技术同步会话是m o b i l i n k 客户端和同步服务器之间的双向数据交换过程,始终由客户端开始进行同步过程。在此过程中,客户端必须建立并维护与同步服务器的连接。如果成功,此会话将使远程数据库和统一数据库保持相互致的状态。同步过程中包括上载和下载两部分。对于数据行的上载,m o b i l i n k 客户端准备并发送一个上载流,它包含从上次同步后在m o b i l i n k 客户端经过更新、插入或删除的所有行的列表。类似地,对于数据行的下载,m o b i l i n k 同步服务器准备并发送一个下载流,它包含插入、更新和删除的列表。1 上载流m o b i l i n k 客户端自动跟踪记录在上一次成功同步之后远程数据库中插入、更新和删除了哪些行。连接一旦建立,m o b i l i n k 客户端将一个列出所有这些更改的列表上载到同步服务器。上载流由远程数据库中被修改的各行的新行值和旧行值组成。如果某行被更新或删除,旧行值是指上次成功同步后时的那些值。如果某一行被插入或更新,新行值是指当前的行值。即使在到达当前状态之前,行已经更改过数次,也不会发送任何中间值。m o b i l i n k 同步服务器接收上载流并将更改应用于统一数据库中。所有的更改将在一次事务中完成应用。此后,m o b i l i n k 同步服务器将提交该事务。注意:m o b i l i n k 运行时使用0 d b c 隔离级别s o l t x n r e a d _ c o m m i t t e d 作为统一数据库的缺省隔离级别。其原因是冲突检测中需要可重复的读取。如果您没有冲突检测脚本或希望选择更合适您的需求的隔离级别,您可以在b e g i nc o n n e c t i o n 脚本中设置该级别。2 下载流m o b i l i n k 同步服务器编译将在m o b i l i n k 客户端插

温馨提示

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

评论

0/150

提交评论