论文部分内容阅读
随着应用系统的急剧扩张和网络技术的迅速发展,用户对系统提供实时数据更新的要求越来越高。然而在系统的集成过程中,底层的数据库之间在实现数据资源的共享和变换时会出现一些问题。每个应用系统的架构没有统一的标准,使用的数据库不尽相同。因此,如何让这些运行平台和语义表示都不相同的异构数据库间进行数据交互,最终实现数据库之间的同步更新,具有十分重要的意义。 本文从数字化校园实际应用场景出发,在分析源数据库的异构性基础上,研究了一种基于事务日志的异构数据库同步技术,并将其应用于统一数据共享与交换平台中,使之和共享数据库之间的交互忽略DBMS、数据模式、数据类型等差异。该系统实现了数据在本地的数据更改同步传送到其他节点上,并可对该节点上的数据副本进行修改。论文主要完成如下几方面的工作: 首先,研究异构数据库和数据同步的方式,分析了数据同步的过程,主要针对其中的变化捕获(ChangeDataCapture,CDC)机制和数据分发进行比较分析,从实时、双向和更新方式等性能评价标准上设计事务日志捕获的方式。 其次,在深入分析了事务日志的含义、日志类型、不同DBMS的日志结构区别的基础上,研究并实现了一种基于事务日志的变化捕获机制。不同于以往的日志只用于数据库系统的崩溃恢复,还可以用来进行数据的变化捕获。undo和redo日志分别能存储数据更新的前像和后像值,这成为是否捕获该变化的重要参考;事务管理的ACID特性保证了只有成功提交的事务更新才有必要进行后面的操作;时间窗口的概念强制决定了每次读取的日志量大小,并采用相应的检查点机制进行控制。 最后,利用该变化捕获方法对数据同步系统进行设计和实现。共享数据库作为数据的中心,不仅需要从底层源数据库获取更新了的数据,同时也要将获取的数据传送到其他的业务系统中。利用OGG对源数据库和目的数据库的设计,最终实现了数据同步,维护了系统中数据的一致性。