您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 异构数据库的变化捕捉和动态同步策略研究与比较
1异构数据库的变化捕捉和动态同步策略的研究与比较摘要随着信息技术的发展,信息量的爆炸性的增加异构数据库间,如何进行有效的动态同步已经成为研究的热点。本文综述了异构数据库动态捕捉的常用的策略和技术,并分析了这些策略的优缺点,为研究人员如何选取自身合适的同步策略提供了基础。关键词异构数据库同步动态捕捉1.研究背景与意义在当今信息爆炸的年代里,随着网络技术的飞速发展和分布式计算的广泛应用,大大方便了企业的跨地域发展。许多单位和科研机构通过不断重组和分散经营来提高效率,形成了分散、异构的环境特点。这些机构在地域上虽然分散,但在管理上相对集中,往往既要有各机构的局部控制和分散管理,各部门的协同工作要求各自拥有的信息数据能够灵活交流。而从安全性、可用性及自治性来考虑,分散信息资源的异地自主分布是最自然甚至必然的选择。这使得保证分布式数据的一致性成为迫切需要。数据同步技术能够有效保证各数据副本的一致性,使用户应用只需访问本地副本而避免访问远程数据,减少数据访问延迟,提高用户应用性能;一致的多个数据副本允许提供更多的数据服务,进而增大数据访问吞吐量,增强数据可用性;同时,多数据副本可以应对不可测因素造成的数据丢失,有利于保证数据的可靠性。目前,在特定的网络应用环境下,如何有效地解决异构数据库间的数据同步问题已经成为数据库系统应用的重要环节。异构数据库同步问题已越来越引起许多专家学者的重视,在他们的许多重要文献中都有所涉及,但从总体来说,对异构数据库同步的研究在许多方面还处于探索阶段,需要迸一步工作的地方还很多。因此,无论从理论研究还是实际应用角度,对基于异构数据库同步的研究都具有非常重要的意义。2.数据同步方法分类对象变化捕获是数据同步的基础,它直接决定了数据同步的更新方式和选时方式。变化捕获不仅要获得复制对象的变化序列或当前映像,还要在对等式复制时提供尽可能详细的控制信息。通过对当前使用捕获方法的综合分析,目前主要有七种基本变化捕获形式,它们是:(1)基于快照法;(2)基于触发器法;(3)基于日志法;(4)基于API法;(5)基于时间戳法;(6)影子表法;(7)变更轨迹表法。2.1基于快照法2该技术是最简单的数据捕获技术。其基本原理是周期性的提取源数据库系统中的数据快照加载到目标数据库中。快照是数据库中存储对象在某一时刻的即时映像。通过为同步对象定义一个快照或采用类似方法,可以将它的当前映像作为更新副本的内容。如图1.1所示。图2.1基于快照法快照法可以在任何数据库甚至是其他结构化和半结构化的数据源上实现,它不需要依赖于特别的机制,系统资源占用较小,容易管理和操作。但是由于对于快照对象并不区分具体的变动记录,而且采用快照集合完全刷新,因此效率较低,而且本方法不能用于同步复制和对等式复制。Oracle、SQLServer等常用的数据库系统都提供了基于快照的捕获方法。事实上它也是异构数据集成过程中数据复制过程实现的基础。2.2基于触发器法触发器是数据库系统在特定的条件或某事件发生时调用的存储过程。决定触发的条件或事件的粒度和复杂性因数据库而异。该技术与数据库系统所支持的触发器紧密相关。因此,文件型存储的数据库系统和一些小型数据库系统并不支持该方法。在源数据库为同步对象创建相应的触发器,当对同步对象进行修改、插入或删除等DML(DalaManipulationLanguage)命令时,触发器被唤醒,将变化传播到目标数据库。如图1.2所示。3图2.2基于触发器法基于触发器法和基于快照法相比,克服了基于快照法的主要缺点,极大提高了系统效率,如果辅以其他机制,就可以用于同步复制和对等式复制。但是基于触发器捕获法,使用的系统资源比较多,比较复杂的复制任务需要非常复杂的配置和实施,管理极不方便。这种方法一般适合在那些有多触发器机制的数据库系统中使用。Oracle的对称复制(SymmetricReplication)综合应用了快照和基于触发器两种捕获方法,并在许多细节上有独特的设计,使得它可以用于多种类型的复制。另外DIBAS系统也采用的是这种捕获方法。2.3基于日志法数据库日志作为维护数据完整性和数据库恢复的重要工具,其中已经包含了全部成功提交的数据库操作记录信息。基于日志法就是通过分析数据库日志的这些信息来捕获复制对象的变化序列。如INFORMIX提供的CDR就是通过读取逻辑日志来获取变化信息的。如图1.3所示。图2.3基于日志法基于日志法不仅方便,而且也不会占用太多额外的系统资源,对任何类型的复制都适合,不但能提高效率和保证数据的完整性,还能在对等式复制时提供详细的控制信息。但由于数据库日志的格式是不公开的,因而不得不基于某一同定的数据库日志分析工具或接口,这给异构数据库复制带来了问题。另外,尽管都4是利用数据库日志获取变化,但不同数据库系统在具体细节上还是存在很大的差异,这会给异构数据库复制带来新的问题。最后,很多情况下,DBA对数据库日志的管理已经很繁重、很复杂了,而基于日志法无疑会加重这种负担。在实际应用情况中,基于日志法是使用最普遍的变化捕获方法,Sybase,DB2,SQLServer等主要商用数据库都采用了这种捕获方法.2.4基于API的变化捕获方法一些小型数据库和非关系型数据库没有触发器和日志机制,另一些数据库则因为某些原因不能使用上述的捕获方法,此时可以在应用程序和数据库之间引入一类中间件,由它提供一系列API(包括ODBC/JDBC驱动程序),这些中间件在完成应用程序对数据库修改的同时,也把复制对象的变化序列记录下来,从而达到捕获的目的如图1.4所示。图2.4基于API法在某种意义上,基于API方法可以看成是基于日志法的一个变种,它能够实现基于曰志法的大多数优点,而且既会给异构数据库网步带来便利,也不再增添DBA的负担。但是基于API法存在两个严重缺陷:其一,对那些不经过API操作进行的SQL语句而产生的数据变化,API是无法捕捉到的:其二,应用程序的可移植性差,当从一种运行环境(OS、DBMS等)移植到另一种运行环境时,往往要重新编写应用程序甚至改变数据库模式。基于API法主要被ISV的产品使用。如SynchroLogic的SyneKit。2.5基于影子表的变化捕获方法许多情况下,源数据库无须了解同步对象的每一次操作,只要知道最后总共发生了什么变化就足够了。因此,可以在初始化时为同步对象表T建立一个影子(shadow)表S,也就是作一份当时的拷贝,以后就可在适当时机通过比较当前T和S的内容来获取净变化信息。如图1.5所示。5图2.5基于影子表法基于影子表法能在任何数据库上实现;应用程序可以方便地在多种平台间移植,因此很适合解决异构数据库同步;影子表法的代价只有一倍的存储空间和不高的管理成本;由于得到的是净变化值,传输效率还能进一步提高。当然基于影子表法的缺点也很明显:首先。它不符合单个节点的可串彳亍性的要求,中间过程的操作信息全部丢失,不能提供足够的控制信息;其次,在判断操作时间先后时不可避免地会产生FCLD(FirstChangeLastDetect),即先发生的操作后于其它操作被实施同步)现象,这样在对等式同步(即各个节点地位平等,没有主次,相互同步)时就会出现许多问题:最后,每次捕获变化都需扫描整个T和S表,效率很低,随着节点数目的增多会成为一个严重的性能瓶颈。在现实的应用中Syware开发的DataSyc是使用影子表法的一个实例。2.6基于控制表变化法基于控制表变化(ControlTableChange)法就是为每个要同步的源表T创建一个控制表C,C只包含T的主键字段Pk和一些控制信息字段,当T中某个记录发生变化时,C中同主键Pk的记录也随即被修改。这一过程通常可以通过触发器实现,到时候只需根据C就能知道T的变化信息。如图2.6所示。6图2.6基于控制表变化法基于控制表变化法可以获得同步对象的净变化,运行和传输效率都很高。控制表占用的存储空间小于影子表,而且易于管理。另外控制表中保存了修改时间、操作者、节点等多种控制信息,弥补了解决同步冲突的不足。变更轨迹法实际上是借用时间戳法和触发器法技术来实现日志法的技术思想,虽然触发器依然对数据库平台有依赖性,但是相比数据库系统日志,采用变更轨迹法显然具有更好的开放性和可移植性,并且继承了日志法的优点。但是对于多重定义和复杂的模式交换时,该方法有一定的困难。该方法最先由PeerDirect开发的PDRE上使用。2.7基于时间戳的变化捕获方法时间戳变化捕捉法也称数据库扫描法,该方法概念上与快照法类似。主要的区别是在时间戳法中,所有的记录带有他们自身最后被更新的时间信息。这些时间性的标志,例如时间戳,提供了关于变化数据记录捕获的选取准则。该方法的一个好处就是他不依赖于数据库类型。第二个好处是整个静态捕获方法涉及的数据量比较小。如果业务系统不要求捕获关键记录的所有的变化过程状态,该方法将是很适用。该技术存在的另外一个问题是关于删除的处理。在业务系统中,当记录不再有用而需要被删除,为了通过时间戳捕获应用程序来捕获删除操作,记录只能标示为非活动状态直到被捕获后,才能从业务系统中被移除。另外如果源数据表中不含时间戳,则需要对源系统进行改造,否则将无法使用该方法,这对遗留系统来说通常不可行。3变动数据捕获技术的选取虽然我们看到有很多种变动数据技术可以用于数据的增量更新,但是软件领域没有“银弹(SilverBullet),上述每个技术都有其明显的优缺点,并且依赖于业务领域的目标定义和实际的技术实现环境,并没有哪一种技术能完全取代其他技术作为通用的实施标准。表3.1中我们将各种技术对实际系统的影响及其特点做一个简单比较。表3.1变化数据库捕捉技术比较变化捕捉方法对元数据库的影响对业务系统程序的影响实现过程的复杂度对源数据库平台的依赖对业务系统性能的影响快照发无无低无低触发器法高无适中高高日志法无无适中极高低API法无高高低高影子表法无无高无低7控制表法高无高高高时间戳法低低低无低通过比较,我们可以了解各变动数据捕获技术的特点,并作为选取技术时的参考。比如,日志法可以侦测并实现变动捕获而不对操作系统产生直接的影响,在操作系统负担已经过重的情况下,这是非常诱人的方法。但是,如果所用的源数据库系统不支持日志模式,则必须选择其他方法。当目前的业务数据规模已经步入GB级并向TB级靠近的阶段,提高数据抽取效率以降低数据刷新时间已经成为面临的挑战,合理的利用变动数据捕获技术能使我们更好的达到数据快速集成的目标以满足业务需求。
本文标题:异构数据库的变化捕捉和动态同步策略研究与比较
链接地址:https://www.777doc.com/doc-2465403 .html