




已阅读5页,还剩67页未读, 继续免费阅读
(模式识别与智能系统专业论文)数据集成系统中数据复制关键技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着因特网和r r 技术的广泛应用和迅猛发展,网络资源越来越丰富,这使 得人们对数据资源共享的需求更加旺盛,无论在数量上还是在技术上都对数据集 成系统提出了更高的要求,特别是异构数据集成系统。异构数据集成是数据库领 域的经典问题,它是信息整合的基础所在,是集成技术的研究热点。 在分析已有的数据集成理论和方法的基础上,本文选择了数据复制技术的数 据集成方法,设计了一种包含连接层、实现层、应用层的三层次数据复制体系结 构。这个体系结构的核心层是实现层。整个体系具有很好的异构性、可靠性、移 植性和扩展性。 实现层采用了一种“基于s q l 重现法”的数据复制方法来实现数据复制功 能。这种数据复制方法结合了基于触发器和基于时间戳两大变化捕获方法,通过 建立在源表上的触发器获得复制对象的净变化,并将这一变化动作还原为s o l 语句继而完成数据分发任务。这种数据复制方法运行和传输效率很高,易于管理, 适合于除同步复制外的各种复制形式。 本文给出了实现层的数据变化捕获、数据分发和数据冲突处理模块的具体实 现策略,详细描述了捕获源数据变化的实现过程,以及为实现捕获所创建的触发 器、存储过程等的方法和变更轨迹表等系统表的逻辑结构。 本文对由于在数据复制时可能引起的冲突问题也进行了研究。针对“基于 s q l 重现法”的数据复制方案,提出了预防冲突的措施以及冲突解决的策略。 在软件开发过程中,软件测试是不可缺少的。依据软件测试的目标、原则及 基本测试技术,本文详细介绍了对“基于s q l 重现法”的数据复制方案的测试 实旄过程、执行内容以及测试用例的写作。 关键词数据复制;数据变化捕获;数据冲突;软件测试 北京工业大学工学硕士学位论文 a b s t r a c t w i n lt 1 】ew i d ea p p l i c a t i o na 1 1 dh i 曲s p c e dd e v d o p m e n to fh l t e m e ta n di t t e d m o l o g y ,r c s o u r c 瞄o fn e t w o r kb e c o m em o r ea n dm o r ea b l | n d a n t ,a n d 血ed e i l l a i l d f o rs h a r eo fd a t ar e s o u r c e si sg r e a n yc r l l l a n c e d m o r e o v e r ,t h er e q u i 啪tf o rd a t a i n t e 蓼a t i o ns y s t e m ,e s p e c i a i i yh e t e r o g e n e o u sd a t ai m e 擎a t i o ns y s t e m ,b e c o m e sh i 曲 q u 删t a t i v e l ya n dt c c h n i c a l l yt h ep r o b l 锄o fh e t e r 0 群m e o u sd a t ai n t e 蓼a t i o ni so n e o ft h ed a s s i c a lp r o b l 锄si nd 啦l b a s e c o m i n u l l i t xa n di t i st h e 托旧1 d a t i o no f i n f o r i l l a t i o ni m e g r a t i o l l ,a n db e c o m 船ar e s e a r c hf o c u si 1 1t h i sc o 姗u 1 1 i t y u n d e r l e 姐a l y s e so ft 1 1 et h e o r ya n dm e m o do fd a t ai n t e 盯a t i o 玛m em e 出o do f d a t ar 印1 i c a t j o ni sa d o p t e d ,趿dm e 删t e c n 】r eo fd a t ar e p l i c a t j o n ,w 1 1 i c hi n c i u d e s c 0 衄e c 廿0 nl a y e r ,r e a l i z a t i o nl a y e ra n da p p l i c a t i o n1 a y i sd e s i 印e d r e a l i z a t i o n1 a y e r i st l l ec o r co ft l l i sa r c h i t e c t i 】r e t h ew h 0 1 ea r c i l i t e c t u r cp r o v i d e sg o o dh e t e r o g e n e i t y r e i i 曲i i i 劬胁s p i a i l ta l l de x p a 邶i b i i i 戗 ad a t ar e p l i c a t i o nm e t l l o db a s e do n “s q lr e g e i l e r a t i o n i sa d o p t c dt oa c h i e v e 胁a t i o no f d a t ar c p l i c a t i o ni n 也er c a l i z a t i o nl a y e r t h em 曲o dc o 埘l b i i l e sd a t ac t u r e m 甜岫db a s e do nt r i g g e r 谢t l ld a t ac a p t i 】r em e m o db 鹳e do nt i m e s t a m p ng a i n s r e p l i c a d o no b j e c t sr c l a t i v ec h 觚g e sm m u 曲e s 切b l i s h i i l g 拄i g g e r so nt h cs 0 1 l r c et a b l e s , a 1 1 dc o n v 岛t sm e s ec h a n g e si n t o 1 ef o m lo fs q lt 0a c c o m p l i s h 舳c t i o no fd a t a d i s 缸曲u t i o n t h er e p l i c a t i o nm e t h o di se 伍c i e i l ti ne x e c u t i o n 蛆dt r a n s m i s s i o n ,a 1 1 di s e 踮y t ob em 姐a g e d ,趾di sf i tf o rv a r i a u s 咖e so fr 印l i c a t i o ne x c 印tf o r s ”c h r o n j z a t i o nr c p l i c a t i o n f o rr e a l i za _ t i o nl a y e r ,w a ) ,s0 fd a t ah 盯锄e n t “c a p t l l r e ,d a t ad i s m b l m o n ,a n d d a t ac o n n i c t sm a l l a g e i n e n tm o d da r ep r o p o s e d ,a i l dp m c e s so fc a p 嘶n g c h a n g e so f d a t as o l l r c e si sd e s 硎b e di nd e t a i l i n a d d i t i o i l ,f o ra c h i 砒l g 缸c t i o no fc a d t l l r e , m e t l l o d so fe s t a b l i s l l i n gt r i g g e r s ,s t o r e dp m c e d i l r e s ,吼dl o 百cs 仃u c t u r eo fs y s t e n l t a b l e s ,s u c ha sc h 跚g e 缸a c et a b l e ,e t ca f ep 船e n 蜘 i i lt 1 1 ep a p s o m er e s e 盯曲【c sa r ed o n eo nt 1 1 ed a t ac o n n i c t s ,w h i c ho r e nh a p p e n w t l i l er e p l i c a t i n gd a t a m o r e o v t l l em e 嬲u r c so f p r e v e l l t i n g 蛆ds 0 1 v i n gc o n n i c t s 盯e p r o p o s e da i m i n ga tm ed a t ar 印l i c a t i o nm e 如o d b a s e do n “s q lr e g e n e r a t i o n ” d u r i n gt h es o 脚8 r ed e v e l o p m e n t ,s o 脚a r et e s t i i l gi si n d i s pe r 】s a b l e a c c o r d i n gt o m eo b j e c t i v e ,p r i n c i p l ea 1 1 db 髂i ct e c l l l l i q u e so fs o 帅a 化t e s t i n 品a p p r o a c h e sa 1 1 d c o n t c n t so f i m p l 锄e n t i n gt e s t ,c o m p o s i t i o no f t e s tc a s ef o rm ed a t ar e p l i c a t i o nm e 吐l o d b a s e do n “s q l r e g 饥c r a t i o n a r ep r o p o s e di nd e t a i l k e yw o r d sd a t ar 印1 i c a t i o n ;da _ t ai i l c r 锄e i l t a lc 印t 1 1 r e ;d a t ac o n n i c t s ;s o f h v a r e t e s t i i l g - i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名 关于论文使用授权的说明 日期:碰:! :望 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:肆导师签名:二窜鞋 第l 章绪论 1 1 课题背景 第1 章绪论 二十一世纪是信息化的时代,随着计算机多媒体和网绍技术的快速发展,各 行各业都逐步实现了业务、信息的计算机化管理。企业内部每个部门根据自身的 需要构建各种信息服务和管理系统。这些信息系统互相独立,互相隔离,各自拥 有自己的数据资源。这些资源不仅包括传统数据库资源,如关系型数据库和面向 对象数据库资源,还包括盯 i l 、x 札等半结构化资源。各信息系统采用本地策略 对数据实施操作,并且各数据源采用不同的存储方式,以及使用不同的概念、属 性和关系来表达本地数据。当各信息系统在不同环节之间进行数据交流和部门协 同时便会发生困难。因此,如何将多个分布异构数据源集成起来,并在它们之间 进行灵活的互操作,是目前急需解决的问题。 国外对数据集成的研究较早,出现了多种数据集成的解决方案,如t s i 删i s 、 i n f o r m a t i o n n i f 0 1 d 、i n f o s l e u t h 等系统都对不同的数据源提供了一种统一 的集成存取。这些系统从不同角度出发,以不同方式解决了数据集成问题,但它 们的菸同特点都是依赖于数据迁移和数据转换技术。良好的数据迁移和数据转换 技术可以有效地屏蔽异构数据源带来的困难,缩短数据集成系统的开发周期,提 高系统的整体运行效率。 数据复制技术是目前公认的数据迁移、转换技术,它效率高,容易实现,并 且保证数据一致性【lj ,利用数据复制技术可以将丈量异构数据转换成同构数据, 实现数据的集成,并且在数据层面上能够保证数据的一致性。相对于国外来说, 国内对于基于数据复制技术实现数据集成的研究还很欠缺,因此对数据复制授术 的研究是很有意义的。 1 2 相关研究内容及研究现状 1 2 1 数据集成概述 数据集成用来对各种异构数据提供统一的表示、存储和管理,这些功能在异 数据集成用来对各种异构数据提供统一的表示、存储和管理,这些功能在异 北京工业大学工学硕士学位论文 构数据集成系统中实现。数据集成屏蔽了各种异构数据间的差异,通过异构数据 集成系统进行统一操作。因此,集成后的异构数据对用户来说是透明的、统一的、 无差异的。 数据集成可以提供一个统一的查询接口,屏蔽底层异构数据源的不同,使得 用户不必再考虑底层数据模型不同、位置不同等问题,能够通过一个统一的查询 界面实现对网络上异构数据源的灵活访问。用户只需指定想要得到的数据要求, 而不必关注数据的抽取,数据的合成等问题。集成系统自动提供模式转换与集成、 全局查询处理等功能,将从多数据源取得的数据以统一的方式提供给用户。这样 就使得对多数据源的操作就像操作一个数据源一样简单。其中关键的是如何以一 种统一的数据模式描述各数据源中的数据,屏蔽它们的平台、数据结构等异构性, 实现数据的无缝集成】。 1 2 2 数据集成系统的研究现状 目前数据集成的研究内容主要涉及三个方面:自治性、分布性和异构性。 ( 1 ) 自治性 4 】:自治性指一个数据源是独立于其它数据源,也独立于集成系统 的。各数据源有自己的数据管理系统,采用本地策略对数据实施操作。用户和应 用能够通过一个联合的系统访问数据,也可以通过它们本地的系统访问数据。自 治性主要有三类【5 :设计自治、通信自治和执行自治。 ( 2 ) 分布性:数据源分布在地理位置分散、互相间可进行通信的多个站点。 ( 3 ) 异构性:异构性有不同层次上的体现。按不同的分类标准有不同的划分 方法【4 】,主要包括四个方面:系统异构( 如操作系统、硬件设备和通信协议等) , 结构异构( 如结构化的s q ls e r v c r 数据库数据和半结构化的) 洲l 数据) ,语法 异构( 不同的语言和数据表达形式) ,以及语义异构( 模式层的语义异构和数据 层的语义异构等) 。 国外开展数据集成的研究比较早,著名的数据集成项目有t s i 栅i s 、 i n f o r m a t i o nm a n i f o l d 、i n f o s l e u t h 等。下面分别对这几个数据集成系统进行 简单的介绍【6 l 。 t s i m m i s t s m i m i s ( t h es t a f o r d i b mm a n a g e ro f m u l 卸l eh l f o 皿撕o ns o u r c e s ) 是由 斯坦福大学与i b m 联合开发的一个信息集成系统,其目的是提供异构数据源的 快速集成开发工具。异构数据源包括结构化和半结构化的数据。它提供了一个框 架和一组工具来帮助用户开展他们的集成活动。其体系结构如图1 1 所示。 t s i m m i s 中最重要的是两类组件:包装器( w r a p p e r ) 和中间件( m e d i a t o r ) 。 第1 章绪论 图1 1t s 心d i s 体系结构【7 j f i g u r c1 1 t s 【m m i sa r c h n e c t i l 豫m i n f b m a t i o nm 锄i f o l d i m ( h l f 0 衄a t i o nm a l l i f o l d ) 是开展于a t t 贝尔实验室的项目。i m 对数据 源采用说明性描述,利用运算法则为数据源生成可执行的查询规划。i m 已被应 用于集成1 0 0 多个不同的w w w 数据源。其体系结构如图l - 2 所示。 匪画豳暖巫囵匝巫囵暖亟习 图1 2 i i l f 0 n a d o nm a n i f o l d 体系结构闭 f i 孵1 _ 2h l f o m 撕o nm a n i f o l d 觚h i t c c m r e 7 】 h l 南s l e u t h i n f o s l e u 血是m c c ( m i c r o e l e c 觚i l i c s a n dc o m p u t c rt e c l l i l 0 1 0 9 yc o r p o r a t i o n ) 的一项科研项目,采用了多a g 踯t 的体系结构。该体系结构由一组可以互相通信 的a g e n t 构成,每一个a g 跖t 负责系统某一方面的功能。a g c n t 之间可以通过 北京工业大学工学硕士学位论文 k q m l ( k n o w l e d g eq u e r ym a 【l i p u l a t i o nl a l l g l i a g e ) 进行通信。其体系结构如图 1 3 所示。 图l - 3h l f o s l e l l t h 体系结构川 f i g u r e1 - 3 i n f o s l 即也删t c c t i l i 刀 综上所述,t s i m m i s 使用的m e d i a t o r - w r a p p e r 方式比较常见,在m e d i a t o r 中定义统一的视图,能够比较精确地定义信息提供的信息,但缺点是每增加一个 数据源,都可能要重新定义m 酣i a t o r 中的视图定义。h f 0 咖a t i o nm a l l i f 0 1 d 可以 方便地添加数据源,只要为新数据源生成s o u r c ed e s 嘶州o i l s ,而无需改变查询 处理算法。但是讧没有t s 蹦m i s 那样的包装器,子查询是直接以数据源的本 地形式描述的,这样就限制了i m 对更为强大的查询功能的支持。b l f o s l e u t h 能够 灵活的添加具有本地自治的数据源。资源a g e i l t 在接入系统和离开系统时都会向 代理a g e i l t 做出声明,一个数据源只需要建立对应的资源a g e m ,就可以方便地 集成入系统。 而国内也在近年来对数据集成开始了研究,如暨南大学信息网络工程研究中 心的异构数据库信息集成系统o m n m n k 【8 】等。o m n i l i n k 是暨南大学信息网络工 程研究中心开发的基于异构数据库集成的中间件系统。它把异构数据库数据集成 模块从开发应用系统中独立出来,简化了应用系统的开发,使开发人员从复杂的 数据中摆脱出来,从而将精力集中在系统功能的设计上。 1 2 3 基于复制技术的数据集成方案 针对上述数据集成系统的利弊,一种新的数据集成模式应运而生,这就是复 制模式。复制模式也可以算分布模式的一种,其主要特征是网络节点中存在多个 数据副本。数据复制技术可以实现把一个或多个源服务器上的数据拷贝自动传送 到本地或远端的一个或多个目的服务器中。也可以说,数据复制技术是一种将集 圄昂 第1 章绪论 中的信息散布到分布业务环境中多个地点的可靠手剐9 】。 在复制过程中,数据可以以特定的时间间隔将数据拷贝到远端,即异步复制, 也可以立即将改变的数据复制到远端站点,中间没有时间延迟,即同步复制。其 中所需复制的数据表的数据内容可以全部或部分被复制,即可以对要复制的数据 表进行数据过滤,选择所需复制的数据内容,复制的粒度最小可到达记录。在具 体实现复制时,可以是将复制对象数据全部复制到目的服务器,对目标对象进行 全部覆盖的方法更新目标对象,也可以是只将发生变化的复制对象数据进行复 制,对目标对象进行增量复制的方法更新目标对象【l ”。这样,采用数据复制技 术可以通过保存一个表的多个拷贝,使多个数据库密切同步,在多个数据库服务 器上根据数据复制更新策略,有规律地更新数据,并且在系统发生故障后霞新使 多数据库保持同步1 1 ”。可见,数据复制是维护数据实时的一种有效手段。 数据复制在保证数据实时更新的基础上,还可以维护放置在不同数据库节点 中的多个副本的数据一致性。这样形成的分布式环境可以从根本上提高整个系统 的可用性和可靠性。通过数据复制技术可以实现用读取本地数据替代访问远程数 据的功能,这样不但降低了网络传输开销,缩短了响应时间,还能在节点和通信 发生故障时保证系统依然正常运行,并且减轻了单个服务器的负载,达到了负载 均衡,但这是以一定的数据冗余做为代价的。 近年来,数据复制技术的研究得到了很大程度的发展,其应用领域日益扩大。 数据复制技术己成为分布式数据库应用的重要支持技术。 目前,国内外主流的数据库产品,如o r a c l e 、i b m d b 2 、m i c r o s o f s 0 l s e n 肾 等都提供了基于复制技术的分布式数据库应用解决方案,但由于复制技术的研究 起步较晚,国内外应用复制技术而实现的数据集成实例还不是很多,而已实现的 数据集成实例的规模也不大,应用相对简单,所以深入研究和探讨基于复制技术 的数据集成是很有必要的。 1 3 课题来源和主要研究内容 本课题得到北京市教育委员会的基金资助( 0 0 5 0 3 ) ,研究通过s q l 重现的 复制技术实现异构数据库的信息集成。 本文对数据集成所涉及的各个方面,尤其是基于复制技术的数据集成及该集 成所要达到的目标进行了有效的研究,对“基于s q l 重现法”的数据复制方法 予以深入分析并实现。主要的研究内容有以下几个方面: ( 1 ) 对目前常用的数据复制技术的实现方式、技术归纳总结,对异构环境下 的“基于s q l 重现法”的复制机制进行分析,并构建实现该复制机制的整个体 北京工业大学工学硕士学位论文 系结构。 ( 2 ) 对体系结构中的变化捕获模块所使用的基于变更轨迹表捕获方法的原理 进行深入研究。 ( 3 ) 总结分析数据复制系统易发生的冲突种类,并结合本复制体系提出相应 的冲突避免和冲突解决方法。 ( 4 ) 通过全面了解现今软件测试技术,提出对本复制体系的测试步骤、测试 方法及用例设计。 1 4 本文的内容组织 全文共分为五章,各章主要内容如下: 第l 章的题目为“绪论”。简要介绍了本文的课题背景、国内外关于数据集 成的发展现状和研究成果、课题来源、本文主要研究内容以及本文的内容组织。 第2 章的题目为基于s q l 重现法的数据复制方案”。简要介绍了当前 主流数据库产品的复制技术,并详细描述了“基于s q l 重现法”的数据复制方 案的设计思想、整个体系结构及实现层的三个主要模块,最后在结尾给出了本复 制方案的特点。 第3 章的题目为“数据的变化捕获”。通过对现今常用的基于快照、基于触 发器、基于日志、基于时间戳、基于a p i 、影子表及基于变更轨迹表几种捕获方 法进行分析比较,并对基于变更轨迹表方法的工作原理和实际工作流程进行了详 细地描述。 第4 章的题目为“数据冲突研究”。针对本复制方案,总结了常见的数据冲 突类型,并提出了复制前如何避免冲突的方法和冲突发生时解决冲突的策略。 第5 章的题目为“软件测试研究”。首先简要介绍了软件测试的基本概念和 基本方法。然后以本文的数据复制方案为实例,具体阐述了对一个软件项目进行 测试的测试步骤、执行内容及用例设计的方法。 本文最后为结论。总结了所有的工作,并对未来的工作进行了展望。 第2 章 “基于s q l 重现法”的数据复制方案 第2 章“基于s q l 重现法”的数据复制方案 面对异构数据源问的数据复制问题,本章采用了“基于s q l 重现法”的数 据复制方案。这种方案采用增量复制技术,运行和传输效率很高,易于管理,而 且可靠,并弥补了解决复制冲突的不足。它适合于除同步复制之外的其它各种复 制形式。 本章从复制的基本概念、方案概述、方案的体系结构以及特点等几个方面对 “基于s 0 l 重现法”的数据复制方案进行了详细地介绍。 2 1 数据复制 数据复制可以把数据分发到其它的数据库,也可以将各个源站点的数据合 并,最终使所有的数据副本保持一致。用户可以就近访问所要的信息,甚至在本 机获得出版数据的拷贝,从而减少对网络环境以及服务器的依赖,使得系统的可 用性大大加强。 2 1 1 数据复制概述 复制是一种实现数据分布的方法,就是指把一个系统中的数据通过网络分布 到另外一个或者多个地理位置不同的系统中,以适应可伸缩组织的需要、减轻主 服务器的工作负荷和提高数据的使用效率【l ”。数据库复制有两种传统的分类方 法【” ,分别是同步复制异步复制和主从式复制对等式复制。 同步复制也称急切( e a g e r ) 复制。同步复制采用同步分发数据库技术,在 任何时间、任何复制节点,复制数据均保持一致。在复制环境中,如果一个节点 的复制数据发生了更新操作,这种变化会立刻反映到其它所有复制节点。两阶段 提交技术( 2 p c ) 和事务队列方式可以用来同步主从节点间的数据。对于同步复 制,在事务提交之前,更新操作已经在所有副本完成。它的优点是可保障副本之 间的数据一致性以及较强的容错性,但它也存在缺点,如死锁、通信量花费大、 节点规模的限制和事务的响应时间较长。 异步复制也称懒惰( 1 a z y ) 复制。异步复制采用异步分发数据库技术,也称 为存储一转发复制。在复制环境中,如果一个节点的复制数据发生了更新操作, 这种变化将在不同的事务中被传播和应用到其它所有复制节点,事务的执行时间 北京工业大学工学硕士学位论文 可以是几秒至几天。所有复制节点的数据在短时间内存在不一致,即松散一致性, 但最终的传播结果将保证所有复制节点之间的数据一致性。对于异步复制,在事 务提交之后,更新操作才被传播到其它的节点。它的优点是通信量花费少且响应 时间快,这样便可以提高系统的处理效率,但它的主要缺点是无法保证不同节点 间副本的数据一致性。 主从式( m a s t 酬s l a v e 或p 血a r y s e c o n d a 巧) 复制又称单向( u n j d i r e c t i o n a l ) 复制或主版本( m 船t e rc o p y ) 复制,参与数据库的角色是固定不变的,复制总是 按同一个方向进行。目标节点上的副本是只读的,如果要修改目标节点副本,则 必须先修改源节点上的主副本,然后再同步到目标节点的副本上。这样可以从根 本上预防复制冲突的发生。在流程和组织上,主从式复制相对简单,但不同副本 的数据模式可能存在差别。 对等式( p e e 卜t 0 p e e r ) 复制又称双向( b i d i r e c t i o i n a l ) 复制、多版本( m u l t i c o p y ) 复制或随处修改( u p d a t ea n ) w h e r e ) 复制,参与的数据库既是源数据库也是目 标数据库,复制可同时在两个方向上进行。在不同节点上的复制副本都是可读写 的,修改其中任何一个节点上的副本都会最终影响全部副本,所以复制过程中的 数据冲突是难以避免的。对等式复制的适用性强,应用范围很广。 此外,数据库复制还有其它的分类方法,主要是根据某些模型或实现方法而 划分的,比如变化捕获方式、连接方式和分发模型等。 2 1 2 各大数据库产品的数据复制现状 目前主流的数据库管理系统如o r a c l e 、m ss q ls e r v e r 、s y b 船e 、d b 2 等都 提供了许多具有数据复制功能的工具,并且针对不同的应用提出了各种数据复制 方法。下面分别对各厂商的数据库复制方案进行分析。 2 1 2 1o r a c i e 复制技术 o r a c l e 从7 3 版本开始支持只读快照复制。从o m c l e 8 i 后,数据复制被分为 基本复制与高级复制。在o r a d e9 i 中,高级复制【1 4 】即可支持基于整个表的复制 也可支持基于部分表的复制两种复制方案。这两种复制方案主要是通过o r a c l e 的两种复制机制来完成的,即多主复制和可更新快照复制,同时还可以将这两种 复制机制结合起来以满足不断变化的业务需求。o r a d e 数据复制的基础是数据库 链路( c r e a t ed a t a b a s e l i n k ) 。当在某一数据库中创建了一条到另一数据库的链 路后,该链路的合法用户就可以对所链接的数据库中的数据库对象进行操作。 o r a c l e 数据复制的另一关键技术是触发器【”】。通过为某数据库对象定义触发器, 即可在特定的情形下运行事先定义的操作或存储过程。除此之外,o r a d e 还提供 了另外两种复制机制:过程级复制和同步复制。 第2 章“基于s o l 重现法”的数据复制方案 2 1 2 2 s 0 ls e r v e r 复制技术 与o r a c l e 一样,s q ls e r v c r 也能在不同节点问复制数据并自动同步这些节 点的数据。用户可以在同服务的不同数据库或不同的远程连接服务器之间复制 数据。s q l s e r v e r 数据复制基于“出版订阅”模式,该模式由六个组件构成: 发布服务器( p u b l i s h c r ) 、分发服务器( d i s 仃i 1 ) u t o r ) 、订阅服务器( s u b s c 曲e r ) 、 发布( d i 嘶b u t i o n ) 、项目( a m d e ) 、订阅( s u b s 函砸o n ) 。在分布式数据库应 用环境中,不同的应用领域对数据复制的要求各异,不可能有一种复制方法能够 适合所有领域中的应用需要。为此,s q l s e e r 提供了三种复制类型来满足不同 环境中的应用需要:快照复制、事务复制、合并复制【1 ”。 2 1 2 3s y b a s e 复制技术 s y b 够e 数据复制技术采用一种基本的“发布预订”模式来实现跨网络的 数据复制。用户“发布”主点数据库中可用的数据,然后其他用户“预定”这些 数据,将它们传递到一个复制数据库中。s y b 弱e 的复制模式【l7 】有基本主复制模 式、分布式主段、c 唧o r a t er 0 1 1 u p 模式、r e d i s 仃i b u t e dc o i p o r a t er o l l u p 模式。 s y b 骶e 通过开放式接口支持异构数据库服务器,可以将任何数据存储系统用作数 据服务器,只要它支持一组必须的基本数据操作和事务处理指令。用户可以使用 s y b 髓e 的复制代理把数据从非s y b 嬲e 的数据库源中取出,用d i r e c t c o n n e c t s 作 为网关可复制到非s y b 船e 的目标数据库中。 2 1 2 4d b 2 复制技术 i b m 的数据库家族包括d b 2 、i m s 、v s a m 、n o t e s 等多个系列的多种产品,它 是支持非关系型数据库复制的不多的几家厂商之一。i b m 的复制功能原先是用 d a t ap r o p a g a t o r 系列实现的,现在已经集成到了d b 2i i 当中。i b m 的异构复 制方式是基于触发器的。通过触发器捕获复制源的变化信息并存入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 的c c d 表方案的优点是应用广泛,并且 由于其用于复制的数据字典非常完善,所以c c d 表方案的数据库模式转换功能优 于其它数据库产品的方案。c c d 表方案也存在一定的缺点:第一,c c d 表占用的 系统资源较多。第二,需要安装各种数据库客户端才可连接其它类型的数据库。 2 2“基于s q l 重现法”的数据复制方案概述 数据复制是指产生和维护一份或多份数据库数据副本的过程。通过比较目前 各数据库产品提供的数据复制方案,本文采用了一种“基于s q l 重现法”的数 据复制方案。它结合了当前的两大变化捕获方法基于触发器法和基于时间戳 北京工业大学工学硕士学位论文 法,提取了这两种方法的优点,解决了异构数据复制的问题,并且可以很好地解 决复制中出现的冲突问题。如图2 1 是本文实现该方案的具体方法。 复 制 对 象 图2 1 “基于s o l 重现法”的数据复制解决方法 f i g l l r e2 一l d a t ar 印l i c 撕m 甜1 0 d b 嬲c do n “s q lr e g e n e r 娟o n ” 在数据复制过程中,“基于s q l 重现法”复制方案的主要思想是当需要在源 数据库和目标数据库间复制数据时,先为源数据库的复制对象( 可以为源表或者 视图) 创建变更轨迹表。当复制对象发生变化,唤醒绑定在复制对象上的触发器 ( 包括添加、更新、删除触发器) ,继而通过存储过程将复制对象的变化信息记 录到变更轨迹表中。复制对象的变化信息包括源表的基本信息( 如源表名、变更 字段) 、变更种类( i 、u 或d ) 、变更时间以及变更复原的s o l 语句等。然后目 标数据库从变更轨迹表中获取记载的s q l 语句,将s q l 语句做适当的分析处理, 并且对源表与目标表进行冲突判断和处理,从而实现将源表中的数据复制到目标 表。 2 3 数据复制的体系结构 分层结构是解决复杂问题的常用手段。其指导思想是每层实现一种相对独立 的功能,以便将难以处理的复杂问题分解。 本复制方案采用分层次的体系结构,主要分为三个层次:连接层、实现层和 应用层,如图2 2 所示。这种分层结构将平台支持、数据复制和具体应用分割开 来,加以独立实现,既在一定程度上很好地解决了各种异构问题,又能使复制功 能服务于更广泛领域的应用需求。这种分层结构有利于以后系统功能的扩展,可 第2 章 “基于s q l 重现法”的数据复制方案 移植性好。 图2 2 数据复制的体系结构 f i g u r e2 - 2a r c h 沁c t u r eo f d a t ar e p l i c a t i o n 连接层主要用于向实现层提供服务,包括数据库的连接、数据交换等支持服 务,以及一些场合下的数据加密解密等特殊服务。应用层主要是利用实现层提供 的复制服务来实现数据透明化,解决实际用户的各种具体的应用任务,如查询、 监控、数据挖掘等。实现层是这三个层次中最主要的一个层次,它的任务是实现 数据的复制功能。各层次之间定义有通讯传输的接口,用于层次间的相关参数和 控制信息的传递。 2 4 系统功能模块构成 在异构数据库系统中,要完成数据复制过程,需要决定各个数据库中的数据 如何分配,选择哪些数据进行复制,数据更新方式的选择以及如何发现冲突并解 决冲突等步骤。数据复制的一般过程可以包括数据变化捕获、数据分发、冲突检 测解决等一系列步骤。 本复制方案要实现的就是复制数据的功能,处于整个数据复制体系结构的实 现层。实现层也是整个复制体系结构的重点,它将数据复制过程分为几大模块, 北京工业大学工学硕士学位论文 主要包括数据变化捕获模块、数据分发模块和数据冲突处理模块。三个模块既独 立又互相联系,是解决数据复制的关键。下面分别对数据变化捕获模块、数据分 发模块和数据冲突处理模块进行描述。 变化捕获模块采用基于触发器的数据捕捉机制,主要功能是将源表的变化情 况通过触发器来捕获到,并且经过存储过程将变化的详细信息记录到变更轨迹表 中,其中最重要的是将更改动作还原为易于实现复制过程的s q l 语句。数据变 化捕获的工作原理如图2 3 所示。变化捕获模块不仅要获得源表的净变化,而且 还包括复制对象的初始复制。所谓初始复制是指在复制的开始阶段,如果用户没 有在目标数据库端为源表建立目标表,那么便要对源表进行源表结构的全复制和 源表数据的全复制。当源表的初始复制完成后,便可以进一步对源表的变化进行 观察来获取有序的净变化。 源表s i p k j p k i p 巧莎多 变更轨迹表c i p k i 变更时闻1 p k j 变更时问j 图2 - 3 数据变化捕获工作原理 f i g u r e2 3 t h ep r i n c i p l eo f d a 诅i n c r e m e n 诅lc a p t u r e 数据分发模块是变化捕获模块的承接,采用“推拉结合”模型。变化捕获模 块将源表的变化内容重现为完整的、可执行的s q l 语句,然后数据分发模块便 从变更轨迹表中提取s q l 语句,对语句进行分析、处理,将提取的s q l 语句转 化为可最终在目标端实现的s q l 语句。最后,确定要发送的目标节点、目标数 据库和目标表,从而完成数据的分发任务。数据分发工作原理如图2 - 4 所示。 源表s p k l p k i + p k j 变更轨迹农c j 目标表t i p k i 变更时闻1 p k j 变更时问j p k l p k i , p k j 图2 - 4 数据分发工作原理 f i g u r c2 _ 4 t h ep r i n c i p l eo f d a 衄d i 州b u t i o n 第2 章 “基于s q l 重现法”的数据复制方案 数据冲突处理模块是保持源端数据与目标端数据一致性的关键。它作用于整 个复制过程中,解决各种类型的数据冲突问题,如结构冲突问题、语义冲突问题 等。本复制方案的冲突处理模块主要解决数据复制中常见的添加、更新、删除冲 突,以及语义冲突中的命名、数据类型等冲突问题。 2 5 特点 “基于s q l 重现法”的数据复制方案借鉴了目前各异构数据库产品的复制 模式,吸取了它们的优点。整个数据复制的体系结构具有异构、可靠、可移植和 可扩展四大特点。下面分别对这几大特点做简要说明。 异构 异构意味着复制能够在所有数据库,至少是所有与砌) b ( 关系数据库, r e l a t i o n a ld 破山a s e ) 兼容的数据库之间进行。“基于s q l 重现法”的数据复制方 案采用j a 、礁技术开发,使用j d b c 接口连接各种数据库。目前的各大数据库产 品都配有支持j d b c 标准的驱动,只要通过j d b c 对数据库进行连接,就可以完 成访问、查询、执行等各种操作。所以,“基于s q l 重现法”的数据复制方案是 具有异构特点的。对于任何一个数据库,总能使用此方案技术为它找到合适的复 制实现。 可靠 本复制方案采用增量复制,自动检测源表的净变化,很大程度上降低了网络 的负担。当源表发生变化,唤醒对应动作的触发器,将变化内容记录在变更轨迹 表中。对于将变化应用于目标表与删除变更轨迹表中对应记录的动作包裹在一个 事务里,这样当目标数据库或者网络出现故障时,变化应用实施于目标库的动作 便不能成功,整个事务回滚,而此变化内容不会在变更轨迹表中删除。在以后的 时间段中,用户可以通过手动重新启动复制过程,提交变更轨迹表中的内容。因 此,通过变更轨迹表实施的变化应用不会造成源数据库与目标数据库中数据的不 一致现象发生,具有较高的可靠性。 可移植 用户希望数据库复制可以跨越多种平台,但很多复制方案由于依赖特殊的支 持机制,如多触发器机制、系统日志机制等,或者为参与数据库附加了某些限制, 如必须符合某种体系结构或标准,所以当从一种平台移植到另一种平台时,系统 就不能照常运行,甚至需要修改已有的应用程序和数据库模式来适应新的运行环 境。 在数据复制方案的体系结构中,各分层之间通过预先定义的接口进行通讯服 北京工业大学工学硕士学位论文 务。在实现层中定义了一个包装器,包装器中囊括了所有可能的数据库类型,从 而用来实现各种异构数据库的数据复制的前期实施工作。当硬件、操作系统或网 络发生了改变,实现层不会受到影响,只要更改连接层的相应部分。如果数据库 管理系统发生了改变,那么连接层不用变更,实现层依照实际情况可能会做适当 修改,如包装器中没有实际应用的数据库类型,则要进行补充修改。可见,这种 复制方案的框架可以把跨越平台的修改降低到最小限度,对实现层的应用程序影 响小,具有很好的可移植性。 可扩展 本复制方案的可扩展性体现在两个方面。第一是应用层。它可以把复制服务 与特定应用领域的其它服务结合,用来解决千变万化的应用任务。第二是各层次 间的通讯方式。由于各层次的功能和结构都是可以定制、组装的,而不是固定的、 静态的,所以在面对新业务需求或出现新问题时,便能够进行动态的增加或替换, 来提供足够的支持。 2 6 本章小结 在i n t e n l c t 环境下实现数据复制时可能存在异构数据源等问题,针对这一问 题,本章采用了一种“基于s q l 重现法”的数据复制方案,并对这种复制方案 予以分析和实现。该方案利用s o l 作为关系型数据库管理系统的标准语言的特 点和优势,以s q l 复现作为异构数据源间数据复制的媒介,先将源端数据库中 数据的变化转换为s q l 语句,再采用一定的实现算法将s q l 修改为适合目标数 据库的格式,然后将数据传送到目标数据库端,从而解决了数据源异构的问题。 本章首先介绍了关于复制技术的一些基本概念,如复制的定义、复制的分类, 并对现今各大数据库厂商的复制产品做了详细的介绍,然后全面描述了这种数据 复制的体系结构,针对方案体系结构中实现层的三个模块组成( 数据变化捕获模 块、数据分发模块和冲突处理模块) 进行了介绍,分析了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目管理软件解决方案与服务合同
- 2025中国农业科学院西部农业研究中心(科技援疆指挥部)招聘合同制工作人员考试模拟试题及答案解析
- 看电影海底总动员的观后感作文(11篇)
- 合同审查及风险评估表单
- 农业种植产业融合合作发展协议
- 从课本人物身上学到的东西读后感6篇
- 法务合同审查及风险控制实务解析
- 项目合同管理实务与法律解读
- 农业生产经营合同书
- 一年级数学(上)计算题专项练习汇编
- 新人教版五年级上册小学数学教学计划+教学进度表
- 名著章节课件-《水浒传》第5回《小霸王醉入销金帐 花和尚大闹桃花村》情节梳理+人物形象+巩固试题
- 海口寰岛小升初数学试卷
- 村级妇联半年工作总结
- 托育园一日常规流程规范
- 收费员考试题库及答案
- 城市更新中装饰工程重点及难点措施
- 惠普尔养障体肺炎诊疗要点解析
- 棒针编织教学课件
- 护士关爱活动方案
- 职业健康:放射卫生知识培训计划
评论
0/150
提交评论