(检测技术与自动化装置专业论文)面向信息集成的异构数据库复制.pdf_第1页
(检测技术与自动化装置专业论文)面向信息集成的异构数据库复制.pdf_第2页
(检测技术与自动化装置专业论文)面向信息集成的异构数据库复制.pdf_第3页
(检测技术与自动化装置专业论文)面向信息集成的异构数据库复制.pdf_第4页
(检测技术与自动化装置专业论文)面向信息集成的异构数据库复制.pdf_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着计算机技术,特别是h t 眦l e t 技术的迅猛发展,各行各业都逐步实现了 数据、信息的计算机化管理,但这些信息和数据是独立的、相互隔离的。集成现 有系统中的数据是一项艰巨的任务。这些系统的建立往往并没有考虑和其他数据 源的交互,数据的存储方式、访问方式都有很大的差异,因而需要特别的设施来 考虑它们的共享问题,访问网络上不同位置的异构数据源。总体来看,解决数据 集成问题的系统可以分为实体化集成系统与虚拟集成系统。异构数据集成系统的 研究是当前信息集成研究的一个热点。 异构数据库复制是解决信息集成的一种重要方法。本文把异构数据库复制看 作是数据库复制和异构数据库两个领域的结合,分别对两个方面进行了分析。本 文把异构数据库复制过程分为:复制对象定义、变化捕获、数据分发、数据同步、 冲突检测与处理这几个组成环节。详细说明了各个环节的功能和实现方法,并详 细介绍了目前各数据库厂商提供的主流复制方案,指出它们的技术特点、应用范 围和不足。 本文在实体化信息集成领域,利用异构数据库复制技术集成现有系统中的数 据。结合北京工业大学综合信息平台项目,综合现有的异构数据库复制方法,对 “基于s o l 重现法”异构数据库复制技术进行了改进和优化。分析了该复制技 术的基本原理、整体设计和关键技术,重点介绍了分发环节设计的考虑因素和详 细设计。针对课题实际应用环境,对该复制系统进行了实现,介绍了系统的结构、 基本类设计和复制环节的设计,同时考虑了系统的安全管理、意外处理和系统日 志等方面的设计。根据上述工作,开发了原型系统c tr e p l i c a t o r ,对该原型系 统进行了测试,验证了其可用性和性能,并指出其特点。 最后,总结了本文的研究内容,针对系统存在的不足和问题,提出对未来的 展望和今后研究工作的重点。 关键词异构数据库;复制:信息集成 a b s t r a c t a b s t r a c t w i 血廿l eh i g h s p e e dd e v d o p m e mo fc o m p u t e rt e c h n 0 1 0 9 y ,e s p e c i a l l yi n t 啪鸭 c o m p u t e rm a n a g e i i l e n t sf 曲d a t a 锄di n f o r r 】a t i o n 印p l yt om a n yf i e l d s b u tt h e s ed a t a a n di n f o 彻a t i o n8 r es 印a r a t e d 锄di s o l a t e d i n t e 伊a 血gt l l e s e s y s t e m si s ah a r d 锄p l o y m e i l t w h e nb u i l 曲1 9t l l e s es y s t c r n s ,i tw a sf 撕t l l u n k 如o u to fe x c h 孤g ew i t l l o m e rs y s t e 1 s ,b e c a u s ed a t as t o r a g e 姐da c c e s sm e t h o dh v e r y1 a r g ed i f f b r e n c e s w e s h o u l dc a l c u l a t et ou s ee s p e c i a l l ys y s t 锄st od e a lw i t l ld a t as h a r e i nd i f f c 盹:n tp o s i t i o n o f h l t e m e t ,h e t e r o g e n e o u sd a 协s o u r c es h o u l db ea c c e s s e db yd a t ai n t e r g 训o ns y s t e m s i i l 蹦l e m l ,也e r ea r et 、v om e m o d so fi n f o m l a t i o ni m e 刚i o n :m a t c r i a li n t e g r a t i n g s y s t e m sa i l dv i r m a li n t 耀即t i n gs y s t e m s h e t e m g e n e o u sd a t ai n t e g m t i o nh a sb e c o m e 也eh o t s p o t 锄o n gi i l t c 蓼a t i o nr c s e a r c h h e t e r o g c n e o u sd a t a b 鹤er 印l i c a t i o ni sa ni i n p o r t a i l tm e t l l o dt or e s 0 1 v i n gi i l f o m l a t i o n i n t e g r a t i o n t l l i sp a p e r1 0 0 k so nh e t e r o g c i l c o l l sd a 协b 硒er e p l i c a t i o n 踮i n t e f a t i n go f d a t a b a s er e p l i 训o na i l dh e t e r o g e n e o u sd a t d b 觞e ,锄da n a l y z e sb o m 船p e c t s t 1 1 i s p a p e rs 印a r a t e sh 莳e r o g e n e o u sd 砌b a s er 印1 i c a t i o ni n t os e v e r a lp a r t s :r 印l i c a t i o n o b j e c td e 矗i l i t i o 玛d a t ac 印乜l r e ,d a t ad i s 砸b u t i o n ,d a t as y i l 幽i l i z a t i o na i l dc o n n i c t d e t e c ta n ds i o v e ,a i l di 1 1 u m i n a t e sn l ef i l i l c t i o na l l di 刀】p l e i i l e n to fe v 豇yp a r t a n di t i n 仃o d l l c e sm 血s 仃e a mr e p l i 酬o nm e 山o d so fd a t a b a s e 饥t e r p r i s e sp r o 啊d e d ,p o i l l t s o u tm c i rt e c h n o l o g yp o i 媳a p p l i c a t i o nr a i l g ea i l dd i s a d v 锄t a g 鼯 i l lm a t 舐a 1i n t e 伊a t i o n 丘d d ,1 1 1 i sp 印c ru s e sh e t e r o g e 0 璐d a t a b 鹊er e p l i c a t i o n t e d m o l o g yt oi m e 舯t i l l g 血ed 吐af r o me x i s d n gs y s t e m s b e i j i n gu i l i v e r s i t yo f t e c h i l 0 1 0 9 yi n t e g r a t i o n i i l f o r i n a t i o n p l a 饪b m i st l l e 印p l i c 瓶o n c o m e x t s y n t h e s i z 证g e x i s t e dh e t e r o g c o u sd a t a b 鹤er e p i i c a t i o nm e t l l o d s , t h i s p a p e r o p 石m i z e s a n dp e r f 融s 也e r 印l i c a t i o n m e i h o dc a l l e dh e t e r o g e o u sd a t a b a s e r e p l i c a t i o nm e m o db 嬲c do n “s q lr e g e n 盯a t i o n ”i t 趾a l y z e s 血ek e y s t o n e ,w h o l e d e s i g na 1 1 dk e yt e c h i l o l o g y a s 锄e m p h 懿e s ,i ta l s op a r t i c u l a ri n t r o d u c 髓e f f b c tf a c t o r s a i l dd e s i 弘o fd i s 证b l n i o np a r t i n t e 咖gp r a c t i c a l 印p l i c 撕o n 钮i r o n m e n ti t p r c s c n t se 行b c t i v ei m p l e i i l e n tm e 1 0 do f t h i sr 印l i c a t i o ns 如t e m ,a n di 1 1 仃o m l c e ss y s t e i n s t n j 咖琏b i cc l 勰s 髓dr 印l i c a t i o np a nd 懿i 弘t 1 1 i sp a p c ra l s ot h i i l k so v e rt 1 1 e d e s i 口o fs a f em a n a g 锄e i l t ,蹦1 u r cd i s p o s a la i l ds y s t 锄l o g f i l l a l l y ,a c c o r d i n gt o t i i 北京工业大学工学硕士学位论文 a b o v ee i i l p l o y r i l 肌t ,m i sp a p c rd c v e l o p sap r o t o t y p es y s t 啪c a l l c d “c tr 印i i c a l o r , t h e r ea r eas 耐e so fc x p 商m t st ov a l i d a t ei t su s a b i l i t ) ,a n dp 耐b m l a i l c e ,a i l dp o i n t o u ti t sc h a r a c t e r i s t i c s a t1 嬲t ,t l l i sp a p e rs w m 撕z e sp m d u c t i o n so ft l l i sp a p a d v a i l c e se x p e c t a t i o nt om e 向t i l r ca n dk e y s t o n eo f f i l t l l r er e s e a r c he n l p l o y m e i l t k e yw o r d sr e p l i c a t i o n ;h e t c r o g e n e o u sd a t a b a s e ;m f o r m a t i o ni n t e g r a t i o n i v 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:捣亚掏日期:丝:1 8 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:盛坠i 白导师签名:寥 日期:型! ! 、! 基 第1 章绪论 1 1 课题研究背景 第1 章绪论 近些年来,信息技术蓬勃发展,企业迫切希望集成各个信息系统中的数据, 消除。信息孤岛”,保证信息系统之间信息交换的畅通,真正实现数据共享,这 对企业未来的发展有重要的现实意义。 然而集成现行系统中的数据是一项艰巨的任务。这些系统的建立往往并没有 考虑和其他数据源的交互,数据的存储方式、访问方式都有很大的差异,因而需 要特别的设施来考虑它们的共享问题确 决数据集成问题的系统可以分为虚拟集 成系统( 例如多数据库系统和中间件系统) 与实体化集成系统( 例如数据仓库1 。 虚拟方案中,数据保存在数据源,发给数据集成系统运行时分解成对各数据 源的查询。该方案中,数据无需复制,保证每次查询都是新数据。虚拟方案中系 统提供给用户的只是一个虚拟的数据库,数据的集成在查询执行过程中实现。虚 拟集成系统在处理每个用户查询时,都需要访问数据源,数据传输量很大,查询 效率因而会受到一定影响。 采用实体化集成方法,可以从一定程度上避免上述问题,更好的实现数据共 享,也可以保证系统的局部自治性和全局控制。实体化集成系统预先将集成的数 据保存在一个中央数据库中,查询是在中央数据库上实现的,不再需要访问底层 数据源;同时,如果数据源b 需要共享数据源a 中的某些数据,那么只需将数 据源b 在中央数据库中的相应副本拷贝到数据源a 中。这就要求数据发生变化 时,对中央数据库也加以更新。对于已经被集成到中央数据库的数据来讲,数据 处理效率更高”。 为此,引入异构数据库复制技术,通过复制技术实现数据源和中央数据库的 数据同步,这里要解决的是两个问题:异构数据库和数据复制,因为需要集成的 现存系统大部分都是异构的,所以数据复制大多是建立在异构的基础上的。 1 2 本课题的研究意义 数据库复制是指将同一数据对象的多个副本放置在不同数据库节点并维护 数据库复制是指将同一数据对象的多个副本放置在不同数据库节点并维护 北京工业大学工学硕士学位论文 其一致性的方法。数据库复制的主要应用范围大致包括以下几个方面。 提高性能、容错性和负载均衡。对于经常访问的数据,可以把它们复制到本 地节点或者容易访问的节点,这样能大大减少网络传输开销和降低响应时间。把 重要数据复制到多个不同的节点,当部分节点或网络通讯出现故障时,可以通过 访问其它可用的副本来代替,从而确保应用程序继续正常工作。将负载较重的服 务器中的数据连同任务复制到另一个负载较轻的服务器上,可以保证负载均衡。 数据仓库。可以利用数据库复制从不同数据库及其它数据源中获取所需的分 析型数据,并对这些数据进行清理、转换、加载、刷新等工作,为以后进一步的 o u 垤和数据挖掘等工作做准备。 电子商务。电子商务正在改变着企业的传统运营模式,他们通过i n t e l l l e t 进 行商业联系时,彼此间需要交换和共享大量的格式化信息,数据库复制非常适合 完成这一热门领域的工作。 嵌入式系统等。商业市场上各种各样的智能化产品对嵌入式系统有着巨大的 推动作用,嵌入式系统有着独立和紧凑的特点,经常需要与外界交换大量结构化 数据,而数据库复制无疑在此方面具有不可比拟的优势。 不断涌现的新技术和新应用互相促进发展,数据库复制会在更多领域发挥重 要作用,其重要性也被越来越多的人和企业所认识。 随着网络技术和数据库技术的不断发展,信息急剧扩增,对信息的共享程度 要求越来越高,这就需要将分布在各信息系统中的数据集中起来,但由于各信息 系统是在不同时期采用不同的解决方案而开发的,彼此之间相互独立,有很大的 异构性。因此,如何能够灵活、高效地利用这些异构的信息系统中的数据就成了 人们关心的问题。 异构数据库复制是数据库复制和异构数据库这两者的结合。目前在这个领域 已经有了一些研究,在实际应用中也取得了一定的效果。但由于异构数据库复制 的高度复杂性,现有的复制方案对各种类型d b m s 的兼容性较差,因此,总体 来说,对异构数据库复制的研究还有很多工作要做。 本课题以北京工业大学综合信息平台项目为应用背景。由于信息化建设的需 要,学校各个部门之间的信息交流越来越频繁,对信息共享程度的要求越来越高。 传统的采用电子邮件、磁盘介质的信息交流方式已经不再适用,而迫切需要一种 准确、快捷的信息交流方式,确保信息快速、准确、可靠、安全地传递。因此, 第1 章绪论 建立一个全校范围的综合信息平台就成了当务之急,将现有的数据资源进行集 成,采用实体化集成方式,将现有的教务、人事、物资、科研等信息系统整合起 来,不但有利于信息交流,而且起到备份关键数据的作用。 作者参加北京工业大学综合信息平台建设时就体会到集成现有系统的复杂 性。综合信息平台用于集成北京工业大学现有的所有系统,这些系统分布在各个 部门,采用的d b m s 不同,系统建设的目标是:采用异构数据库复制技术集成 现有的信息系统,保证各系统之间的数据共享,并且各系统仍然具有自治性。 因此,无论从理论研究还是实际应用上,对异构数据库复制的研究都有非常 重要的意义。 1 3 相关领域研究进展 对异构数据库复制的研究涉及多个领域,本节主要讨论其中两个重要领域: 数据库复制和异构数据库,最后介绍异构数据库复制的现状。 数据库复制起源于文件系统复制,在相当长的时期内,很多情况下人们对它 们不作区分而统称为“数据复制”。至今,数据库复制和文件系统复制之间仍有 密切的关系,两者在基本概念、原理和初级方法上仍有很多是相同或相近的【2 8 1 。 但随着数据库技术的发展,文件系统复制的具体方法不再适用于解决数据库复 制。这主要有两方面的原因:复制对象和操作方式,辅助机制和限制条件 2 8 】。文 件系统复制以文件和基于文件的卷为对象,对它们的操作也比较单一,而数据库 系统的表示单位( 如关系) ,内部和相互之间都蕴含着明显或潜在的逻辑联系,需 要根据实际情况进行不同形式的分割和组合。数据库系统有许多特性,如事务概 念保证了操作的a c i d 特性,能给复制带来很大的便利。另外,复制也能利用日 志,触发器等机制方便地实现。但是有些特性则给数据复制附加了一些限制,如 主键和约束等,这些都是文件系统所没有的。因此,数据库复制和文件系统复制 是两个联系紧密但又相对独立的领域。 分布式数据库的出现使得数据库复制最终从文件系统复制中独立出来,其重 要标志是1 9 8 7 年d a t e 提出韵分布式数据库十二条原则【g 】中的第六条:“数据复 制独立性”。从此数据库复制进入一个崭新的发展阶段,可以说,关于数据库复 制的大部分成果都出自分布式数据库领域。在初期,分布式数据库很重视数据的 北京工业大学工学硕士学位论文 紧密一致性,要求对所有副本的修改都在一个全局事务中完成( 即同步复制) 。在 这个阶段,产生了许多成果,如同步复制常用的两阶段提交协议( 2 p c ) 及其变种 等,由于同步复制对环境要求苛刻,实现起来很困难,导致在实际中不能很好的 应用。针对同步复制的不足,提出了只要求数据松散一致性的异步复制,异步复 制实现起来容易,系统的可用性更高,因此在实践中得到广泛使用,其发展极大 地丰富了数据库复制的范畴。在这个阶段,还取得了各种复制算法、控制和传播 协议,以及冲突检测和处理等方面的成果。 异构数据库也是数据库领域研究的重点。通常的观点【习认为,从数据管理的 角度出发有两种异构形式:平台异构和语义异构。平台异构包括主机、设备、操 作系统、d b m s 、网络、支持a p i 、并发控制等方面。语义异构包括数据逻辑表 示和数据库互操作两方面,其中数据逻辑表示涉及到所使用的数据模型、数据模 式以及数据类型。 平台异构一般比较容易解决。利用一些通用的协议和标准,比如t c p i p 、 s q l 、o d b c 、j d b c 、o l e 、c o r b a 等,可以解决其中大部分问题。此外使用 包装器( w r a p p 盯) 口i 之类的部件来屏蔽各种平台异构也是一种策略,近年来中间件 技术【4 】逐渐成为解决各种异构的利器,这些方法都是通过提供统一接口来解决异 构问题的。 对于逻辑表示上的异构,一般有两种解决途径,一种是在全局模式下对不同 的数据模式进行规范,来消除数据表示上的异构;另一种是在允许保留数据的含 义独立性 2 】的前提下,通过某种手段实现不同数据表示的转换。对于互操作问题, 针对不同类型的互操作,提出三种体系结构:仲裁体系,联邦体系1 5 】和工作流体 系 6 + 7 1 。仲裁体系用于数据集成类型;联邦体系用于共享信息类型;工作流体系 用来处理需要多个数据库互相协调的类型。 在异构数据库的许多分支,复制都是经常使用的重要技术之一,对它们的研 究和应用起着相当关键的作用。在另一方面,异构数据库复制本身的发展也离不 开异构数据库技术的进步。 异构数据库复制作为数据库复制和异构数据库这两个领域的结合点,在许多 文献中都有所涉及,例如文献【2 ,9 ,l o ,1 1 ,1 2 ,1 3 ,1 4 】等。但由于对异构数 据库复制的研究还刚刚开始,对其研究的广度和深度还远远不够。目前研究者们 正在进行一系歹q 探索性的研究工作。 第l 章绪论 相对于学术界,由于各种商业应用的需要,产业界对异构数据库复制的兴趣 要浓厚得多,也进入得较早。他们不但取得了不少技术成果,而且其中一些已被 广泛地实际应用。这些技术成果是本文研究资料的一个重要来源。o r a c l e 、m m 、 s y b a s e 等几家大型数据库厂商在其主流数据库产品同构复制的基础上,迸步地 提出了各自的异构数据库复制方案。其中o r a c i e 利用触发器和存储过程”, s y b a s e 利用u m ( 日志传输器) 和r e p a g e m ( 复制代理) 17 1 ,i b m 使用c c d 表和 m q 吣,微软提出出版者顾订者方案 2 0 ,2 ”。各种开放源代码的数据库也纷纷提 出复制方案,如m ”q l 提出跟踪二进制日志的方案2 2 2 3 】,p o s t 乒e s q l 提出s l o n y _ i 【2 4 方案。 总体来讲,各大厂商的复制方案要明显优于开源项目的方案,后者还没有形 成完整的技术方案。各大厂商的这些方案在不同应用领域各有所长,但其缺点也 同时存在。例如,它们采用与d b m s 核心紧密相关的实现技术,不一定适用于 其它d b m s ,因此彼此之间的兼容性较差;各方案普遍存在着符合某种体系结构 或标准的前提,因此导致对系统资源的要求较高而应用范围却受到限制。 国内对异构数据库复制领域也进行了一些研究,但起步较晚,与国际上相比 还存在比较大的差距。比如在文献【2 5 ,2 6 】中提到中国人民大学的移动数据库系 统金仓( k i n g b a s e ) ,对数据库复制的理论和实现进行了研究,提出基于版本号的 复制冲突检测及解决策略,简单的复制权限控制和t l r s p ( t r a n s a c 廿o n l w d r e s u l t s e tp r o p a g a t i o n 事务级结果集传递,以事务为处理单位的冲突处理策略) 移动复制算法等。文献【2 7 】提到东南大学的g a l a x y 系统,对数据库系统、w e b 文件、文本等各种异构数据源的集成转换以及查询优化等方面作了较全面的分析 研究。文献 2 8 】中,中国科学院软件研究所提出开放式异构数据库复制框架,提 出2 3 4 - 5 的异构数据库复制框架,针对多重复制定义现象,提出最优传播算法, 并提出基于m l s 的完全型复制授权管理机制。 1 4 课题来源及主要内容 本课题来源于北京市教育委员会项目“异构数据库信息集成复制技术的研究 与应用”( 0 0 5 0 3 ) 。 本文对现有异构数据库复制技术做了归纳和总结。结合课题的应用背景,对 北京工业大学工学硕士学位论文 “基于s q l 重现法”异构数据库复制技术进行了改进和实现,讨论其设计思想、 关键技术和实现方法,最后实现了原型系统c tr 印1 i c a t o r ,并验证了其可行性。 论文的组织结构如下: 第一章“绪论”,阐明了本课题的研究背景,理论意义与实际意义,概述了 相关领域的发展现状和研究成果,并给出课题来源和文章的主要内容。 第二章“异构数据库复制技术”,介绍了本课题的相关概念,现有数据库复 制技术的几种分类和数据库复制的几个基本组成环节,最后详细介绍了各大厂商 的主流复制方案,并比较了它们的特点。 第三章“基于s q l 重现法复制技术”,对其进行改进,介绍该复制方案 的工作原理、整体设计和关键技术。 第四章“基于s q l 重现法分发设计”,介绍了各种因素对分发环节的影 响,重点讨论了该环节的详细设计。 第五章“基于s q l 重现法复制系统实现”,结合应用背景,介绍了系统 各个功能模块的设计,实现了原型系统c tr 印l i c a t o r 。测试了该原型系统的性能, 并总结了该系统的特点。 最后“结论与展望”,对本课题的研究工作进行了总结,指出不足,并给出 今后工作的方向和展望。 第2 章异构数据库复制技术 2 1 基本概念 第2 章异构数据库复制技术 异构数据库复制涉及多个领域的研究,作为本文研究工作的基础,首先介绍 涉及的相关概念。 2 1 1 信息集成 信息集成是指将业务应用系统中的信息数据进行有机的整合集成而实现对 信息数据共享的过程。也就是把分散在不同信息系统、不同数据存储平台中的各 种应用数据进行筛选、抽取、清理和必要的转换后,把结果数据集中起来,进行 头享操作并建立相应的内在数据关联,以便在这种综合数据基础上实施各种信息 化建设的过程 2 9 1 。 2 1 2 数据复制 数据复制是指将同一数据对象的多个副本放置在不同数据库节点并维护其 一致性的方法h 7 1 。在这个过程中,将某节点的数据根据需要拷贝到其他的物理节 点,来满足应用的需要。 2 1 3 异构数据库 现实中,由于采用不同的操作系统、d b m s 、数据模型等原因,数据库往往 表现出很大的异构性。通常认为,有两种异构形式:平台异构和语义异构。 平台异构包括主机、设备、操作系统、d b m s 等方面的异构,这方面的异构 一般比较容易解决,利用一些通用的协议和标准就可以解决大部分问题。语义异 构主要是指数据模型、模式、语义的异构性,在不同的数据库中,同一术语可能 表述不同的概念,同一概念也可能用不同的术语表示,或是潜在的度量单位不同, 例如,从表中得知员工的薪水是2 0 0 0 ,但薪水是按月计算,还是按周计算,会 影响薪水信息的含义【l 】。 北京工业大学工学硕士学位论文 2 1 4 事务 事务是构成单一逻辑工作单元的操作集合【3 0 】,整个事务要么一个也不执行, 要么全部执行。事务保证了操作的a c d 特性,即原子性、一致性、隔离性和持 久性p “。原子性保证事务的所有操作在数据库中要么全部正确反映出来,要么不 反映;一致性保证事务隔离执行时保持数据库的一致性;隔离性保证事务的并发 执行不影响串行性;持久性保证一个事务成功完成后,对数据库的改变必须是永 久的。 2 1 5 复制对象 被复制的数据称为复制对象f 2 8 1 。在关系数据库中,实际的复制对象可能并不 是一个关系,丽可能是关系的分割或组合,可以归纳出以下几种复制对象。 ( 1 ) 一个完整的关系,即对整个关系的复制; ( 2 ) 关系的水平分区,即只有部分元组( 行) 被复制; ( 3 ) 关系的垂直分区,即只有部分属性( 列) 被复制2 8 】; ( 4 ) 关系聚集函数,对如s u m ,c o u l l t 等的复制: ( 5 ) 视图、存储过程、索引等的复制。 2 2 复制分类 本文从复制的实时性、站点的自治性、变化捕获方式、数据更新方式和数据 同步方式这几个方面,对数据库复制分类。 2 2 1 从复制的实时性 从数据复制的实时性看,即更新传播的时间,可以分为同步复制和异步复制。 同步复制能够保证各节点数据的严格一致性,复制数据在任何时间、任何节 点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这 种变化会立刻反映到其他所有的复制节点。如果某个节点由于某种原因崩溃了, 则正在进行的事务操作失败,同步复制一般采用2 p c ( 两阶段提交协议) 实现。2 p c 用于在分布式数据库系统中自动控制和监视数据的提交或回滚动作,保证数据的 第2 章异构数据库复制技术 完整性和正确性,它对任一复制节点上的数据更新和传播是作为一个事务来进行 的,整个事务的执行被划分为两个阶段:第一阶段为准备阶段,各从节点做好对 事务处理的一切准备工作并作回答:第二阶段为提交阶段,各从节点上的事务全 部完成。这个事务才会在各个复制节点上被保留,否则整个事务回滚,所有节点 上所做的更新被取消。同步复制保证了复制环境中没有数据冲突,但耗费更多的 硬件和网络资源。同步复制的缺点包括死锁、通信量的增加、限制了站点规模及 事务响应时间延长等,适用于对于实时性要求较高的商业应用中。 异步复制是所有复制节点的数据在一定时间内是不同步的。如果复制环境中 的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应 用到其他所有复制节点。这些不同的事务间可以间隔几秒,几分种,几小时,也 可以是几天之后。复制节点之间的数据暂时是不同步的,但传播最终将保证所有 复制节点间的数据一致。当目标系统崩溃时,该复制方法仍能够适应,只是复制 工作将延迟到系统恢复后进行。如果事务在一个复胄4 节点执行不成功,只有在该 节点的事务被回滚,不影响其他复制节点。异步复制对硬件和网络环境的要求不 高,有良好的可用性,降低了通信量,缩短了响应时间。但异步复制不能保证在 任一时刻所有节点数据的一致性,因此会产生数据冲突。 同步复制侧重于一致性,异步复制侧重于实用性,尽管在一定范围内研究界 对侧重一致性还是实用性还存在一些争论,但在实际应用中绝大多数都采用的是 异步复制方式。表2 1 是它们之间的比较。 表2 ,1 同步复制与异步复制比较【2 8 】 t 曲l e2 1s y i l c i i 姗o u s 。印l i c “o n 明dh e t c i d g e i l e a 璐r 印l i c 撕c o m p a r i s o n 同步复制异步复制 一个全局事务多个事务 紧密一致性松散一致性 失败或死锁概率大失败或死锁概率小 实用性差实用性好 2 2 2 从站点的自治性 制。 从数据复制中站点自治性看,数据库复制可以分为主从式复制和对等式复 北京工业大学工学硕士学位论文 主从式复制也称为单向复制,复制总是按同一个方向进行。此时目标节点上 的副本是只读的,即只能对源节点上的数据进行修改,然后再将变化传播到目标 节点,这样能从根本上预防复制冲突的发生,主从式复制在流程和组织上都相对 简单,可以用在数据仓库中。 对等式复制也称为双向复制,参与的数据库既是源数据库又是目标数据库, 复制可以同时在两个方向进行。此时复制对象的所有副本都是可读写的,修改其 中任何一个都会最终影响全部节点的副本,冲突不可避免。对等复制适用性更广 泛,适用在移动环境、动态环境中。表2 2 是它们之间的比较。 表2 2 主从复制与对等复制比较q t a b l c2 1p t i m a r y s e c o n d a r y 咒p l i c 撕o na r l dp e e r o 巾e e r 糟p l i c a t i o nc o m p a r i s o n 主从复制对等复制 只有一个副本可写每个副本都可读写 单向双向 不会产生冲突会产生冲突 副本的结构可以不同 副本的结构一致 2 2 3 从变化捕获方式 从变化捕获的方式,数据库复制可以分为基于触发器法、基于日志法、基于 a p i 法、影子表法和基于时间戳法几种。 基于触发器法是在复制源为复制对象创建相应的触发器,当对复制对象进行 修改、插入和删除操作时,触发器被启动,将变化传播到目标数据库。基于触发 器法效率很高,能实时捕捉源的变化。但是占用的系统资源较多,对复杂的复制 任务需要非常复杂的配置和实施,管理很不方便,并且只能在有多触发器机制的 数据库系统中使用。o r a d e 、d b 2 都提供了基于触发器的捕获方法。 数据库曰志作为维护数据完整性和数据库恢复的重要工具,其中已经包含了 全部成功提交的数据库操作记录信息。基于日志法是通过分析数据库日志的这些 信息来获得复制对象的变化序列。大多数数据库都有日志,利用它不仅方便,也 不会占用太多额外的系统资源。利用日志,可以提高效率,保证数据的完整性, 还能在对等式复制时提供详细的控制信息。但是,如果数据库厂商不公开其日志 的格式,除非厂家提供相应的日志分析工具或接口,否则要开发一个基于日志的 第2 章异构数据库复制技术 变化捕获程序非常困难,而且不同数据库系统在日志的具体实现细节上存在很大 的差异。由于与d b m s 结合较好,在实际应用中,基于日志法是使用最普遍的 变化捕获方法,s y b 鹤e 、d b 2 、s q ls e r v e r 等主要数据库厂商都采用了这种捕获 方法。 基于a p i 法是针对没有触发器和日志机制的小型数据库和非关系型数据库, 在应用程序和数据库之间引入一类中间件,提供一系列a p i 。中间件在完成应用 程序对数据库修改的同时,也把复制对象的变化序列记录下来,从而达到捕获的 目的,从某种意义上讲,基于a _ p i 法可以看成是基于日志法的一个变种,它能够 实现基于日志法的大多数优点,给数据库复制带来便利。但是对那些不经过a p i 的操作,如在控制台命令行方式下执行的d m l 命令,它们所引起的数据变化是 a p i 无法捕获到的,另外,应用程序的可移植性差,同时当复制逻辑复杂时,有 可能影响应用程序的运行效率,因而这种方法不适用于企业级数据复制。 影子表法是在初始化时为复制对象表t 建立一张影子表s ,也就是作一份当 时的拷贝,以后就可在适当时机通过比较当前t 和s 的内容来获取净变化信息, 这种方法能在任何数据库上实现,应用程序可以在多种平台间移植。其代价只有 一倍的存储空间和不高的管理成本;由于得到的是净变化值,传输效率还能进一 步提高。但是中间过程的操作信息全部丢失,不能提供足够的控制信息。 基于时间戳法是在相关应用系统中的为每张表中都设置一个时间戳字段,以 记录每张表的修改时间。这种方法不影响原有应用的运行效率,但需要对原有系 统做较大的调整,而且不能捕捉到那些并非通过应用系统引起的操作数据变化。 根据数据记录的更新时间判断是否是最新数据,并据此时的数据副本进行相应修 改,适用于对数据更改较少的主表实现数据复制。表2 3 是它们之间的比较。 表2 3 变化捕获方式之间的比较 t 曲1 e2 - 3c o m p 耐s o no f d a t ac a p t u r em e 也o d 基于触发器基于日志基于a p i影子表基于时间戳 占用资源较多占用资源一般占用资源一般 占用资源较少占用资源一般 依赖触发器依赖日志机制依赖中间件无无 可移植性低可移植性低可移植性低可移植性高可移植性低 适用范围广适用范围一般 适用范围窄适用范围广适用范围广 北京工业大学工学硕士学位论文 2 2 4 从数据更新方式 数据更新方式指的是复制更新副本所使用的传输数据的形式,选择什么样的 更新方式决定着单次的数据传输量。从更新方式分类,可以分为完整拷贝、增量 修改和净变化三种。 完整拷贝方式是将复制对象的全部内容传输给目标节点,无论复制对象有没 有改变。这种方式下的传输数据量为数据对象的全部数据项内容,传输量等于复 制对象的大小 2 8 1 。完整拷贝的优点是易于实现,不占用额外的资源,但效率较低, 尤其是在只有少数数据发生变化的时候。一般情况下,完整拷贝用于复制初始化 和系统崩溃时。 增量修改方式是将复制对象的全部变化( 修改插入删除) 序列传播给目标 节点。这种方式下的传输数据量主要由事务个数,单个事务修改数据对象的平均 数目和大小决定,复制的类型不同也会导致传输量的大小变化 2 8 1 。增量修改方式 能提供详细的控制信息,但它需要一些特定机制的支持,占用资源较多,传输量 可能大于其他两种方式。 净变化方式是将复制对象被更新的数据项始末两个时刻的数据( 净变化值) 传播给目标节点。这种方式下的传输量最小,为所有发生变化的数据项数目与平 均数据项大小的乘积【2 甜。净变化方式提供的控制信息相对简单。表2 4 是这三种 方式之间的比较。 表2 - 4 数据更新方式比较 h b l c2 - 4c o m p 撕s o no f d a 诅n 孙s f h 完摧拷贝增量修改 净变化 传输量大传输量可能很大传输量最小 易于实现需要特殊机制实现灵活 特殊情况使用控制信息详细 控制信息简单 2 2 5 从数据同步方式 数据同步方式是指更新目标节点数据的操作在什么时间执行,选择什么样的 同步方式决定着副本的更新频率。从同步方式分类,可以分为固定间隔、请求响 应、立即响应三种。 固定间隔方式是最常见的,也称为轮巡方式,就是以一个固定时间间隔更新 一1 2 第2 章异构数据库复制技术 副本,此时更新频率是一个常量,式3 1 ,即固定时间间隔的倒数。这种方式易 于调度,效率较高,可以根据系统对数据一致性要求的高低灵活设定。 ,= 瓦j 【_ = j 曙8 1 ( 3 1 ) t i m eo fi n t 口l 、。 请求响应方式也称为事件驱动方式,是根据用户或程序的请求命令来更新副 本,这时其平均更新频率与请求事件总数成反比,式3 - 2 。这种方式灵活性强, 多用于移动环境、动态环境和需要人工干预的场合。 ,= i - i = 2 8 1 ( 3 2 ) 。h md re 睨以船 、 立即响应方式是当源数据库的复制对象一旦发生变化,就立即将该变化分发 到目标数据库,这时其平均更新频率与事务总数成反比,式3 3 。立即响应方式 能接近达到数据的紧密一致性。 厂= i i _ l _ _ ( 3 3 ) 。 肌m0 厂乃椎月s 口c 砌行s 、。 以上从几个角度对数据库复制进行了分类,此外,还可以从其他的角度进行 分类,主要是根据某些模型或实现方法而划分,比如连接方式、分发模型、拓扑 结构等。 2 3 复制过程组成环节 数据库复制是把数据从源数据库通过网络分发到另外的一个或多个地理位 置不同的目标数据库中。对于其基本的组成环节,目前还没有统一看法。 我们可以这样描述数据库复制的过程:首先在源数据库定义复制对象,然后 获得复制对象的内容或变化情况,把它们从源数据库传送到目标数据库,最后同 步那里的副本。如果是对等复制,还需要检测副本之间是否有复制冲突并解决它 们。通过这样的描述,可以将复制过程分为几个互相独立的部分,包括:复制对 象定义、变化捕获、数据分发、数据同步和冲突检测与解决。这样划分,就把复 制过程分为五个功能相对独立的处理步骤,如图2 1 所示。其中冲突检测与处理 对于对等复制是必须的,在某些情况下,数据分发和同步模块可以合并成一个模 块。本文后面的内容将围绕这几个环节展开讨论。 北京工业大学工学硕士学位论文 源刁 : r 1 r _ 1 r 一 数据库 4 变化捕获卜刊数据分发h 数据同步 i 赢1 j i :岁 一一:- t :。 ;冲突检测与解决l 图2 1 数据库复制组成环节 f i g u r e 2 - ld a t a b 鹊er 印1 i c a d o nc o n s d t u t ep a n s 2 3 1 复制对象定义 复制对象定义模块的功能是定义该复制过程所需复制的对象,即根据复制的 需求,定义所要复制的数据内容,并保证捕获模块能够捕获到正确的内容。复制 对象的详细描述见2 1 5 节。 2 3 2 变化捕获 变化捕获是数据库复制的基础,它是要获得复制对象的当前映像或变化序 列,它直接决定了数据库复制的更新方式和同步方式,如果是对等复制,变化捕 获模块还必须提供尽可能详细的控制信息。常见的几种变化捕获方式已经在2 2 3 节详细介绍过。 2 3 3 数据分发 数据分发是指对变化数据进行传播,该模块负责源服务器和目标服务器之间 的信息发送和接收。这里的数据是指复制对象的变化数据和一些控制信息。分发 在不同场合还有一些其它作用,例如在同步复制时,分发模块还要承担协调者的 作用:对等复制时如果发生复制冲突,分发模块还负责传递控制信息和仲裁结果。 根据分发实施的不同位置会导致产生不同的分发模型,从而影响整个复制过 程的组织形式和效率。推式模型是源服务器主动把捕获信息发送给目标服务器, 其优势在于执行效率高:拉式模型是由目标服务器申请把捕获信息从源服务器获 得,其优势在于容易调度:还有推拉结合模型是由第三方服务器负责数据分发, 对源服务器是拉式,对目标服务器是推式,因此,推拉结合模型兼具前两者的特 第2 章异构数据库复制技术 点。数据分发实现的复杂程度还与实现复制的各个节点的拓扑结构有关。 从图2 一l 可以看出,在数据库复制的几个组成环节中,分发环节与其它每个 环节都有着直接的联系。它的具体流程要比其它任何一个环节都要复杂,影响分 发的因素除了上面提到的实施位置、拓扑结构,还会涉及连接方式等因素,在设 计时各方面因素需要综合考虑。 2 3 4 数据同步 数据同步是根据源数据库更新信息的内容和冲突的仲裁结果来修改目标服 务器上的副本,保证其一致性。同步是复制过程的最终步骤,一般分发环节之后 就是同步,在很多情况下,分发和同步还会合并成一个环节。同步数据内容操作 的关键要看变化捕获模块提供了什么样的信息,根据提供的信息决定采取何种同 步方式,若提供的是复制对象的一个快照,就直接生成一个最新副本,若提供的 是更新的操作,就在目标表上实施这个操作。应该注意的是,由于很多客观原因, 例如网络故障,冲突检测失

温馨提示

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

评论

0/150

提交评论