一种异构数据库之间的数据同步方法及系统的制作方法

文档序号:9288452阅读:438来源:国知局
一种异构数据库之间的数据同步方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据库领域,尤其涉及一种异构数据库之间的数据同步方法及系统。
【背景技术】
[0002]目前市场上存在多种数据库之间同步的技术,这些技术都要解决两个问题,一个是历史数据的同步,另一个是增量变化数据的同步。
[0003]历史数据的同步常见的有数据库自带的同步技术,如Oracle的数据栗导入导出技术,但这些工具往往都不支持异构数据库之间的历史数据同步,而且借助这些工具实现历史数据同步后,还需要手动开始增量数据同步,增量同步开始点选择不好还容易丢数据,操作也比较繁琐。
[0004]获取增量变化数据的技术常见的有:数据库轮询技术、数据库触发器技术、基于程序控制逻辑的数据变化技术、基于日志的捕获技术。
[0005]数据库轮询技术:通过每隔一段时间去查询数据库,以检查感兴趣的表是否有变化的数据。这种方式适用于压力比较小的数据库环境,实现技术简单,应用不多。
[0006]数据库触发器技术:通过对感兴趣的数据建立触发器,在数据有变化时,数据库管理系统会根据数据库操作的类型(Insert/Update/Delete)而激活相应的触发器,从而在触发器代码中我们可以添加我们对数据库变化事件的处理代码。该技术的使用比较简单,在目前应用中使用比较普遍。该技术可以参考文献:《一种基于触发器的数据同步系统的研究及关键技术实现》:《计算机应用与软件》(2012,29(12))。这种技术的缺陷在于需要在数据表上建立触发器,如果数据表比较多的话,会对数据库造成压力
[0007]基于程序控制逻辑的数据变化技术:通过为需要跟踪的多个表建立一个跟踪表来记录其变化情况,跟踪表的结构比较简单,主要是记录变化的表名、操作类型等轻量级的数据,而跟踪程序,即数据库事件捕获程序对跟踪表进行轮询,比如著名的数据库同步产品Data Mirror的早期版本就是通过该技术来捕获数据库变化的。这种技术的缺陷跟上面两个技术类似。
[0008]基于数据库自带工具的日志的捕获技术:比如Oracle提供了 LogMiner工具,该工具解析指定的日志文件,然后得出一个结果,根据结果可以看出日志中变化的数据。DB2有内置的数据库系统内置的API接口,通过接口可以逐条进行解析,获取变化数据。SqlServer可以利用fn_dblog,读取SqlServer日志,分析出变化的数据。这些技术的缺陷是都需要借助工具和API函数,如果数据库没有安装这些工具或对外屏蔽了 API函数,就无法获取增量变化数据。并且使用这些工具必须要有数据库的专业知识,熟悉操作系统的指令,很难被广泛实施。

【发明内容】

[0009]本发明为克服上述的不足之处,目的在于提供一种异构数据库之间的数据同步方法,本方法包括历史数据同步与增量数据同步,支持多种主流数据库之间的异构同步,不用借助其他工具和脚本,历史数据同步和增量数据同步能轻松配置;且历史数据同步和增量数据同步自动衔接,降低了复杂度。
[0010]本发明另一目的在于提供一种异构数据库之间的数据同步系统,本系统包括配置器、引擎、历史数据同步模块、日志采集模块、日志解析模块、数据装载模块,同步数据时对数据库影响小,实时效率高,且可用于多种同步场景。
[0011]本发明是通过以下技术方案达到上述目的:一种异构数据库之间的数据同步方法,包括如下步骤:
[0012](I)配置器自动生成配置文件对需要同步的数据表进行配置;
[0013](2)系统获取同步起始点后并选择是否需要历史数据同步,若是进行历史数据同步后执行步骤(3);若不是,执行步骤(3);
[0014](3)系统自动启动增量数据同步,增量数据同步包括日志解析与数据装载两个过程,执行完日志解析与数据装载后完成数据同步。
[0015]作为优选,所述配置文件包括源端数据库和目标端数据库之间的映射关系、数据表与数据表的映射关系、字段与字段的映射关系与用于日志解析的字典文件。
[0016]作为优选,所述同步起始点为当前数据库日志的系统变更号,在日志解析时用作起始解析点。
[0017]作为优选,所述步骤(2)的历史数据同步过程包括如下步骤:
[0018]I)历史数据同步模块从源端数据库抽取数据,并根据源端数据库和目标端数据库的类型自动选择所需的JDBC驱动;
[0019]2)历史数据同步模块将这些抽取到的数据按照映射关系进行转换;
[0020]3)历史数据同步模块将转换后的数据入库到目标端数据库。
[0021]作为优选,所述步骤(3)的日志解析过程包括如下步骤:
[0022]i)日志采集模对源端数据库抓取得到增量日志;
[0023]ii)日志解析模块检查增量日志的完整性,如果不完整就不予解析,等待修复处理;若完整执彳丁步骤iii);
[0024]iii)日志解析模块搜寻同步起始点,从上次记录的解析断点开始解析;
[0025]iv)日志解析模块按照事务与数据库的内部顺序进行解析,保证事务的完整性的有序性;
[0026]V)最后生成数据文件,日志解析模块将增量变化数据以特定的格式写入到数据文件中,同时生成读取数据文件的索引文件。
[0027]作为优选,所述日志采集模对源端数据库块抓取得到增量日志的方法为在源端数据库中安装日志抓取程序或通过文件夹共享的方式远程抓取。
[0028]作为优选,所述步骤V)的特定的格式是后缀名为.0utdata的文件格式,索引文件格式是后缀名为.dataindex的文件格式。
[0029]作为优选,所述步骤(3)的数据装载过程包括如下步骤:
[0030]I)数据装载模块根据索引文件扫描数据文件,把若干小数据文件合并成一个数据文件;
[0031]II)数据装载模块把合并后的数据文件加载到内存,并根据配置文件解析数据文件,按照数据表与数据表,字段与字段的映射关系,完成数据结构的转换;
[0032]III)数据装载模块将转换完成后的数据流同步到目标数据库中。
[0033]作为优选,所述步骤I)的小数据文件的划分标准为数据文件中的事务记录条数小于5000条。
[0034]—种应用如上所述数据同步方法的系统,包括:配置器、引擎、历史数据同步模块、日志采集模块、日志解析模块、数据装载模块;配置器生成配置文件分别给历史数据同步模块、日志采集模块、日志解析模块、数据装载模块使用;引擎负责启动和停止历史数据同步模块、日志采集模块、日志解析模块、数据装载模块;日志采集模块采集增量日志给日志解析模块解析;日志解析模块解析得到的数据文件给数据装载模块使用。
[0035]作为优选,所述配置器包括数据资源配置器与服务配置器;数据资源配置器用于配置源端数据库库和目标端数据库的信息;服务配置器用于配置服务,将源端数据库中的指定表的数据同步到目标端数据库的指定表。
[0036]本发明的有益效果在于:(1)支持多种主流数据库之间的异构同步,不用借助其他工具和脚本,历史数据同步和增量数据同步能轻松配置;(2)历史数据同步和增量数据同步自动衔接,不用手动介入,降低了复杂度;(3)增量数据同步完全基于日志解析,支持的数据库种类涵盖现在主流
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1