一种数据表同步系统及方法

文档序号:6424889阅读:201来源:国知局
专利名称:一种数据表同步系统及方法
技术领域
本发明涉及通信技术领域,尤其涉及一种数据表同步系统及方法。
背景技术
目前,跨网络、跨数据库间数据表的快速同步最常见的软件实现方式的基本原理是在应用层捕获源数据表上执行的数据操作语句,把捕获到的数据操作语句打包传输到目标数据库端,解压后在目标数据库上执行数据操作语句。这种方式存在以下缺点首先,由于在应用层捕获执行的数据操作语句,所以单独对某张表或某些表的数据进行同步时存在相当多限制,比如,要知道需要同步的表对应的数据操作语句有哪些;其次,与这些数据操作语句相关的表,必须一并同步,同步的效率和速度比较低, 而且同步到目标数据库端的操作可能会失败。

发明内容
本发明的目的在于提供一种数据表同步系统及方法,能提高数据库间数据表同步的速度和效率,以及确保数据表同步安全性和可靠性。为解决上述问题,本发明提供一种数据表同步系统,包括源数据库单元,用于运行源数据库,存储和管理源数据表;源应用单元,连接所述源数据库单元,包含数据同步抽取程序,用于实现所述源数据表的数据抽取;目标应用单元,连接所述源应用单元,包含数据同步合并程序,用于确认所述源应用单元抽取出的数据并传输; 目标数据库单元,连接所述目标应用单元,用于运行目标数据库,存储和管理目标数据表,并接收所述目标应用单元传输的数据,更新至所述目标数据表中;其中,所述数据同步抽取程序为串行执行程序,锁定需同步的所述源数据表及数据表任务,抽取出所述源数据表区别上次抽取时的变量数据及增量数据,并传输至所述目标应用单元;所述数据同步合并程序锁定所述目标数据表及所述数据表任务,与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。进一步的,所述数据同步抽取程序将所述变量数据以及增量数据压缩打包成数据包传输至所述目标应用单元。进一步的,所述数据同步合并程序将所述数据包解压,并将目标数据表与源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。
进一步的,所述源应用单元通过局域网络连接所述源数据库单元。进一步的,所述目标应用单元通过互联网络连接所述源应用单元。进一步的,所述目标数据库单元通过局域网络连接所述目标应用单元。相应的,本发明还提供一种应用上述的数据表同步系统的方法,包括
所述源数据库单元运行所述源数据库;所述源应用单元运行所述数据同步抽取程序,锁定所述源数据库需同步的源数据表及数据表任务,抽取出所述源数据表区别上次抽取时的变量数据及增量数据,并传输至所述目标应用单元;所述目标应用单元运行所述数据同步合并程序,锁定所述目标数据表及所述数据表任务,并与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入;所述目标数据库单元的所述目标数据表替换所述变量数据以及插入所述增量数据,完成数据的同步更新。进一步的,所述数据同步抽取程序将所述变量数据以及增量数据压缩打包成数据包传输至所述目标应用单元。进一步的,所述数据同步合并程序将所述数据包解压,并将目标数据表与源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。进一步的,所述源应用单元通过局域网络连接所述源数据库单元。进一步的,所述目标应用单元通过互联网络连接所述源应用单元。进一步的,所述目标数据库单元通过局域网络连接所述目标应用单元。与现有技术相比,本发明的数据表同步系统及方法,通过所述数据同步抽取程序可以锁定源数据表及数据表任务,仅执行当前数据表的当前任务,快速抽取出需同步的源数据表中区别于上次在抽取时的变量数据及增量数据,即当前时间下的源数据表与上次抽取时该源数据表的数据变化及差额部分,提高了数据库间数据表同步的速度和效率;所述数据同步合并程序锁定所述目标数据表后,与源数据表对比,再次确认所述增量数据,确保了数据表同步安全性和可靠性;进一步的,局域网以及互联网的连接,可以支持低网速环境下的数据同步,还可以完成一对多的数据同步扩展。


图1是本发明的数据表同步系统的结构示意图;图2是本发明的数据表同步方法流程图。
具体实施例方式以下结合附图和具体实施例对本发明提出的语音通话系统及语音通话方法作进一步详细说明。如图1所示,本发明提供一种数据表同步系统,包括源数据库单元1,用于运行源数据库,存储和管理源数据表;源应用单元2,连接所述源数据库单元1,包含数据同步抽取程序,用于实现所述源数据表的数据抽取;目标应用单元3,连接所述源应用单元2,包含数据同步合并程序,用于确认所述源应用单元2抽取出的数据并传输;目标数据库单元4,连接所述目标应用单元3,用于运行目标数据库,存储和管理目标数据表,并接收所述目标应用单元3传输的数据,更新至所述目标数据表中;其中,所述数据同步抽取程序为串行执行程序,锁定需同步的源数据表及数据表任务, 抽取出所述源数据表区别上次抽取时的变量数据(即当前时间下与上次抽取时该源数据表的数据变化部分)及增量数据(即当前时间下与上次抽取时该源数据表的数据差额部分),并传输至所述目标应用单元3上;所述数据同步合并程序锁定所述目标数据表及所述数据表任务,与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。优选的,所述数据同步抽取程序可以设定数据表同步或抽取的频率,将所述变量数据以及增量数据压缩打包成数据包传输至所述目标应用单元3 ;所述数据同步合并程序将所述数据包解压,将目标数据表与源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。可选的,所述源应用单元2通过局域网络连接所述源数据库单元1 ;所述目标应用单元3通过互联网络连接所述源应用单元2 ;所述目标数据库单元4通过局域网络连接所述目标应用单元3。相应的,本发明还提供一种应用上述的数据表同步系统的方法,包括所述源数据库单元运行源数据库;所述源应用单元运行所述数据同步抽取程序,锁定所述源数据库需同步的源数据表及数据表任务,抽取出所述源数据表区别上次抽取时的变化数据及增量数据,并传输至所述目标应用单元上;所述目标应用单元运行所述数据同步合并程序,锁定所述目标数据表及所述数据表任务,与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入;所述目标数据库单元的所述目标数据表替换所述变量数据以及插入所述增量数据,完成数据的同步更新。可选的,所述源应用单元通过局域网络连接所述源数据库单元,所述目标应用单元通过互联网络连接所述源应用单元;所述目标数据库单元通过局域网络连接所述目标应用单元,以实现低速网络环境下的数据同步。如图2所示,本实施例中,目标数据端只有一台目标数据库单元及一台目标应用单元,源数据库及目标数据库均为oracle数据库,所述源应用单元以及目标应用单元的操作系统均为Iinux系统,分别通过shell sript启动调用数据同步抽取程序及数据同步合并程序;同时,所述数据同步抽取程序将所述变量数据以及增量数据压缩打包成数据包传输至所述目标应用单元;所述数据同步合并程序将所述数据包解压,将目标数据表与源数据表对比,实现所述变量数据在所述目标数据表中的替换,以及所述增量数据在所述目标数据表中的插入,实现了 1分钟内的数据同步。请继续参考图2,本实施例的数据表同步方法,包括所述源数据库单元运行源数据库;所述源应用单元运行所述数据同步抽取程序;所述数据同步抽取程序锁定所述源数据库需同步的源数据表,并判断所述需同步的源数据表是否已锁定,若否,重新锁定;若是,继续下一步;所述数据同步抽取程序判断所述需同步的源数据表是否有数据任务,若否,所述源应用单元结束所述数据同步抽取程序;若是,所述数据同步抽取程序锁定所述数据表任务;所述数据同步抽取程序判断所述需同步的源数据表当前时间下与上次抽取时是否存在变量数据,若否,所述数据同步抽取程序跳过这一步;若是,所述数据同步抽取程序抽取出所述变量数据;所述数据同步抽取程序判断所述需同步的源数据表当前时间下与上次抽取时是否存在差量数据;若否,所述数据同步抽取程序跳过这一步;若是,所述数据同步抽取程序抽取出所述差量数据;所述数据同步抽取程序将所述变量数据及差量数据打包成数据包传输至所述目标应用单元,置位及解锁所述源数据表的数据表任务;所述源应用单元结束所述数据同步抽取程序以等待下次数据表同步操作;所述目标应用单元运行所述数据同步合并程序,判断是否接收到数据包,若否,所述目标应用单元退出所述数据同步合并程序;若是,所述数据同步合并程序解压所述数据包;所述数据同步合并程序锁定所述目标数据表及所述数据表任务;所述数据同步合并程序将所述目标数据表与所述源数据表对比,判断是否有变量数据,若否,跳过;若是,将所述变量数据替换入所述目标数据表中;所述数据同步合并程序将所述目标数据表与所述源数据表对比,判断是否有增量数据,若否,跳过;若是,将所述增量数据插入所述目标数据表中;所述数据同步合并程序置位及解锁所述目标数据表的数据表任务,所述目标应用单元退出所述数据同步合并程序,以等待下次数据表同步操作。本发明的其他实施例中,源数据端可以有多台源数据库单元及一台源应用单元, 目标数据端可以有一台目标应用单元及多台目标数据库单元,以实现一对多、多对一或多对多的数据同步方式。综上所述,本发明的数据表同步系统及方法,通过所述数据同步抽取程序锁定源数据表及数据表任务,仅执行当前数据表的当前任务,可以快速抽取出需同步的源数据表中区别于上次在抽取时的变量数据及增量数据,即当前时间下的源数据表与上次抽取时该源数据表的数据变化及差额部分,提高了数据库间数据表同步的速度和效率;所述数据同步合并程序锁定所述目标数据表后,与源数据表对比,再次确认所述增量数据,确保了数据表同步安全性和可靠性;进一步的,局域网以及互联网的连接,可以支持低网速环境下的数据同步,还可以完成一对多的数据同步扩展。显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种数据表同步系统,其特征在于,包括源数据库单元,用于运行源数据库,存储和管理源数据表;源应用单元,连接所述源数据库单元,包含数据同步抽取程序,用于实现所述源数据表的数据抽取;目标应用单元,连接所述源应用单元,包含数据同步合并程序,用于确认所述源应用单元抽取出的数据并传输;目标数据库单元,连接所述目标应用单元,用于运行目标数据库,存储和管理目标数据表,并接收所述目标应用单元传输的数据,更新至所述目标数据表中;其中,所述数据同步抽取程序为串行执行程序,锁定需同步的源数据表及数据表任务,抽取出所述源数据表区别上次抽取时的变量数据及增量数据,并传输至所述目标应用单元;所述数据同步合并程序锁定所述目标数据表及所述数据表任务,与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。
2.如权利要求1所述的数据表同步系统,其特征在于,所述数据同步抽取程序将所述变量数据以及增量数据压缩打包成数据包传输至所述目标应用单元。
3.如权利要求2所述的数据表同步系统,其特征在于,所述数据同步合并程序将所述数据包解压,并将所述目标数据表与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。
4.如权利要求1至3中任一项所述的数据表同步系统,其特征在于,所述源应用单元通过局域网络连接所述源数据库单元。
5.如权利要求1至3中任一项所述的数据表同步系统,其特征在于,所述目标应用单元通过互联网络连接所述源应用单元。
6.如权利要求1至3中任一项所述的数据表同步系统,其特征在于,所述目标数据库单元通过局域网络连接所述目标应用单元。
7.一种应用权利要求1所述的数据表同步系统的方法,其特征在于,包括所述源数据库单元运行所述源数据库;所述源应用单元运行所述数据同步抽取程序,锁定所述源数据库单元需同步的源数据表及数据表任务,抽取出所述源数据表区别上次抽取时的变量数据及增量数据,并传输至所述目标应用单元;所述目标应用单元运行所述数据同步合并程序,锁定所述目标数据表及所述数据表任务,并与所述源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入;所述目标数据库单元的所述目标数据表替换所述变量数据以及插入所述增量数据,完成数据的同步更新。
8.如权利要求7所述的方法,其特征在于,所述数据同步抽取程序将所述变量数据以及增量数据压缩打包成数据包传输至所述目标应用单元。
9.如权利要求8所述的方法,其特征在于,所述数据同步合并程序将所述数据包解压, 并将目标数据表与源数据表对比,实现所述变量数据在所述目标数据表中的替换以及所述增量数据在所述目标数据表中的插入。
10.如权利要求7至9中任一项所述的方法,其特征在于,所述源应用单元通过局域网络连接所述源数据库单元。
11.如权利要求7至9中任一项所述的方法,其特征在于,所述目标应用单元通过互联网络连接所述源应用单元。
12.如权利要求7至9中任一项所述的方法,其特征在于,所述目标数据库单元通过局域网络连接所述目标应用单元。
全文摘要
本发明提供一种数据表同步系统及方法,通过所述数据同步抽取程序锁定源数据表及数据表任务,仅执行当前数据表的当前任务,可以快速抽取出需同步的源数据表中区别于上次在抽取时的变量数据及增量数据,即当前时间下的源数据表与上次抽取时该源数据表的数据变化及差额部分,提高了数据库间数据表同步的速度和效率;所述数据同步合并程序锁定所述目标数据表后,与源数据表对比,再次确认所述增量数据,确保了数据表同步安全性和可靠性;进一步的,局域网以及互联网的连接,可以支持低网速环境下的数据同步,还可以完成一对多的数据同步扩展。
文档编号G06F17/30GK102184251SQ20111013800
公开日2011年9月14日 申请日期2011年5月25日 优先权日2011年5月25日
发明者刘玉旺 申请人:盛趣信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1