(计算机软件与理论专业论文)多平台异构数据库复制技术研究.pdf_第1页
(计算机软件与理论专业论文)多平台异构数据库复制技术研究.pdf_第2页
(计算机软件与理论专业论文)多平台异构数据库复制技术研究.pdf_第3页
(计算机软件与理论专业论文)多平台异构数据库复制技术研究.pdf_第4页
(计算机软件与理论专业论文)多平台异构数据库复制技术研究.pdf_第5页
已阅读5页,还剩57页未读, 继续免费阅读

(计算机软件与理论专业论文)多平台异构数据库复制技术研究.pdf.pdf 免费下载

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

文档简介

摘要数据库复制是分布式环境下提高数据库性能、可靠性和可用性的关键技术。在数据库异构程度不断加深的情况下,异构数据库复制技术的研究已成为数据库复制研究的重点。本文首先从基础理论和关键技术入手介绍了数据库复制的分类、数据捕获技术、同步协议、冲突检测和解决等内容,为本文的研究奠定了基础。在确定异构数据库复制研究的重点方向以后,本文提出了异构数据库异步复制模型。模型中定义了复制管理、数据捕获、同步、冲突检测处理、数据传播五个部分。其中使用改进的控制表变化法记录数据变更,采用两步法生成复制数据,解决了外键冲突问题;设计同步过程保证异常情况下复制的正常运行;运用标记法解决唯一性冲突;设计不同拓扑结构下复制数据的传播方式。本文对复制环境下保证数据库系统可持续运行三个方面的技术问题:数据库变更、结点和拓扑结构变更、数据库的灾难恢复,结合异构数据库异步复制模型给出了维护方法。最后本文将异构数据库异步复制模型应用于淮北煤矿安全管理信息系统,成功的在o r a c l e ,s q ls e r v e r 数据库之间实现了多平台下的异构数据库复制。关键词:异构数据库,数据库复制,异步复制,两步法,备份恢复,a o pa b s t r a c td a t a b a s er e p l i c a t i o ni sak i n d o fk e yt e c h n o l o g i e st oi m p r o v ed a t a b a s ep e r f o r m a n c e ,r e l i a b i l i t ya n da v a i l a b i l i t yi nt h ed i s t r i b u t e de n v i r o n m e n t s ,w i t ht h eg r o w i n go fd a t a b a s e sh e t e r o g e n e i t i e s ,t h er e p l i c a t i o nt e c h n o l o g yo fh e t e r o g e n e o u sd a t a b a s eh a sb e c o m eak e ya r e ao f d a t a b a s er e p l i c a t i o nr e s e a r c h t h ed i s s e r t a t i o nf i r s t l yi n t r o d u c e st h ec a t e g o r i e so fd a t a b a s er e p l i c a t i o n ,d a t ac a p t u r i n gt e c h n i q u e ,s y n c h r o n i z a t i o np r o t o c o l s ,c o n f l i c t sd e t e c t i o na n ds o l u t i o n si nl i g h to fb a s i ct h e o r i e sa n dk e yt e c h n o l o g y t h ed e t a i l e di n t r o d u c t i o nh a sl a i das o l i db a s i so ft h ef o l l o w i n gr e s e a r c h a f t e rd e c i d i n go nt h ek e yr e s e a r c ha r e 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 ed i s s e r t a t i o nh a sp r o p o s e daa s y n c h r o n o u sr e p l i c a t i o nm o d e lf o rh e t e r o g e n e o u sd a t a b a s et h em o d e lh a sc o m p o s e do ff i v ep a r t s :r e p l i c a t i o nm a n a g e m e n t ,d a t ac a p t u r i n g ,s y n c h r o n i z a t i o n ,c o n f l i c t sd e t e c t i o na n ds o l u t i o n ,d a t ap r o p a g a t i o n t h em o d e lu s e si m p r o v e dc o n t r o l c h a n g em e t h o dt or e c o r dt h ec h a n g eo fr e c o r d s t h ec o n f l i c to ff o r e i g nk e y sh a sb e e nr e s o l v e db yat w o s t e pa p p r o a c hw h i c hg e n e r a t e sr e p l i c a t i o nd a t a s y n c h r o n i z ep r o c e s s d e s i g ne n s u r e st h ec o r r e c tr e p l i c a t i o nr u n n i n gi na b n o r m a ls i t u a t i o n s t h eu n i q u ec o n s t r a i n tv i o l a t i o nc o n f l i c th a sb e e nr e s o l v e db ym a r km e t h o d i ta l s od e s i g np r o p a g a t i o nm o d eo f r e p l i c a t i o nd a t ao nd i f f e r e n tt o p o l o g ys t r u c t u r e t h e r ea r et h r e et e c h n i q u ep r o b l e m st ok e e pd a t a b a s es y s t e mr u n n i n gs m o o t h l yw i t h o u ta n yi n t e r r u p t i o n t h e ya r ed a t a b a s ec h a n g i n g ,n o d e sa n dt o p o l o g ys t r u c t u r e sc h a n g i n ga n dd i s a s t e rr e c o v e r y t or e s o l v et h et h r e ep r o b l e m s ,t h ed i s s e r t a t i o nh a sp r o p o s e dam a i n t e n a n c em e t h o da c c o r d i n gt oa s y n c h r o n o u sr e p l i c a t i o nm o d e lf o rh e t e r o g e n e o u sd a t a b a s e l a s t l y ,w eh a v ei m p l e m e n t e da s y n c h r o n o u sr e p l i c a t i o nm o d e lf o rh e t e r o g e n e o u sd a t a b a s ei nh bc m s m i s t h em o d e lh a ss u c c e e d e di nh 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 nb e t w e e no r a c l ea n ds q ls e r v e rd a t a b a s eo nm u l t i p l a t f o r m k e y w o r d s :h e t e r o g e n e o u sd a t a b a s e ,d a t a b a s er e p l i c a t i o n ,a s y n c h r o n o u sr e p l i c a t i o n ,t w o s t e pa p p r o a c h ,b a c k u p & r e c o v e r y ,a o pi i插图清单1 1 异构数据库复制环境2 1 触发器数据捕捉方式2 2 公共操作接口数据捕捉方式2 3 两阶段提交协议3 1 异构数据库异步复制模型3 2 外键关系表3 3 同步模型3 - 4 树型拓扑结构4 一l 数据模型存储结构4 2 路由信息表5 1 系统物理架构图5 2p o w e r d e s i g n e r 设计图一5 3a o p 数据捕捉方式5 - 4 同步实现类图5 5j b o s s 定时任务控制台5 - 6 同步运行图5 7 矿部门管理图:!1 0,1 11 31 9:1 32 :1 9:i l: 33 8z :!,4 55 ( )5 ( )! ;l5 1表格目录表3 1 控制变化表格式表3 2 外键操作序列表5 - 1 系统运行环境表5 - 2 中间文件格式v i2 02 33 94 6图图图图图图图图图图图图图图图图图独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得金胆工些盔堂绒其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。学位论文作者签字:争题签字日期凡“年二月纬学位论文版权使用授权书本学位论文作者完全了解佥篷_ 工业去堂有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权金e b 些盔! l 可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。( 保密的学位论文在解密后适用本授权书)学位论文者签名:名怨签字目期:沙,年f 月户日学位论文作者毕业后去向:上作单位:通讯地址:电话邮编,、记妇嚷弧缸瓤师字导签致谢首先非常感谢我的导师袁兆山教授! 本论文工作从选题、研究到写作,自始至终得到了袁老师的指导、关心、信任和支持,没有导师的指导和培养,本论文是不可能完成的。在整个硕士研究生的学习生活中,袁老师渊博的学识、严谨的治学态度、忘我的敬业精神、开朗、平易近人的性格,使我终生难忘。同样的感谢给李宏芒老师、刘政老师,感谢他们对我的关心和教导。他们严谨治学、一丝不苟的工作态度都深深地感染了我,是我毕生学习的楷模。感谢1 7 班和软件工程研究室的所有同学们! 感谢这个集体给我轻松愉快的学习环境、科学严谨的氛围、充分的实践机会,让我时刻感受到集体的温暖。作者还要感谢我的父母,感谢他们多年来对我的理解、支持、关心和深深的爱。感谢我的朋友! 感谢所有帮助过我的人!感谢各位评委在百忙之中抽出宝贵时间评阅论文!谢谢大家!i l l李超二零零六年五月11 相关概念第一章绪论数据库复制是将一个数据库中的数据同步到其他多个数据库中,维护同一数据对象在多个数据库中的一致性,用以提高系统的可靠性和伸缩性,具有以下几个特点:( 1 )数据的物理分布性:数据不是集中存储在一台计算机的数据库中,而是分布在不同计算机上不同的数据库中。( 2 )数据的逻辑相关性:数据在物理上分布存储,但这些数据并不是互不相关的,它们是同一数据对象在不同数据库中的镜像。( 3 )站点独立性:系统中的每个数据库站点都具有独立性,可以完成本站点的各类应用,不受其他站点故障的影响。( 4 )数据的冗余:与集中式数据库系统不同,采用数据库复制技术的系统使用数据冗余来提高系统处理效率和可靠性。采用数据库复制技术的系统具有以下的优点:( 1 )可靠性:由于一个数据对象在多个不同的数据库站点进行了冗余存储,在一个站点数据失效时可以通过其他站点进行数据恢复,所以单一数据库站点的失效不一定会使整个系统失效。( 2 )自治性:各数据库站点可以自己维护本站点的数据库系统,可以制定各自使用信息的策略,使它们较少地依赖中心数据库系统。( 3 )系统升级能力:单一数据库的服务性能往往受到数据库产品性能的限制,通过增加数据库复制站点可以更好的提高整个系统的性能,花费的代价也较小。( 4 )效率及可用性:通过合理的数据分布和冗余存储,异地数据复制到本地站点上,各种应用就可以直接访问本地站点上的数据,既缩短了响应时间,减少了通讯费用,又提高了数据的可用性。数据库复制按照各结点的数据库类型分为同构数据库复制和异构数据库复制。同构数据库复制是在同构结点之间进行的数据库复制,异构数据库复制是在异构结点之间进行的数据库复制。同构结点指的是系统中各结点运行在相同的硬件和操作系统平台下,并采用完全相同的数据库系统。异构结点指的是各结点采用不完全相同的硬件平台、操作系统和数据库系统。数据库系统的不同主要体现在数据库类型( 网状,层次,关系数据库) 的不同,数据库产品( 如m i c r o s o f ts q ls e r v e r ,o r a c l e ,d b 2 ,f o x p r o ,m y s q l 等) 的不同和数据库产品版本f 如o r a c l e8 i ,o r a c l e 9 i ) 的不同。如图1 1 所示。图1 1 异构数据库复制环境由于操作系统、数据库的不同,异构数据库复制考虑的问题要远远多于同构数据库复制,因此现在研究的重点也集中在异构数据库复制。异构数据库复制包含很多的技术问题,如异构数据库访问技术、异构数据的表示问题、数据复制过程控制、异步数据复制的冲突问题、故障恢复问题等。数据库复制和分布式数据库有着密切的关系,分布式数据库中的一些理论和方法也可以用于数据库复制,如同步数据库复制和分布式数据库都采用两阶段提交协议( 2 p c ) 。但分布式数据库实现的难度较大,应用的范围也要低于采用数据库复制的系统。它们的主要区别是:( 1 )分布式数据库是一个逻辑整体,用户对数据库的操作是完全透明的,但数据库复制系统中的数据在逻辑上存在一定的相关性,用户对数据的操作需要考虑数据的分布特性等。( 2 )分布式数据库需要考虑整个系统的查询优化策略,决定在哪些数据站点提取数据进行查询。采用数据库复制的系统的查询优化策略只针对本地数据库,不涉及到整个系统的优化。( 3 )分布式数据库对事务处理的要求远远高于采用数据库复制的系统。1 2 课题的研究意义随着计算机网络技术的不断发展,计算机的应用已经逐渐从单机应用向网络应用方向发展,系统逐渐从单个应用走向系统整合,对系统的要求也越来越高。作为计算机技术核心内容的数据库技术也逐渐从集中式应用走向分布式应用,数据库复制技术在分布式应用中起着非常重要的作用。数据库复制技术在计算机各种新的应用,如数据仓库、应用集成、移动设备管理、嵌入式系统等中得到了广泛的应用并发捧着重要的作用。企业信息化经过多年的发展,在数据库中积累了大量的业务数据,而各个阶段使用的数据库系统往往不同,如何充分利用这些保存在异构数据库中数据资源是企业信息化面临的一个主要问题。异构数据库技术在集成各类信息资源方面的应用将大大的促进企业后台数据的整合。虽然数据库复制技术已经进行了多年研究,在理论上和实践上都有了很大的进步,但仍然还有很多的问题没有得到解决,特别是在实际应用中。作者参与了淮北煤矿安全管理信息系统( h bc m s m i s ,h u a i b e ic o a lm i n es a f em a n a g e m e n ti n f o r m a t i o ns y s t e m ) 的设计和开发工作,由于系统的用户分散,结点多,距离远,数据库异构等应用环境的约束,在现有各种数据库复制方案无法很好解决实际应用中遇到的各种问题的情况下,设计出一种更加灵活的、实用的异构数据库复制方案,简化异构数据库复制的设计和降低实现难度具有很高的实际应用价值。因此,随着计算机应用技术的不断发展,从理论上和实践上对数据库复制技术进行研究都具有非常重要的价值。1 3 国内外研究现状异构数据库复制的理论研究工作在多个相关领域包括异构数据库领域、复制技术领域以及分布式数据库领域研究的共同促进下取得了很大的进步 1 】,对异构数据库复制技术的分类研究、一致性研究、冲突研究等都发表了大量的文章。在产品化方面,各个数据库厂商都非常的重视,大型的数据库系统往往都提供了独立的同构数据库复制方案,同时在此基础上提出异构数据库复制方案;菲数据库,一商也针对异构数据库复制提出了各自的解决方案,开源的解决方案也已经出现。总的来说从理论上和应用上异构数据库复制都取得了很大的进展。下面简要介绍一下现在主要的异构数据库复制解决方案。o r a c l e 9 ia d v a n c e dr e p l i c a t i o n 复制方案采用四种不同的复制方式对多主站点配置、混合配置的数据进行快照来达到数据复制的目的。s y b a s er e p l i c a t i o ns e r v e r 是一个开放式的体系结构,它支持异构数据库的复制。通过s y b a s er e p l i c a t i o n ,我们可以在与o r a c l e 同构或异构的数据库系统之间进行复制。i b m 的d b 2 数据库通过使用c c d ( 一致变化数据) 表临时存放更改数据的方式实现数据库复制。m i c r o s o f t 的数据库复制方案定义了出版者和预定者两个角色,数据库的复制在出版者和预订者之间进行。独立软件开发商开发出各种异构数据库复制产品,如s y n c k i t ,p e e r d i r e c t ,d a t a s y n c 等。s y n c m l 是一开源的同步解决方案,主要用于移动发备的同步,也可以用于异构数据库复制。各类异构数据库复制方案和产品各有优点,但缺点同时存在。为了改变这种状况,1 9 9 9 年1 2 月a n s is q l 会议计划起草8 q l 标准的第1 2 部分( p a r t1 2 :s q l r e p l i c a t i o n ) ,用于定义复制的语法、规则以及冲突的处理方法。标准的制定1 :作开始于2 0 0 0 年3 月,预计2 0 0 3 年1 2 月结束,但由于没有在标准化方面取得大的进展,p a r t1 2 :s q l r e p l i c a t i o n 的标准化工作已经取消。由于计算机应用时间、水平和对异构数据库复制应用前景认识的不够,国内在研究和实践方面的工作比较滞后。目前在这方面开展研究工作的有:金仓系统对数据库复制和实现进行了研究,提出基于版本号的复制冲突检测和解决策略等。g a l a x y 对异构数据源集成,转化查询做了全面分析。石化示范工程中利用消息中间件实现了实时数据库环境下的数据复制。全国公安系统c c i c ( 中国犯罪信息中心) 应用基于u d t r e e 的复制框架r a u t ,提高大量数据复制情况下系统的整体性能【2 】o者敬提出的2 3 4 5 开放式异构数据库复制框架,从整体的角度对异构数据库复制的主要方面进行了深入的研究。在论文和理论上还提出了面向具体领域和具体数据库的解决方案f 3j l “。1 4 研究内容本文研究的是多平台环境下异构数据库复制的主要技术问题,并提出解决异构数据库复制技术中部分问题的方案并加以实现,内容包括:( 1 )对异构数据库复制相关的技术以及原理进行介绍异构数据库复制技术的内容包含数据库技术、异构数据库技术、复制技术等多方面的内容,通过对相关原理的介绍为整篇论文打好坚实的理论基础。( 2 )介绍几种关系数据库系统和独立软件商提供的异构数据库复制方案现在已存在多种异构数据库复制方案,本文通过对已有方案的比较,优缺点的分析,说明本文需要解决的主要问题,是本文研究工作的出发点。( 3 )异构数据库异步复制模型这是本文的主要贡献之一,本文构造出异构环境下异步数据库异步复制模型,详细介绍了模型的主要功能模块,并对应用此模型进行数据库异步复制的相关问题进行了详细的说明和分析,给出了异构数据库复制中部分问题的解决方法。( 4 )异构数据库变更复制与灾难恢复技术4数据库系统的可靠,稳定,持续运行需要对系统进行经常性的维护工作,本文结合异构数据库复制模型,从维护的理论和实践的角度对复制环境下异构数据库系统维护的主要问题进行了说明,并给出了解决方法。( 5 )实现异构数据库复制模型h b c m s m i s 系统中成功应用异构数据库复制模型实现了异构数据库复制,本文从应用模型的角度详绍说明了异构数据库复制模型的实现过程,降低了模型实现的难度。1 5 论文组织全文由六章组成。本章为绪论,介绍研究课韪涉及到的相关概念,说明论文的主要内容和所做的工作以及论文的组织结构。第二章多平台异构数据库复制原理,主要介绍多平台异构数据库复制的理论、关键技术和现有的复制方案。第三章多平台异构数据库异步复制方案,提出异构环境下数据库异步复制模型,对模型的主要内容,特点等进行分析和说明。第四章异构数据库变更复制与灾难恢复技术,针对异构数据库系统可持续运行的主要问题,结合异构数据库复制模型从三个方面给出相应的解决方法。第五章多平台异构数据库复制实现与应用,是异构数据库复制模型在实际应用系统中的实现说明,包括数据库的设计、复制数据的设计、数据捕捉、应用平台等多个方面的内容。第六章总结与展望,对全文进行总结,并指出研究中存在的主要问题和改进方向。第二章多平台异构数据库复制原理多平台异构数据库复制理论非常丰富。本章从数据库基本理论、数据库复制的分类、数据捕获技术、同步过程模型、冲突的检测和解决这些核心内容和关键技术的角度出发,介绍多平台异构数据库复制的相关理论。2 1 数据库原理数据库系统是实现有组织地、动态地存储大量关联数据,支持多用户访问的计算机软、硬件资源及d b a 组成的系统,具有自包含性,提供对完整性、安全性、并发和恢复四个方面的数据控制,具有更强的数据独立性和数据抽象能力口1 。数据库的数据模型包含多种形式,包括传统的层次数据模型、网状数据模型,现在使用最多的关系数据模型,以及面向对象、基于逻辑等新型数据模型。关系数据模型以关系代数为理论基础,用户接口简单,可用于知识库、数据库机、并发数据库、分布式数据库等领域,是最广泛使用的数据模型,现有的商用数据库系统大多数都是基于关系数据模型。结构化查询语言s q l ( s t r u c t u r e dq u e r yl a n g u a g e ) 是关系数据库系统中标准的查询语言。s q l 语言结构、功能简单,主要包含四个方面的内容:数据定义、数据查询、数据更新、数据控制。数据定义用于创建、修改数据库中的各种对象,如数据表、字段、索引等;数据查询通过s d e c t 语句扶数据库中检索出满足查询条件的数据;数据更新操作i n s e r t ,u p d a t e ,d e l e t e ,完成对数据的插入、更新、删除操作;数据控制用于权限管理和安全控制。数据库作为一种提供共享数据服务的系统,在支持用户并发访问数据的同时,必须保证数据访问的正确性和可靠性,在数据库中将包含有数据库操作的程序的一次执行称作一个数据库事务,简称事务( t r a n s a c t i o n ) 。事务具有的重要特性包括:( 1 )原子性( a t o m i c i t y ) :事务的所有操作或者全部完成,或者均不执行。( 2 )持久性( d u r a b i l i t y ) :如果一个事务已经交付,系统必须保证它的处理结果不会丢失并且与以后的故障无关。( 3 )可串行性( s e r i a l i z a b i l i t y ) :如果几个事务是并发执行的,那么所得结果必须与它们按照某一顺序串行执行所产生的结果完全相同。( 4 )隔离性( i s o l a t i o n ) :一个正在执行的事务在到达终点之前不能向其它事务透露自己的结果,即一个事务的中间结果对其它事务是透明的。数据模型中包含域完整性、实体完整性和引用完整性等约束,通过d b m s 的d d l可以保证这些约束条件得到满足。d b m s 还提供了触发器机制来进行约束检查。大型数据库系统中都包含了触发器功能,可以在触发器中定义验证规则检查对数据库的更新操作是否满足约束条件。应用系统对数据库的操作语言是s q l ,但不同数据库系统定义的数据库搡作接口不完全一致,因此中间件厂商定义了公共的数据库操作接口,其中包括w i n d o w s 平台fo d b c ( o p e nd a t a b a s ec o n n e c t i v i t y ) 接口,用于j a v a 语言访问数据库的j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 接口等,解决了使用公共接口操作异构数据库的问题。j a v a 语言支持多种操作系统,实现了真正意义上的跨平台,基于j d b c 的数据库访问技术是解决多平台异构数据库访问的首选方案【6 1 。2 2 数据库复制的分类数据库复制有不同的分类方法,不同的分类采用的复制方法往往不同。文献1 7j 的作者对数据库复制进行了分类,按照复制的方向划分为单向( 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 ) 复制,按照传播更新的方式划分为同步( s y n c h r o n o u s ) 复制和异步( a s y n c h r o n o u s ) 复制。单向复制,也称主从式( m a s t e r s l a v e 或p r i m a r y s e c o n d a r y ) 复制或主版本( m a s t e rc o p y ) 复制,指的是两个复制结点之间只从一个结点向另一个结点进行复制,源结点保存复制对象,目标结点保存复制对象的副本,源结点中数据对象具有可读可写的特性,目标结点中的数据对象只具有可读的特性,修改数据对象需要在源结点上进行,从而预防了更新冲突的发生。这种复制方式比较简单,应用范围也比较广,在数据仓库,w e b 网站等领域都有大量的应用。如在大型的w e b 网站中,为了提高整个网站的用户访问量,通常设置多个缓存数据库,缓存数据库和主数据库之间进行主从式复制,网站内容的修改在主数据库上进行,用户访问缓存数据库获得网站内容,这样整个系统的吞吐量就不会受单个数据库服务能力的限制,性能可以得到明显的提升【8 】。双向复制也称对等式( p e e r - t o p e e r ) 复制,多版本( m u l t i c o p y ) 复制或随处修改( u p d a t ea n y w h e r e ) 复制,指的是两个复制结点之间可以互相复制,复制结点既是源结点也是目标结点。源结点和目标结点上的复制对象都是可读可写的。在分布式环境下可能对同一复制对象同时进行修改,所以在理论上存在冲突的可能性,因此双向复制中的一个重要问题就是如何检测预防和解决复制中的冲突。双向复制比单向复制更加复杂,实现难度也较大,但应用的范围要更,“泛一些,在移动环境、动态环境等场合下大多采用这种复制方式。同步复制又称为急切f e a g e r ) 复制,是在一个原子事务中同时更新所有的复制结点,同步复制可以进行序列化操作,但是在交互过程中需要更多的消息交匾,从而降低了复制性能,也增加了事务执行的响应时间。同步复制不适合移动应用场合,因为移动设备不可能保持实时的连接,通常采用另一种复制方法异步复制。异步复制又称为懒一n ( 1 a z y ) 复制,是在本地事务提交以后再将本地数据的变7更反映到其他复制结点上,这种方式不需要实时的连接,可以很好的提高复制性能,但异步复制的一个问题是在复制结点中存在“脏”数据,当两个事务在不同结点读和写数据时,就无法保证事务的序列化,这种复制方式一般应用在对数据一致性要求不是很高的地方l o 】;另一个问题是单副本可串行性化( c o p ys e r i a l i z a b i l i t y ) 问题,即同时满足单副本等价性和事务并发调度的可串行性,这方面也进行了大量的研究工作l 1 2 b 1 。同步复制和异步复制的应用场合不同。同步复制可以保证系统所有结点数据的实时致性,对于银行此类系统一般采用同步复制方法。异步复制无法保证数据的实时一致性,可以应用在移动设备数据复制,多级管理信息系统中。本文的研究重点是异步复制,在理论、设计方案、实现等方面对异步复制方法存在的问题进行研究和解决。2 3 复制数据的类型数据库复制需要在数据库之间传输数据记录,这些数据记录是数据库中记录的一种划分,这种划分与数据库中的记录存在一定的逻辑关系,按照这种逻辑关系把复制数据分为以下几种:( 1 )全划分:复制数据为数据库中所有表中的所有记录。数据库中记录的任意变化都需要进行复制操作。( 2 )水平划分:复制数据只是表中的部分记录,只对满足复制条件的记录进行复制操作。( 3 )垂直划分:复制数据只是记录的部分字段,不需要对全部改变的字段值进行复制操作。( 4 )水平垂直划分:复制数据是水平划分和垂直划分的组合。( 5 )函数统计划分:复制数据是对记录进行统计运算的结果。复制数据的不同划分用于不同的场合。对于缓存数据库或备份数据库一般采用全划分的方式,所有的数据都进行复制。水平和垂直划分对数据进行了过滤操作,往往用在数据保密,分级管理方面,可以提高复制的效率,降低不必要的数据传输。函数统计划分主要用在基础数据不全或者特定情况下不能传输基础数据而只能传输统计数据的情况下,这种方式可以大大的降低数据传输量,同时可以直接利用统计数据,而无需每次都通过基础数据来生成统计数据,提高了数据库的性能,满足了统计方面的需求。复制数据按照传输数据的形式分为完整拷贝( f u l lc o p y ) ,增量修改( i n c r e m e n t a l u p d a t e ) ,净变化( n e a tc h a n g e ) 三种o ”j 。完整拷贝方式:源数据库中所有的记录都传送到目标数据库中。完整拷贝的优点是实现起来简单容易,不占用额外资源,不需要进行冲突检测等方面的工作,但其缺点是效率较低,只能应用在初始化复制、崩溃恢复等场合。增量修改方式,也称标量( s c a l a b l e ) 方式:在这种方式下需要将事务对数据的操作内容全部保存下来,传输的数据就是操作的完整序列。增量修改的最大优点就是满足复制的单副本可串行性化。这种方式能够提供详细的控制信息,适用于多种复制方式,但保存全部的操作序列需要较多的资源,设计通用的存储结构也较复杂【l ”。净变化方式:传输的数据为两次复制之间更新数据的净变化值。这种方式需要记录上一次复制的状态,在下一次复制时将上次复制以来的所有变化数据从数据库中提取出来作为复制数据项。净变化方式只传输改变的数据,因此传输的数据量是最小的,实现方法也较简单,可以明显的提高复制性能【l ”,但是这种方式不是以事务为依据对数据进行划分,所以不能用于同步复制,在数据复制的过程中也存在一定的问题。2 4 数据捕获技术复制数据和数据捕获技术有一定的相关性,不同种的数据捕获技术在生成复制数据的能力方面上有所不同。现在常用的数据捕获技术包括快照法、触发器法、日志法、a p i 法、影子表法和控制表变化法 1 7 】。( 1 )快照法快照( s n a p s h o t ) 是在某一时刻将数据库中存储对象的状态存储下来,构成当前数据库的一个映像文件,将此映像文件作为复制数据,用来更新其他的数据库。快照法只是在复制时进行一次全面扫描,实现简单,它不需依赖特别的机制,也不占用系统资源,在复制初始化和崩溃恢复时通常需要采用这种方式。由于快照法生成完全拷贝的复制数据,因此效率很低,应用的范围也比较小。o r a c l e 和m ss q ls e r v e r 数据库明确提供了基于快照的捕获方法。一般的复制方案在初始化时往往也使用这种方法。( 2 )触发器法触发器是一种特殊类型的存储过程,当使用u p d a t e 、i n s e r t 或d e l e t e 对指定数据表中数据进行操作时,触发器就会生效,通过分析操作的相关信息,可以在触发器中定义复杂的业务规则。触发器法就是通过捕获这些操作并将数据操作的信息保存到日志中或者直接进行复制操作。如图2 一l 触发器数据捕捉方式所示。触发器法避免了不必要的数据传输,克服了基于快照法的主要缺点,大大提高了效率,可以用于同步复制和双向复制。但是触发器机制需要数据库系统的支持,并且为了支持不同的复制数据类型,复制方法需要设置不同的触发器脚本,给系统维护和变更带来了不便。9数裂雎图2 1 触发器数据捕捉方式由于大型数据库系统基本上都提供了完善的触发器机制,因此大型数据库厂商提供的数据库复制方案往往都运用了这种捕获方法,如o r a c l e 的对称复制( s y m m e t r i cr e p l i c a t i o n ) 综合应用了快照和触发器两种捕获方法。( 3 )日志法数据库日志完整记录了数据库系统运行的状态,包含了所有完成的数据库操作信息。日志法就是通过分析数据库同志获得历史操作信息来获得复制数据。大多数数据库系统都有日志,利用它不需要占用太多额外的系统资源。日志法对任何的复制都适用,既能提高效率又可以保证数据的完整性,并为复制提供详细的控制信息。但是日志法也存在一些缺点。首先,大多数的数据库系统都不会公开其日志的格式和操作接口,除非得至数据库厂商的帮助,否则通过分析获得日志的格式将非常困难,编写相应的日志分析工具也难以实现;其次,复制所需的内容在日志中是否完整包含无法得到保证,分析不同数据库系统的日志文件也给实现异构数据库复制带来很大的难度;最后,日志通常以文件的形式存在,在数据库系统运行时进行文件的操作无法保证一定满足数据独立性,隔离性等特性,不加以处理往往会出现数据丢失等问题。在实际应用中,日志法在商用数据库系统中得到广泛地使用,s y b a s e ,d b 2 ,s q ls e r v e r 等数据库系统都采用了这种捕获方法。( 4 )a p l 法a p i 法是在应用程序和数据库之间添加一中间件,应用程序对数据库的访问都通过中间件进行,如o d b c ,j d b c 驱动程序等,通过在驱动程序中记录操作信息来获得复制数据。如图2 2 所示。a p i 法能够实现日志法的大多数优点,并且不需要过多数据库厂商的支持,可以给异构数据库复制带来便利。但是a p i 法存在几个缺陷:第一:那些不经过中间件进行的操作,如直接通过数据库管理程序进行数据操作时所引起的数据变化将无法捕捉到,这决定了完全基于a p i 法进行数据捕获在实际运用中会遇到很大的问题:第二,开发中间件驱动程序往往代价比较大,特别是o d b c ,j d b c 驱动程序,虽然可以通过代理模式等降低设计的复杂度,但其它需要设计的内容仍然较多。固2 - 2 公共操作接口数据捕捉方式激捌瓣a p i 法在s y n c h r o l o g i c 的s y n c k i t 方案中进行了运用,本文复制方案的实现部分综合采用了a p i 法和触发器法进行数据捕获。( 5 )影子表法影子表法就是为当前数据库中的所有表构建一个影子表,初始化时将原表中的信息复制到影子表中,在复制数据时将数据库表中的值与影子表中的值进行比较获得复制数据。这种方法不保存中间操作的数据,可以提高数据传输的效率,管理也相对简单,但仍然需要一倍的存储空间,而且不能实现同步复制,在获得复制数据时需要完整扫描数据库表和影子表,效率不是很高,特别是数据表较多时。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 ) 法就是创建一张包含复制源表的主键字段和一些控制信息字段的控制表,当复制表中的记录发生变化时,则修改控制表中相应关键字的记录,在控制信息字段中记录变化的情况,这一过程可以通过触发器,中间件来实现,复制数据可以根据控制表中记录的变化情况生成。通过控制表变化法得到的复制数据是数据库的净变化,效率较高,由于只保存了主键信息和部分控制信息,所以在空间占用方面也较小。控制表变化法可适用于除同步复制以外的各种复制形式。这种捕获方法最先在p e e r d i r e c t 开发的p d r e 中使用。上述的六种数据捕获方法各有优缺点,需要结合应用场合加以运用。在需要同步复制的场合就需要能够实时捕获数据变化,如触发器法,a p i 法;在需要复制的单副本可串行性化的场合就需要能够捕获数据操作的完整序列,如日志法,a p i 法;在数据库不支持触发器的情况下,有些捕获方法实现就存在一定的问题,如控制表变化法;运用不同的捕获方法还需要综合考虑占用资源,异构复制,移植性等方面的因素。2 5 异构数据库分布的拓扑模型异构数据库复制系统由多个分布在不同地点的异构数据库结点组成,这些结点按照一定的拓扑结构连接起来,不同的拓扑结构在数据的传播方式等方面都有所不同,本文列举出实际系统中常用的几种拓扑结构:( 】)简单结构:这是最简单的拓扑结构,整个系统中只包含两个结点。简单结构是其他拓扑结构的最简形式,对数据库复制的研究往往是以研究简单结构为基础,逐渐推广到其他的拓扑结构中。( 2 )全连接结构:复制结点两两连接,构成一个全连接图。由于结点两两互连,数据传播只在两结点之间进行,不需要经过其他的结点,因此通讯简单,但对网络的要求较高。( 3 )星型结构:系统中包含一个中央结点和多个叶子结点,叶子结点只与中央结点连接。在星型结构中,叶子结点和中央结点间的数据库复制可以直接进行,叶子之间的数据库复制需要通过中央结点中转。( 4 )树型结构:复制结点按照树的结构进行连接,除了根结点以外每个结点都有唯一的父结点,同时可咀拥有多个孩子结点。结点的祖先是从根结点到该结点所经分支上的所有结点。以某结点为根的子树中的任一结点都称为该结点的子孙【1 “。树型结构是一种分层的结构,根结点是第一层,根结点的孩子是第二层,同一层结点为堂兄弟。树型结构中的复制方向往往是在各层之间进行,这与系统的业务规则相一致。( 5 )网状结构:这是最复杂的一种拓扑结构,结点按照图的方式进行组织。如果结点需要两两可以通讯,那么此图需要是连通图,如果只存在单向复制,那么此图则必须满足强连通的要求。在这种结构下两两结点的通讯需要经过路由选择确定通路,实现起来也较复杂。2 6 同步协议同步过程是由源结点获得复制数据,传播到目标结点,完成复制数据导入的一系列步骤组成,需要对数据传输,异常处理等进行控制,并保证副本的一致性。同步复制需要一次同时更新多个副本,同步过程复杂,一般使用两阶段提交协议。异步复制一般在两个结点之间进行,复制过程相对简单,也进行了一一些研究工作i l 圳。这里主要说明同步复制时使用的两阶段提交协议,同步过程如图2 3 所示。两阶段提交协议的提交过程分为两个阶段:第一阶段是表决阶段,目的是形成一个共同的决定。开始时,协调者在它的日志中写入一条开始提交的记录,再给所有参与者发送“准备提交”消息,并进入等待状态。当参与者收到“准备”消息后,它检查是否提交本地事务。如果能提交,参与者在日志中写入一条就绪记录,并给协调者发送“建议提交”的消息,然后进入就绪状态,否则,参与者写入撤销记录,并给协1 2调者发送“建议撤销”消息。如果某个站点做出“建议撤销”提议,由于撤销决定具有否决权( 即单方面撤销) ,该站点可以忽略这个事务。协调者收到所有参与者的回答后,它就做出是否提交事务的决定。只要有一个参与者投了反对票( 建议撤销) ,协调者就必须从整体上撤销整个事务。因此它写入一条撤销记录,并给所有参与者发送“全局撤销”消息,然后进入撤销状态;否则,它写入提交记录,给所有参与者发送“全局提交”消息,然后进入提交状态。第二阶段是执行阶段,目的是实现这个决定。根据协调者的指令,参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。此时,协调者在日志中写入一条事务结束记录并中止事务 2 0 l 。一一- 一 一一- - - - 一- - 一一协调者阶段一参与者障开始提交k := 一,1 记录放弃p 0定义二:数据表a 中各列为 c l ,c 2 ,c 。 ,如果操作更新的字段为 cx l c 】【2 ,c 。i ) ,其中x i x 2 x j ,那么更新列字段是这样的一长字符串s ,s 的长度为i ,设置s 的第j 位等于1 ,j = x l ,x 2 ,x 。,设置s 的其他位等于0 。定义三:系统中包括的复制结点为 s t ,s 2 ,s 。) ,如果需要向结点 s “s x 2 、,s 。i )进行数据复制,其中x i x 2 b( 1 )修改记录r a :b 结点生成的复制数据不包含对r a 的操作;a 生成的复制数据将修改r b ,经过同步r b = r a 。( 2 )修改记录r b :b 结点复制数据将修改r a ,使r b = r a 由于r a 的值发生了改变,虽然r a 的值是由r b 更改引起的,但考虑也有可能由其他副本修改造成的,为了简化处理,a 结点生成的复制数据仍然会包含修改r b值的操作,但r b 的值已经等于r a 的值,所以在a 结点的操作不会改变r b 的值。( 3 )删除记录r a :b 复制数据对r a 无操作;a 复制数据包含删除r a 的操作,那么r b 也将被删除,此时记录r 从两个数据库中被同时删除掉。( 4 )删除记录r b :b 复制数据中包含删除r b 的信息,因为r a 的关键字和r b 的相同,那么r a 将从数据库a 中删除;a 复制数据包含删除r a 的信息,因为r b 已从数据库中删除,那么等同于空操作,此时记录r 从两个数据库中被同时删除掉。( 5 )修改r a 的字段f a ,修改r b 的字段f b :b 复制数据包含修改字段f b的信

温馨提示

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

最新文档

评论

0/150

提交评论