一种数据同步方法、装置及系统制造方法及图纸

技术编号:8323509 阅读:142 留言:0更新日期:2013-02-14 01:17
本申请公开了一种数据同步方法、装置及系统,所述方法包括获取源端数据库的变更表中的数据作为当前同步数据;其中,所述变更表中的数据由源端数据库的增量变化数据中提取,并以条为单位按照其被提取的前后顺序依次存储至预设的变更表中;将所述当前同步数据发送至目的端数据库;获取所述目的端数据库的接收结果信息,若所述接收结果信息表明所述当前同步数据传输成功,删除所述变更表中的当前同步数据。本申请实施例由对记录有源端数据库增量数据的变更表的操作,代替直接对源端数据库的操作,避免了对源端数据库较强的侵入性,从而提高数据同步的性能。

【技术实现步骤摘要】

本申请涉及数据传输领域,特别涉及一种数据同步方法、装置及系统
技术介绍
目前,一般采用在源端数据库(oracle数据库)建立快照表及触发器的方法,实现增量数据同步,具体过程为通过触发器捕获源端数据库的增量数据,并将增量数据写入快照表中,从而将快照表中的增量数据写入到目的端数据库中。但上述实现数据同步的方案中,在源端数据库中建立触发器与快照表会使得对源端数据库的侵入性较强,并且影响源端数据库中相应表的操作性能,数据同步速度相对较慢。
技术实现思路
有鉴于此,本申请提供一种数据同步方法、装置及系统,用于解决现有数据同步方案对源端数据库的侵入性较强,并且影响源端数据库中相应表的操作性能,数据同步速度相对较慢的技术问题。为解决上述技术问题,本申请提供了一种数据同步方法,包括获取源端数据库的变更表中的数据作为当前同步数据;·其中,所述变更表中的数据由源端数据库的增量变化数据中提取,并以条为单位按照其被提取的前后顺序依次存储至预设的变更表中;将所述当前同步数据发送至目的端数据库;获取所述目的端数据库的接收结果信息,判断所述接收结果信息是否表明所述当前同步数据传输成功,如果是,删除所述变更表中的当前同步数据。上述方法,优选的,所述获取源端数据库的变更表中的数据作为当前同步数据包括任意提取源端数据库的变更表中的一条或多条数据作为当前同步数据;或提取所述变更表中存储顺序最前的一条或连续多条数据作为当前同步数据。上述方法,优选的,所述将所述当前同步数据发送至目的端数据库包括对所述当前同步数据进行封装,得到当前数据包;将所述当前数据包发送至目的端数据库。上述方法,优选的,若所述接收结果信息表明所述当前同步数据传输未成功,所述方法还包括触发所述目的端数据库对其接收到的当前同步数据进行删除;重新获取所述变更表中的数据作为当前同步数据,直到所述目的端数据库的接收结果信息表明所述当前同步数据传输成功。上述方法,优选的,在所述删除所述变更表中的当前同步数据之后,所述方法还包括本申请提供了一种数据同步装置,包括数据获取单元,用于获取源端数据库的变更表中的数据作为当前同步数据;其中,所述变更表中的数据由源端数据库的增量变化数据中提取,并以条为单位按照其被提取的前后顺序依次存储至预设的变更表中;数据发送单元,用于将所述当前同步数据发送至目的端数据库;逻辑判断单元,用于获取所述目的端数据库的接收结果信息,判断所述接收结果信息是否表明所述当前同步数据传输成功,如果是,触发数据删除单元;所述数据删除单元,用于删除所述变更表中的当前同步数据。上述装置,优选的,所述数据获取单元包括第一获取子单元或第二获取子单元,其中·所述第一获取子单元,用于任意提取源端数据库的变更表中的一条或条数据作为当前同步数据;所述第二获取子单元,用于提取所述变更表中存储顺序最前的一条或连续多条数据作为当前同步数据。上述装置,优选的,所述数据发送单元包括封装子单元,用于对所述当前同步数据进行封装,得到当前数据包;发送子单元,用于将所述当前数据包发送至目的端数据库。上述装置,优选的,所述装置还包括第一触发单元,用于若所述接收结果信息表明所述当前同步数据传输未成功,触发所述目的端数据库对其接收到的当前同步数据进行删除,并触发所述数据获取单元重新获取所述变更表中的数据作为当前同步数据,直到所述目的端数据库的接收结果信息表明所述当前同步数据传输成功。上述装置,优选的,所述装置还包括本申请还提供了一种数据同步系统,包括如上述任意一项所述的数据同步装置。由上述方案可知,相对应现有技术中通过触发器捕获源端数据库的增量数据,并将增量数据写入快照表中,从而将快照表中的增量数据写入到目的端数据库中的方案,本申请提供的一种数据同步方法、装置及系统,通过获取源端数据库的变更表中的数据作为当前同步数据;将所述当前同步数据发送至目的端数据库;获取所述目的端数据库的接收结果信息,若所述接收结果信息表明所述当前同步数据传输成功,删除所述变更表中的当前同步数据,从而实现源端数据库与目的端数据库之间的数据同步,同时,相对于现有方案,由对记录有源端数据库增量数据的变更表的操作,代替触发器加快照表的操作,避免了对源端数据库较强的侵入性,同时提高了数据同步的性能。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本申请实施例一提供的一种数据同步方法的流程图2为本申请实施例二提供的一种数据同步方法的流程图;图3为本申请实施例三提供的一种数据同步装置的结构示意4为本申请实施例三提供的一种数据同步装置的部分结构示意图;图5为本申请实施例三提供的一种数据同步装置的另一部分结构示意图;图6为本申请实施例四提供的一种数据同步装置的结构示意图;图7为本申请实施例五提供的一种数据同步系统生成变更表的数据流向图;图8为本申请实施例五提供的一种数据同步系统实现数据同步的流程图。具体实施方式 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参考图1,其示出了本申请实施例一提供的一种数据同步方法的流程图,所述方法可以包括以下步骤步骤101 :获取源端数据库的变更表中的数据作为当前同步数据。需要说明的是,本申请可以应用于Oracle数据库,在产品图形化配置工具中,建立Xbean配置文件,源端数据库通过该配置文件使用Oracle特有的dbms_cdc-publish来创建一个变更表,Oracle数据库将增量变化数据自动保存至所述变更表中。其中,所述变更表中的数据由源端数据库的增量变化数据中提取,并以条为单位按照其被提取的前后顺序依次存储至预设的变更表中。需要说明的是,所述源端数据库的增量变化数据可以通过解析所述源端数据库的日志文件的方式进行获取。步骤102 :将所述当前同步数据发送至目的端数据库。优选的,所述步骤102可以包括以下步骤对所述当前同步数据进行封装,得到当前数据包。将所述当前数据包发送至目的端数据库。其中,所述将所述当前数据包发送至目的端数据库的具体实现包括启动发送线程;利用所述发送线程将所述当前数据包发送至所述目的端数据库。步骤103 :获取所述目的端数据库的接收结果信息。其中,所述接收结果信息是指在所述目的端数据库接收到所述当前同步数据之后,所述目的端数据库判断所述当前同步数据的数据格式等信息是否满足传输成功规则的信息。步骤104 :判断所述接收结果信息是否表明所述当前同步数据传输成功,如果是,执行步骤105 ;步骤105 :删除所述变更表中的当前同步数据。由上述方案可知,相对应现有技术中通过触发器捕获源端数据库的增量数据,并将增量数据写入快照表中,从而将快照表中的增量数据写入到目的端数据库中的方案,本申请实施例一提供的一种数据同步方法,通过获取源端数据库的变更表中的数据作为当前同步数据;将所述当前同步数据发本文档来自技高网...

【技术保护点】
一种数据同步方法,其特征在于,包括:获取源端数据库的变更表中的数据作为当前同步数据;其中,所述变更表中的数据由源端数据库的增量变化数据中提取,并以条为单位按照其被提取的前后顺序依次存储至预设的变更表中;将所述当前同步数据发送至目的端数据库;获取所述目的端数据库的接收结果信息,判断所述接收结果信息是否表明所述当前同步数据传输成功,如果是,删除所述变更表中的当前同步数据。

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括 获取源端数据库的变更表中的数据作为当前同步数据; 其中,所述变更表中的数据由源端数据库的增量变化数据中提取,并以条为单位按照其被提取的前后顺序依次存储至预设的变更表中; 将所述当前同步数据发送至目的端数据库; 获取所述目的端数据库的接收结果信息,判断所述接收结果信息是否表明所述当前同步数据传输成功,如果是,删除所述变更表中的当前同步数据。2.根据权利要求I所述的方法,其特征在于,所述获取源端数据库的变更表中的数据作为当前同步数据包括 任意提取源端数据库的变更表中的一条或多条数据作为当前同步数据; 或提取所述变更表中存储顺序最前的一条或连续多条数据作为当前同步数据。3.根据权利要求I所述的方法,其特征在于,所述将所述当前同步数据发送至目的端数据库包括 对所述当前同步数据进行封装,得到当前数据包; 将所述当前数据包发送至目的端数据库。4.根据权利要求I所述的方法,其特征在于,若所述接收结果信息表明所述当前同步数据传输未成功,所述方法还包括 触发所述目的端数据库对其接收到的当前同步数据进行删除; 重新获取所述变更表中的数据作为当前同步数据,直到所述目的端数据库的接收结果信息表明所述当前同步数据传输成功。5.一种数据同步装置,其特征在于,包括 数据获取单元,用于获取源端数据库的变更表中的数据作为当前同步数据; 其中,所述变更表中的数据...

【专利技术属性】
技术研发人员:李翔姚建萍闫鹏张辉刘民温尚卓
申请(专利权)人:山东中创软件工程股份有限公司山东中创软件商用中间件股份有限公司
类型:发明
国别省市:

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

1