数据库同步方法及系统技术方案

技术编号:6160424 阅读:186 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及数据同步技术领域,公开了一种数据库同步方法,该方法包括:实时捕捉源数据库中数据的变化信息及该数据变化对应的事务,并将捕捉到的变化信息及事务保存到中间数据库中;根据中间数据库中保存的变化信息确定需要同步的目标数据库;将所述变化信息转换为对应所述目标数据库的目标数据;将对应同一事务的所有目标数据同时更新到所述目标数据库中。利用本发明专利技术,可以实现不同类型的数据库以及异构数据表之间的数据同步,降低同步过程对系统资源的消耗,保证同步过程的可靠性。

【技术实现步骤摘要】

本专利技术涉及数据同步
,更具体地说,涉及一种数据库同步方法及系统
技术介绍
在企业生产运营过程中,往往拥有多个系统,而且这些系统之间需要相互配合,部 分数据需要在这些系统间共享,因此需要使这些共享数据在不同系统间保持同步。在现有技术中,由于不同系统的差异以及功能的不同,各系统中数据库的物理结 构并非完全一致,为同步这些共享数据通常需要为每个系统编写同步程序。在数据同步过 程中,由同步程序对源表数据进行转换,将转换后的数据与目标表中的数据进行比对,然后 再对差异部分进行增量同步。这种同步方式由于丢失了最初入表时的事务信息,必须在同 步过程中同步对应所有事务的差异部分的数据,否则无法保证事务的完整性。这种同步方式不仅工作繁琐,而且如果同步数据较多会导致数据库事务过长,不 仅会占用较多系统资源,而且有可能造成同步失败。
技术实现思路
本专利技术实施例针对现有技术中存在的上述问题,提供一种数据库同步方法及系 统,实现不同类型的数据库以及异构数据表之间的数据同步,降低同步过程对系统资源的 消耗,保证同步过程的可靠性。为此,本专利技术实施例提供如下技术方案—种数据库同步方法,包括实时捕捉源数据库中数据的变化信息及该数据变化对应的事务,并将捕捉到的变 化信息及事务保存到中间数据库中;根据中间数据库中保存的变化信息确定需要同步的目标数据库;将所述变化信息转换为对应所述目标数据库的目标数据; 将对应同一事务的所有目标数据同时更新到所述目标数据库中。优选地,所述实时捕捉源数据库中数据的变化信息及该变化信息对应的事务,并 将捕捉到的变化信息及事务保存到中间数据库中包括通过访问源数据库的标准接口获得对源数据库的操作信息;根据所述操作信息生成对应源数据库中数据变化的SQL语句及事务序号;将所述对应源数据库中数据变化的SQL语句及事务序号保存到中间数据库中。优选地,所述根据中间数据库中保存的变化信息确定需要同步的目标数据库包 括根据中间数据库中保存的SQL语句确定对源数据库操作的数据表;根据配置文件查找使用所述数据表中数据的其他数据库;将查找到的使用所述数据表中数据的其他数据库作为需要同步的目标数据库。优选地,所述将所述变化信息转换为对应所述目标数据库的目标数据包括根据所述中间数据库中保存的SQL语句,得到对源数据库的操作信息;根据所述目标数据库的类型及对应该目标数据库的转换规则,将得到的对源数据 库的操作信息生成符合目标数据库语法的SQL语句。优选地,如果需要同步的目标数据库有多个,则分别将对应同一事务的所有目标 数据更新到每个目标数据库中。一种数据同步系统,包括捕捉单元,用于实时捕捉源数据库中数据的变化信息及该数据变化对应的事务, 并将捕捉到的变化信息及事务保存到中间数据库中;目标数据库确定单元,用于根据中间数据库中保存的变化信息确定需要同步的目 标数据库;转换单元,用于将所述变化信息转换为对应所述目标数据库的目标数据;同步管理单元,用于将对应同一事务的所有目标数据同时更新到所述目标数据库 中。优选地,所述捕捉单元包括操作信息获取子单元,用于通过访问源数据库的标准接口获得对源数据库的操作 fn息;变化信息生成子单元,用于根据所述操作信息生成对应源数据库中数据变化的 SQL语句及事务序号;保存子单元,用于将所述对应源数据库中数据变化的SQL语句及事务序号保存到 中间数据库中。优选地,所述目标数据库确定单元包括数据表确定子单元,用于根据中间数据库中保存的SQL语句确定对源数据库操作 的数据表;查找子单元,用于根据配置文件查找使用所述数据表中数据的其他数据库,将查 找到的使用所述数据表中数据的其他数据库作为需要同步的目标数据库。优选地,所述转换单元包括操作信息获取子单元,用于根据所述中间数据库中保存的SQL语句,得到对源数 据库的操作信息;目标数据生成子单元,用于根据所述目标数据库的类型及对应该目标数据库的转 换规则,将得到的对源数据库的操作信息生成符合目标数据库语法的SQL语句。优选地,如果需要同步的目标数据库有多个,则所述同步管理单元分别将对应同 一事务的所有目标数据更新到每个目标数据库中。本专利技术实施例数据库同步方法及系统,通过实时捕捉源数据库中数据的变化信息 及该数据变化对应的事务,并将捕捉到的变化信息及事务保存到中间数据库中,将变化信 息转换为对应目标数据库的目标数据,然后将对应同一事务的所有目标数据同时更新到所 述目标数据库中。从而可以实现不同类型的数据库以及异构数据表之间的数据同步,而且, 由于保存了事务信息,使得在一次数据同步过程中,只需将对应同一事务的所有目标数据 同步到相应的目标数据库中,而无需在一次同步过程中同步对应所有事务的差异数据即可 保证数据的一致性,因而大大降低成了同步过程对系统资源的消耗,保证了同步过程的可5靠性。 附图说明为了更清楚地说明本专利技术实施的技术方案,下面将对实施例中所需要使用的附图 作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普 通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例数据库同步方法的流程图;图2是本专利技术实施例数据库同步系统的一种结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于 本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本专利技术保护的范围。如图1所示,是本专利技术实施例数据库同步方法的流程图,包括以下步骤步骤101,实时捕捉源数据库中数据的变化信息及该变化信息对应的事务,并将捕 捉到的变化信息及事务保存到中间数据库中。在本专利技术实施例中,可以通过访问源数据库的标准接口获得对源数据库的操作信 息,比如利用JDBC(Java Data Base Connectivity,Java数据库连接)提供的Java程序访 问源数据库的标准接口来获得对源数据库的操作信息,当然,也可以采用其他能够访问数 据库接口的程序,对此本专利技术实施例不做限定。然后,根据获得的对源数据库的操作信息生 成对应源数据库中数据变化的SQL语句及事务序号,将这些信息保存到中间数据库中。也 就是说,中间数据库中记录的内容可以是符合源数据库语法的SQL语句和事务序号。需要说明的是,对源数据库的操作可以是数据表中信息的增加、修改、或删除等操 作。例如,通过JDBC的ft·印arecKtatement接口更新数据,其中con表示一个活动连 接con. setAutoCommit(false) ; //事务开始 PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");pstmt. setBigDecimal( 1,153833.00); pstmt.setlnt(2, 110592);con.commitQ; //事务提交通过在JDBC 层拦截,可以获得 SQL 语句“UPDATE EMPLOYEES SET SALARY =?WHERE本文档来自技高网...

【技术保护点】
1.一种数据库同步方法,其特征在于,包括:实时捕捉源数据库中数据的变化信息及该数据变化对应的事务,并将捕捉到的变化信息及事务保存到中间数据库中;根据中间数据库中保存的变化信息确定需要同步的目标数据库;将所述变化信息转换为对应所述目标数据库的目标数据;将对应同一事务的所有目标数据同时更新到所述目标数据库中。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈宏明温文全
申请(专利权)人:广州从兴电子开发有限公司
类型:发明
国别省市:81

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1