已阅读5页,还剩55页未读, 继续免费阅读
(计算机软件与理论专业论文)基于二次打包纠错的数据库同步机制研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要基于二次打包纠错的数据库同步机制研究计算机软件与理论专业硕士研究生王伟伟指导教师唐雁教授摘要随着信息化技术的发展,网络环境的普及,目前在企事业单位信息工程的建设过程中,越来越重视信息资源共享、数据交换等需求,但是由于各部门间地理上存在分布广泛、数据库形式复杂多样,表现出很大的异构性,因此如何实现异构数据库之间高效、安全、准确的数据同步,是现代企业应用系统中亟待解决的重要问题之一。目前,广泛应用于商业中的数据库同步方案主要分为两大类型:( 一) 大型数据库厂商在其同构数据库的同步产品基础上,提出自己的异构数据库同步方案:( - - ) 一些i s v 开发的大量具有异构数据库同步功能的数据库同步中间件,并获得市场普遍认同。但是商业异构数据库同步产品存在一定的封闭性,代码不公开,标准不统一,各种产品之间很难做到互连互通互操作;而学术界已有方案在效率上、通用性、开放性及对同步失败问题的解决上存在不足。为解决上述问题,本文设计并实现了基于二次打包纠错的数据库同步机制。主要工作包括:1 、提出基于变更轨迹表与事务相结合的数据库变更数据捕获技术,确保数据操作信息与数据变更轨迹信息的一致性,同时变更轨迹表运行效率较高,占用存储空间较小,易于管理。2 、利用x m l 的易于扩展、与平台无关、交互性好、语义性强、可格式化等优点,进行变更数据信息的封装和解析,实现异构数据库之间的数据同步。3 、使用消息队列中间件技术进行数据传输,确保数据包传输的顺序性,提高数据传输的安全性。4 、结合优先级与时间戳技术解决数据冲突问题。通过人工定义各节点或各个操作人员的优先级,进行冲突数据的取舍,具有灵活、便捷的优点;当优先级相同时结台时间戳进行数据修改时间的判断,提高最终结果数据的准确性。5 、提出二次打包纠错方法。针对对账检测功能监控到的数据同步失败,将同步失败的数据包采用二次打包方法后,重新补发。解决在数据库同步过程中,发生意外故障导致数据包丢失、解包失败等错误,发送端与接收端数据不一致的问题。通过二次打包纠错方法处理,发送端与接收端的数据库最终得到干净、一致的数据,避免出现“脏数据”。最后,通过仿真实验验证本文针对同步失败问题提出的基于二次打包纠错的数据库同步机制的可行性,模拟同步失败情形,验证数据传输的准确性。该机制也应用于重庆某区食品药品监管局的药品远程监管项目中的数据交换,证明在效率、通用性、数据传输上实用可行。关键词:x m l 数据库同步二次打包纠错a b s t ra c td a t a b a s es y n c h r o n i z a t i o nm o d e lr e s e a r c hb a s e do nr e p a c kc o r r e c t i o nm a jo r :c o m p u t e rs o f t w a r ea n dt h e o r ys u p e r v i s o r :p r o f y a nt a n ga u t h o r :w e i w e iw a n ga b s t r a c tw i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g ya n dt h ep o p u l a r i t yo ft h en e t w o r ke n v i r o n m e n t , t h ee n t e r p r i s e sa 北i n c r e a s i n g l yf o c u s i n go ni n f o r m a t i o ns h a r i n ga n dd a t ae x c h a n g ei nt h ei n f o r m a t i o nc o n s t r u c t i o np r o c e s s h o w e v e r , b e c a u s eo ft h ed e p a r t m e n t sd i f f e r e n tl o c a t i o n s ,a n dt h eh e t e r o g e n e i t yb e t w e e nv a r i o u sk i n d so fd a t a b a s e s ,h o wt oi i l a k ed a t as y n c h r o n i z a t i o ne f f e c t i v e ,s a f ea n da c c u r a t eb e t w e e nh e t e r o g e n e o u sd a t a b a s ei sai m p o r t a n ti s s u et h a tu r g e n t l yn e e dr e s o l v i n gi na p p l i c a t i o ns y s t e mo f m o d e r ne n t e r p r i s e a t e s e n t , c o m m e r c i a ld a t a b a s es y n c h r o n i z a t i o np r o g r a m sw i d e l yu s e d , 8 1 ed i v i d e di n t ot w ot y p e s l a r g ed a t a b a s ev e n d o r sp u tf o r w a r d st h e i rh e t e r o g e n e o u sd a t a b a s es y n c h r o n i z a t i o np r o g r a mi nt h ei s o m o r p h i cs y n c h r o n i z a t i o no ft h e i ro w nd a t a b a s ep r o d u c t i n d e p e n d e n ts o f t w a r ed e v e l o p e r s( i s v ) h a v ed e v e l o p e dag r e a tn u m b e ro fd a t a b a s es y n c h r o n i z a t i o nm i d d l e w a r ew h i c hh a v et h ef u n c t i o no fh e t e r o g e n e o u sd a t a b a s es y n c h r o n i z a t i o n , a n db e e ng e n e r a l l ya c c e p t e di nt h em a r k e t h o w e v e r , t h e r ea x es o m ed i s a d v a n t a g e si nt h ec o m m e r c i a lp r o d u c t so fh e t e r o g e n e o u sd a t a b a s es y n c h r o n i z a t i o n :c l o s u r e ;u n o p e n e dc o d e ;u n i f i e ds t a n d a r d s ;i t sd i f f i c u l tt oa c h i e v ei n t e r o p e r a b i l i t yi nd i f f e r e n td a m b a s es y n c h r o n i z a t i o np r o d u e t s a n dc u r r e n tp r o g r a m si nt h ea c a d e m i ah a v ed e f i c i e n c i e si ne f f i c i e n c y , v e r s a t i l i t y , o p e n n e s s ,a n ds y n c h r o n i z a t i o n t os o l v et h ea b o v ep r o b l e m s ,t h ep a p e rd e s i g n sa n di m p l e m e n t sad a t a b a s es y n c h r o n i z a t i o nm o d e lb a s e do nr e p a c k sc o r r e c t i o n m a i nt a s k sa 托s u m m a r i z e da sf o l l o w s :1 c o m b m et h ec h a n g et r a c kt a b l ew i t ht r a n s a c t i o nt oc a p t u r et h ec h a n g e dd a t ai nt h ed a t a b a s e t oe i i s u r et h a tt h ed a t ao p e r a t i o ni n f o r m a t i o na n dt h ec h a n g et r a c ki n f o r m a t i o na r ec o n s i s t e n c y t h ec h a n g et r a c kt a b l ei se f f i c i e n t ,t a k i n gu pal i t t l es t o r a g es p a c e ,a n de a s ym a n a g e m e n t 2 b yw a yo ft h ea d v a n t a g e so fx m l ,s u c ha st h ep l a t f o r m i n d e p e n d e n t , e a s ye x t e n s i b i l i t y ,i n t e m c t i v i t y , s e m a n t i c ,e t e ,i tc a np a c ka n du n p a c kt h ec h a n g et r a c kt a b l ei n t od o c u m e n t ,f o ra c h i e v i n gt h eh e t e r o g e n e o u sd a t a b a s e ss y n c h r o n i z a t i o n 3 b yw a yo ft h em e s s a g eq u e u em i d d l e w a r ef o rd a t at r a n s m i s s i o n ,i tc a ne r l s u r et h es e q u e n c eo fx m ld a t at r a n s m i s s i o n ,a n di m p r o v et h ed a t as e c u r i t y 4 c o m b i n et h ep r i o r i t yw i t ht i m es t a m pt e c h n o l o g yt os o l v ed a t ac o n f l i c t s m a n u a l l ys e t t i n gt h ep r i o r i t yi sf o rc o n v e n i e n c ea n df l e x i b i l i t yw h i l ec o m p a r i n gt h et i m es t a m po fd a t am o d i f i c a t i o nt i m ei sf o rr e a l i t yt oi m p r o v et h ea c c u r a c yo ft h ed a t a 1 l i西南大学硕士学位论文5 u s i n gt h er e p a c kc o r r e c t i o nm e t h o d ,t os o l v et h es y n c h r o n i z a t i o nf a i l e d t h r o u g hv e r i f i c a t i o nd e t e c t i o nm o n i t o r i n gd a t a b a s es y n c h r o n i z a t i o n ,a f t e rr e p a c kc o r r e c t i o nt h ef a i l e dx m ld o c u m e n t ,t h e nr e s e n & m a i n l yt os o l v et h es y n c h r o n i z a t i o np r o c e s si nt h ed a t a b a s e ,t h ef a i l u r eb e c a u s eo fa c c i d e n td a t ap a c k e tl o s s ,o ru n p a c ks y n c h r o n i z a t i o nf a i l u r ee r r o r , e t c ,t or e s u l ti nt h ed a t ai n c o n s i s t e n c yb e t w e e ns e n d e ra n dr e c e i v e r b yt h er e p a c kc o r r e c t i o nm e t h o da v o i dt h e ”d i r t yd a m ”a p p e a r s ,a n dg e tt h ec l e a n ,c o n s i s t e n td a t a f i n a l l y , e x p e r i m e n t sp r o v et h a tt h ed a t a b a s es y n c h r o n i z a t i o nm o d e lb a s e do nr e p a c kc o r r e c t i o ni sp r a c t i c a b l e t h i sm e c h a n i s ma l s ow a sa p p l i e di nap h a r m a c e u t i c a lr e m o t em o n i t o r i n gp l a t f o r ma tf o o da n dd r u ga d m i n i s t r a t i o nd i s t r i c ti nc h o n g q i n g a n di th a sp r o v e x lt h ef e a s i b i l i t yo ft h et h e o r y , a n dt h ea c c u r a c yo fd a t at r a n s f e r s k e yw o r d s :x m l ;d a t a b a s es y n c h r o n i z a t i o n :r e p a c kc o r r e c t i o n独创性声明本人提交的学位论文是在导师指导下进行的研究工作及取得的研究成果。论文中引用他人已经发表或出版过的研究成果,文中已加特别标注。对本研究及学位论文撰写曾做出贡献的老师、朋友、同仁在文中作明确说明并表示衷心感谢。学位论文作者:王依依签字日期:o l o 年箩月垃日学位论文版权使用授权书本学位论文作者完全了解西南大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权西南大学研究生部可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学位论文在解密后适用本授权书,本论文:回不保密,口保密期限至年月止) )。,-、,、,学位论文作者签名:鼍臼陟佑导师签名:警k ,叫签字日期:劬f _ d年歹月沈日签字日期1【b 年媚乙q第一章绪论第一章绪论1 1 研究背景随着互联网的不断扩展,信息技术和网络技术的成熟,企业、政府等信息化应用逐渐普及深入。不少地方已经建立了越来越多的应用系统。但是由于各应用系统之间数据无法达到共享,尽管积累的业务数据总量可观,但这些数据分别由相互孤立的应用系统产生和管理,其服务范围局限在个别应用系统中内部,各个数据库之间存在数据重叠,不但带来了大量的重复采集,更存在着大量的不一致现象。信息的多样性、重复性和安全性问题日益凸显。如何化解企业、政府等信息化过程中越来越多的“信息孤岛”问题,已经成为了一个热门话题。我国经济学家吴敬琏在2 0 0 2 年所提出的“孤岛问题”这一现象,目前已经引起了业界的广泛关注。针对“信息孤岛”已经凸显的企业而言,实际上他们所面临的瓶颈问题并不是计算机网络搭建、设备和应用软件选型,而是如何将分散、孤立的各类信息变成网络化的有效信息资源加以充分利用,将分散的信息系统进行整合,消除信息孤岛,实现信息资源共享。随着企业的不断发展和壮大,企业的子部门越来越多,且各子部门地处子不同区域的情况越来越普遍,如何快速有效地整合这些分布在单位内部不同数据库平台上的数据,使企业各部门都能分离相同的数据,于是提出了数据库同步的概念,也叫数据库同步。如何从根本上解决分布式数据库的“信息孤岛”问题,必须进行数据资源的整合、交换、管理与应用,建立合理的资源更新机制,才能够使各个业务端的数据有机地结合在一起,实现统一管理,达到数据的动态实时同步,真正做到保持数据的新鲜性和准确性,保证数据的一致性,从而成为能为众多应用部门共享的信息资源。信息资源的整合过程即数据库的同步过程,需要考虑以下几方面的问题:数据从哪里来的问题数据如何获取的问题数据如何管理的问题数据如何解决冲突的问题数据如何安全交换管理的问题数据如何准确进行交换的问题数据交换失败后如何解决的问题这些问题是解决数据交换与共享的核心问题,这些问题的完整解答是促进信息资源管理和监测,实现信息资源交换管理的基础。1 2 国内外研究现状西南大学硕士学位论文1 2 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 ) ,它的复制是对称的。该方案的优点是:实现简单,整体性程度高。其缺点在于;该方案在l l g之前,透明网关不兼容l i n m d u n i x 系统;不同数据库间的数据处理需使用标准s q l 来实现;各数据库中特殊的数据类型,需要在程序中实现转换;只能用于主从式的异构复制,且复制的数据规模不能太大,流程也不能太复杂。( 2 ) d b 2 使用c c d ( c o n s i s t e n tc h a n g e - d a t a ) 表来实现异构数据复制,c c d 表通过关联的跟踪机制暴露数据,以便准确地描绘源表的事务历史。d b 2 数据复制主要采用c c d 表为负责变化数据获取的捕捉控制表和负责复制应用启动与实现的应用控制表,两者之间互相传递控制数据。数据复制过程中首先创建c c d 表,通过定义源服务器、目标服务器、复制应用控制服务器、预定集等【l 】。实现i b m 数据库“到”或“从”非i b m 数据库的复制。该方案的优点是:支持面很广,提供的复制数据字典非常完善,因而它的模式转换功能优于其它数据库厂商。它的缺点是g 对对等式复制支持有限,占用较多的系统资源,要建立和维护c c d 表不容易,实现较为复杂。( 3 ) s y b a s e 利用日志传输管理( 1 0 9t r a n s f e rm a n a g e r 简称l w m ) 来实现异构复制,l t m是一个低调度进程,由s y b a s eo p e ns e r v e r o p e nc l i e n t 编写的应用程序。其任务是在源节点监视并捕获数据库日志的事务,同时将这些事务传送给复制节点,实现同步。该方案的优点是:实现比较容易,适用范围广,且易于移植。其缺点是:l t m 仅支持主从式的异构复制,缺乏选时、调度等方面的选择,需要人工事先规划好网络路径,同时对网络质量要求比较高。( 4 ) s q ls e r v e r 提出发布者预订者方案。该方案的复制方式最全面,不但有解决对等式复制的合并复制,还有用于同步复制的选项,该方案的框架和构造规范、明确。但该方案也有缺陷:必须由s q ls e r v e r 服务器担任分发器角色,只能在n t 平台运行,涉及到的因素比较多,实现比较麻烦:该方案最好应用于局域网,在互联网上受限于带宽,大数据量下效率低得几乎失去同步的意义;不能广泛适用于各种数据库。1 2 2 第三方数据同步解决现状目前,广泛应用于商业当中的数据库同步方案主要分为两大类型:分布式数据库采用的数据同步方法和同步中间件,一些i s v 也开发出大量具有异构数据库同步功能的软件和产品,获得市场的普遍认同。其中比较著名的有:2第一章绪论( 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 来操作数据库,运行性能很低。1 2 3 国内数据同步研究现状国内对于分布式异构数据库数据同步的研究与国际上相比存在较大的差距,只在一些文献中偶尔能发现部分相关的内容,其中比较有名的系统有:1 中国人民大学的金仓数据库系统( k i n g b a s e ) ,它对数据库同步的理论和实现进行了研究,提出基于版本号的同步冲突检测和解决策略、以及简单的复制权限控制等。2 东南大学的g a l a x y 系统,它对包括数据库系统、w e b 文件、文本等在内的各种异构数据源的集成、转换及查询优化等方面作了较全面的分析研究。3 国防科技大学的1 1 r ,它提出了面向移动领域的皿己,是一个由服务器级复制、中间复制和客户级缓存组成的三级复制体系结构。4 中科院软件所对象技术中心承担的“石化应用软件示范工程”,它利用消息中间件实现了实时数据库环境下的数据库同步。5 者敬【5 1 从总体结构、变化捕捉、同步、分发、模式、冲突检测与解决等方面对数据库同步实现的关键方法和技术做了细致分析与归纳,提出了开放式异构数据库同步框架、复制授权管理机制和三种最优传播算法,并最终实现了一个基于链式结构的原型系统。其缺点是:没有提出一种通用的变化捕捉方法来满足异构数据库同步的共性需求,只是使用数据库自身支持的变化捕捉方法;没有使用成熟健壮的同步协议;存在跨平台的可移植性问题。6 x h d q ( x m l - - b a s e dh e t e r o g e n e o u sd a t a b a s eq u e r y ) :x h d q 是华南农业大学的一个受国家部委基金资助项日,是一种以基于x m l 的异构数据库查询为核心的系统,并在i b m1西南大学硕士学位论文w a s 平台下实现了其查询核心系统的方法。其核心系统主要有以下六个部分组成:模式转换器、x h d q 中间件、x h d q 应用程序、x h d q 客户端、x h d q 服务器和异构数据库。它通过使用x m l 文件作为中间形式来实现异构数据库之间的集成。7 u u h b d 系统:北京理工大学的u u h d b 系统是基于c l i e n t s e r v e r 结构的异构数据库联合使用系统,采用的全局查询语言g s q l 是a n s is q l8 6 的子集,能进行透明地联合查询,支持的数据库有o r a c l e 、i n f o r m i x 和d b a s e ,由于没有进行查询优化,查询效率较低。1 3 主要工作通过以上分析发现,采用大型数据库本身的同步技术,不仅操作难度较大,并且由于各部门应用系统的特点、数据库形式多样,造成异构数据库间的同步非常复杂,同时异构数据库间也会因数据类型无法转换等原因造成同步无法进行,引起数据的丢失等。另外商业异构数据库同步产品存在着代码不公开,标准不统一,各种同步产品之间很难做到互通互连互操作;另外学术界的已有方案在效率上、通用性及对同步失败问题的解决上存在不足。特别是对于节点多、分布广的情况,如公交调度平台项目、药监局远程监管项目等,在数据同步过程中,常常出现数据同步失败、接收方与发送方数据不一致的情况。为解决上述问题,本文设计并实现了一个解决同步失败的基于二次打包纠错的数据库同步机制。主要工作概括如下:第一、提出基于变更轨迹表与事务相结合的数据库变化捕捉技术,通过事务机制进行数据变更轨迹信息的记录。优点:事务具有回滚性,当操作过程中发生失败时,可回滚操作,确保数据操作信息与数据变更轨迹信息的一致性;基于变更轨迹表法是相对其它变化捕获方法中最优的,它解决了很多其他方法所固有的缺点,运行和传输效率都很高,同时变更轨迹表占用的存储空间较小,并且易于管理。第二、利用x m l 的跨平台性、易于扩展性、交互性好、语义性强、可格式化等优点,进行变更数据信息的封装和解析,实现异构数据库之间的数据同步。第三、使用消息队列中间件进行数据传输,实现数据包传输的顺序性j 提高数据传输的安全性。第四、结合优先级与时间戳技术来解决数据冲突问题。通过人工设置优先级,体现人工干预的灵活性;并且根据时间戳来判断数据修改的早晚,具有真实性。进而达到提高数据准确性的目的。第五、采用二次打包纠错方法,通过对账检测功能监控数据同步情况,当检测到数据包同步失败后,将同步失败的数据包通过二次打包方法之后,重新补发新封装的x m l 数据包。主要解决了在数据库同步过程中,发生意外故障导致数据包丢失、或解包出错等同步失败后,发送数据库与接收数据库数据不一致的问题,避免了“脏数据”的出现,通过二次打包纠错方法的处理,确保数据传输的正确性,最终发送数据库与接收数据库得到干净、一致的数据。4第一章绪论最后,通过仿真实验验证本文提出的基于二次打包纠错的数据库同步机制实现正常的数据库同步流程:并模拟同步失败的情况,包括数据包丢失、数据包解包失败等错误情况,通过对账功能检测到失败数据包时,使用二次打包方法,解决普通补发方式造成的“脏数据”问题,验证数据传输的准确性;并通过执行l o 万条数据的打包操作,大约耗时4 5 秒,以及分别验证不同大小的x m l 数据包二次打包所使用时间,验证本文提出的数据库同步机制的效率可行;该机制也应用于重庆某区食品药品监管局的药品远程监管项目中的数据交换,证明在效率、通用性、数据传输上实用可行。1 4 论文组织结构本文的组织结构安排如下:第一章,绪论,主要介绍了本论文的研究背景;“孤岛问题”的存在以及信息资源整合所面临的问题;详细介绍异构数据库同步研究现状;本论文的主要工作。第二章,相关理论和技术,主要介绍数据库同步技术;数据库同步中变更数据捕获技术,其中详细介绍了当前流行的七种变更数据捕获技术的核心思想;数据库同步过程中的数据冲突;x m l 技术,介绍了x m l 的优越性、以及x m l 与数据库关系、基于x m l 的数据转换方法;消息队列中间件技术;同时列出基于x m l 数据库同步失败后的各种解决方案。第三章,基于二次打包纠错的数据库同步机制,首先介绍了同步机制中的变更数据捕获,通过比较七种变更数据捕获技术的优劣,提出了变更轨迹表与事务相结合的新捕获方法;其次介绍了同步机制中的消息传输;第三介绍了结合时间与优先级的冲突解决策略;第四提出了二次打包纠错方法,并详细讲解了该方法的每个步骤。查找同步失败的x m l 数据包、解析x m l 数据包并查询同步失败的数据、获取相应数据的最新值、进行二次打包、发送新封装的x m l 数据包,同时接收并解包,最后完成同步。通过二次打包纠错解决了基于x m l 数据库同步失败的问题。第四章,实验。进行系统平台介绍,及部分代码和实验结果的列举,实现该机制的数据库同步过程。并通过在实际项目中的实践情况,分析该方法的可行性及有效性。第五章,总结与展望。是全文的总结,并指出下一步的工作。5西南大学硕士学位论文2 1 数据库同步技术第二章相关理论和技术数据库同步技术是实现节点数据库与中心数据库一致性的过程,主要包括:变更数据捕获技术、数据包分发与传输技术、及数据冲突检测与解决技术。数据库同步技术是通过捕获节点中所有更新的记录,传输到中心服务器根据更新记录进行更新的过程。使节点内的更新都应用于中心服务器,最终数据得到一致。数据库同步技术有不同的分类方法。按照同步的方向划分为单向( u n i d i r e c t i o n a l ) 同步和双向( h i - d i r e c t i o n a l ) 同步;按照传播更新的方式分为实时同步和分时同步;按照传播的介质又分三种【2 】:直接同步,间接同步,i n t e m e t 同步。l 、单向同步,也称主从式同步,指的是两个同步节点之间只从一个节点向另一个节点进行同步,源节点保存同步对象,目标节点保存同步对象的副本,修改数据对象只在源节点上进行,从而预防了更新冲突的发生。2 、双向同步,也称对等式复制,指的是两个同步节点间互相复制,同步节点既是源节点也是目标节点。在分布式环境下可能存在对不同节点的相同对象同时进行操作,因此如何检测预防和解决同步中的冲突是双向同步中的一个重要问题。3 、实时同步是在一个原子事务中同时更新所有的同步节点。4 、分时同步是指在本地事务提交以后再将本地数据的变更反映到其他同步节点上,这种方式不需要实时的连接,可以很好的提高性能,但分时同步的一个问题是在节点中存在“脏”数据,当两个事务在不同节点读写数据时,就无法保证事务的序列化,这种分时同步方式一般应用在对数据一致性要求不是很高的地方。5 、直接同步用于在直接连接到局域网的副本之间对数据进行同步的方法,可通过共享的网络文件夹使用。6 、间接同步一种用于断开连接环境中( 如带着便携式计算机外出时) 的同步方法,必须用“复制管理器”来配置间接同步。7 、i n t e m e t 同步用于将已配置了i n t e m e t 胃t 务器的脱机环境中的副本同步。必须使用“复制管理器”来配置i n t e m e t 同步。本文的研究重点是分时同步,在理论、设计方案、实现等方面对分时同步方法存在的问题进行研究和解决。2 2 数据库同步中变更数据捕获技术捕获变更数据是指获取源数据库的数据更新信息即待同步的数据对象,它是数据库同步的前提目前常用的捕获方法有以下几种:6第二章相关理论和技术基于快照法快照( s n a p s h o t ) 是数据库中存储对象在某一时刻的即时映像哺1 。主要是为同步对象定义一个快照或采用类似方法,将它的当前映像作为更新副本的内容。其优点:是最简单的变化捕获方法;不需要依赖特别的机制;不占用额外的系统资源;管理和操作非常容易:并且在同步初始化或崩溃恢复时是非常必要的。其缺点:由于每次需要同步全部的副本而无法区分同步对象中有哪些发生了具体的改变,因此效率很低;不能用于实时同步和对等式同步。o r a c l e 和s o ls e r v e r 明确提供了基于快照的方法。事实上,所有的同步方案都隐含地要用到它。基于触发器法为源数据库的同步对象表建立插入、修改、删除等触发器,当对同步对象表进行修改操作,即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 ) 命令时,相应的触发器被唤醒,将变化的数据写入一个临时表,抽取线程从i 陶时表中抽取数据,临时表中抽取过的数据被标记或删除。将抽取出的数据发送到目标数据库。其优点:克服了基于快照法的主要缺点,提高了效率。其缺点:占用的系统资源较多;管理极不方便,配置和实施较复杂的同步任务时非常复杂。这种方法一般适合在那些有多触发器机制的数据库系统中使用。o r a c l e 的对称复制综合应用了基于快照和基于触发器两种方法。基于日志法基于日志法是通过分析数据库自身的日志信息来捕获同步对象的变化序列的。在数据库同步时,只对上次同步传输后日志发生变化的记录进行传输。其优点:提高了传输速度,减少了传输信息量;大多数数据库都有日志,既方便,也不会占用太多额外的系统资源。其缺点:首先,一些数据库系统不公开其日志的格式,因为开发一个基于日志的变化捕获程序非常困难;其次,不同数据库系统在具体细节上存在很大差异,这会给异构数据库带来新的问题;最后,很多情况下d b a 对数据库日志的管理很繁重、复杂,而基于日志法无疑会加重这种负担。d b 2 ,s y b a s e ,s q ls e r v e r 等主要商用数据库都采用了该方法。其中o r a c l e 的改变数据捕获( c d c ,c h a n g e dd a t ac a p t u r e ) 技术就是这方面的代表。基于时间戳法基于时间戳法是一种基于快照比较的变化数据捕获方式,需要对每个源表增加一个时间戳字段,用来记录每个表的修改时间。当系统更新修改源表数据的同时,修改时间戳字段的值。通过比较系统时间与时间戳字段的值来决定抽取哪些数据。其优点:基于时间戳方法的性能较好,数据抽取相对清楚简单;不影响原有应用系统的运行效率。其缺点:需要对原有业务系统做较大的调整,添加时间戳字段;针对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作;无法捕获对时间戳以前数据的d e l e t e 和u p d a t e 操作,以及那些并非通过应用系统引起的操作数据变化;在数据准确性上受到了一定的限制。7西南大学硕士学位论文基于a p i 法在应用程序和数据库之间引入一类中间件,由它提供一系列a p i ( 包括o d b c 驱动程序) ,在a p i 上来完成应用程序对数据库修改的同时,记录下同步对象的变化序列f 4 1 。基于a p i 方法是基于日志法的一个变种,能够实现基于日志法的大多数优点,而且既会给异构数据库同步带来便利,也不再增添d b a 的负担。其缺点:第一,a p i 无法捕获那些不经过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 。基于影子表法基于影子表法是在源数据库初始化时为同步对象表t 建立一个影子表( s h a d o wt a b l e ) s ,即做一份当时的拷贝,在适当时机通过比较当前t 表和s 表的内容来获取变更数据信息【5 】。其优点:应用程序移植性好,适合解决异构数据库同步;能在任何数据库上实现;不需要知道同步对象的每次操作;易于管理,传输效率高。其缺点:不符合单个节点的可串行性要求,中间过程的操作信息全部丢失,不能提供足够的控制信息;其次,在判断操作时间先后时不可避免地会产生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 是使用基于影子表法的一个实例。基于变更轨迹表法基于变更轨迹表( 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 使用。2 3 数据库同步过程中的数据冲突冲突的检测和处理是数据库同步处理过程中一个重要环节。在分时同步中,多个节点几乎同时对同一数据进行操作,当数据同步收敛于一致时,产生的冲突。8第二章相关理论和技术数据冲突可分为物理冲突和逻辑冲突。物理冲突指数据库对数据的操作违反了主数据库的数据完整性,主数据库无法按照同步数据的修改更新数据。逻辑冲突指不同的同步数据在同一时间间隔内,对同一个表的相同记录进行了修改,在逻辑上发生了冲突。尽管数据库同步采用不同的同步方式,但由于缺少并发性实时控制机制,所以对主从数据库的插入、修改和删除操作时很可能产生数据冲突。具体地说,主要有以下几种6 】啊:( 1 ) 数据插入冲突数据插入冲突是指对同一个数据表在不同节点插入了同一条记录或者主键值相同的记录,当进行数据同步时发生数据插入冲突。它分为表间冲突和唯一性冲突。( a ) 表问冲突同步数据不能满足本地数据库表上定义的约束条件而造成的冲突。表间冲突产生的主要原因是设计问题和不满足单副本可串行化。一般采用相关表同时同步或者进行垂直划分的方式,避免同步数据引起的表间冲突。或者在设计阶段加以避免可能引起冲突的数据。( b ) 唯一性冲突发生在一个更新产生了一个违反主键或唯一性约束时。唯一性冲突的解决可以考虑使用;自增类型或者采用全局唯一标识( a 刀d ) 等方式来生成整个系统的唯一主键。对于自增类型的主键可以对主键进行划分,保证每个节点的主键范围无交集;g u i d 方式随机生成主键标志符,在整个系统内产生相同主键值的概率非常低。它们都是使用无意义的主键代替有实际意二义的主键。( 2 ) 数据修改冲突数据修改冲突是指在数据库分布在不同区域的情况下,一个记录的两个拷贝在不同的节点被同时( 在两次刷新之内的间隔里) 修改为不同的内容( 如果其中一个修改的是主键值属性,那么问题更严重) 。数据修改冲突的解决方法通常有以下几种:( a ) 以优先级为基础的冲突解决方法如果多个站点都对数据拥有插入、修改或删除的权限,则针对不同的数据对各个节点赋予不同的优先级,通过比较同步数据来源节点和目标节点的优先级值,保留优先级最高的那个节点的操作结果。这种方法要求不同节点对同一数据集的操作优先级都不相同,否则仍然不能避免冲突的发生。( b ) 最大冲突解决方法,最小冲突解决方法当发现列级冲突时,通过比较冲突列值的大小关系来进行解决。最大冲突解决方法是用较大的值代替较小的值,最小冲突解决方法是用较小的值代替较大的值。( c ) 以时间戳为基础的冲突解决方法按照各个节点数据操作的时间为依据来解决冲突,一般使用最新的操作结果覆盖前面的结果,该方法要求整个系统的时钟是同步的。时间戳解决方法义分为最早和最晚时间戳两种,分别表示用最早的记录和最晚的记录替换冲突值。9西南大学硕士学位论文( d ) 随机法为发生冲突的几个节点各生成一个随机数,由随机数最大( 或最小) 的那个节点来对数据进行操作,这种方法也可以使各个节点拥有平等的数据操作权限。( 3 ) 数据删除冲突数据删除冲突是指一个记录的两个拷贝,在两次刷新之间的间隔里,一个节点的拷贝被修改而另一个节点的拷贝被删除,或者同一条记录在不同的同步站点被删除。当出现删除冲突时一般采用的方法是忽略修改,这样做的代价相对较小。为了更好的解决删除冲突,可以在数据库设计上添加标记字段,将对数据库记录的物理删除改变为逻辑删除,即更新标记字段的值,然后在进行数据整理时真正的删除记录,此时就可以采用类似于更新冲突的方式来处理删除冲突。2 4 舭技术2 4 1 x m l 技术概述1 9 9 8 年2 月,w 3 c 组织( w o r l d w i d ew e bc o n s o r t i u m ) 制定了种通用语言规范可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ) 即:x m l 耵,是s g m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网吧光钎接入合同范本
- 街边旺铺出租合同范本
- 滚珠螺杆采购合同范本
- 酒店保洁托管合同范本
- 2025年初中三年级英语上学期词汇专项训练卷
- 衣柜安装承揽合同范本
- 连云港市集体合同范本
- 网约车合作协议书合同
- 租房合同伤亡补充协议
- 货车买卖租赁合同协议
- 2025年广东省继续教育公需课《人工智能赋能制造业高质量发展》满分答案
- 2026届浙江杭州市高三一模英语读后续写解析课件(含范文)
- 2025年考研英语二真题及答案解析(完整版)
- 2025-2026新版人教版8八年级数学上册(全册)教案设计
- Unit1HappyHolidaySectionB1a1d教学课件-人教版八年级英语上册
- 细菌性支气管肺炎的护理个案
- 地暖施工方案
- 车位过户网签合同范本
- 2025年医疗健康保健品营销策略
- 2025独家代理商合同协议书范本
- DB32T 5180-2025装配式钢筋骨架卡模体系应用技术标准
评论
0/150
提交评论