CN102982126A - 一种数据库表数据实时推送的方法及其系统 - Google Patents
一种数据库表数据实时推送的方法及其系统 Download PDFInfo
- Publication number
- CN102982126A CN102982126A CN2012104581993A CN201210458199A CN102982126A CN 102982126 A CN102982126 A CN 102982126A CN 2012104581993 A CN2012104581993 A CN 2012104581993A CN 201210458199 A CN201210458199 A CN 201210458199A CN 102982126 A CN102982126 A CN 102982126A
- Authority
- CN
- China
- Prior art keywords
- trigger
- database
- server
- data
- synchronous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库应用领域,尤其涉及一种数据库表数据实时推送的方法及其系统,包括源数据库、目标数据库、服务器、触发器、同步更新装置;所述的源数据库与服务器连接,服务器与同步更新装置连接,同步更新装置与目标数据库连接,触发器与服务器连接;源数据库将变动的数据发送至服务器,服务器调用触发器生成临时表发送至目标数据库,同步更新装置检测到临时表后更新目标数据库。本发明的有益效果在于:1、有效减少数据推送过程中内存占有率,只需要推送更新数据的同步状态标识及更新内容即可;2、消除更新的时间延迟问题;3、本发明方法具有良好的扩展性;4、本发明系统结构简单,易于实现,且成本较低。
Description
技术领域
本发明涉及数据库应用领域,尤其涉及一种数据库表数据实时推送的方法及其系统。
背景技术
随着社会信息化程度的提高,不管是经济建设还是社会生活,对IT系统、互联网的依赖性越来越大,每个服务器中的数据库中都存储着许多相关的数据。有些单位在服务器上的数据库中储存着许多宝贵的数据,有些单位在数据库中的数据被应用到客户服务应用系统中,有些单位之间的数据存在业务上的联系,比如医院和保险公司等等,需要保持数据的一致,一旦这些服务器出现某种故障,这些宝贵信息数据有可能丢失殆尽,且无法挽回,造成的重大损失确保数据的安全,所以必须对数据做备份,系统可以快速恢复启用。有些单位之间的数据存在业务上的联系,比如医院和保险公司等等,需要保持数据的一致。
但是数据库中的数据并不是不变的,一个典型的例子为:图书馆的借阅系统记录书本的借阅清单,但是书本被借阅后其记录数据发生变动,此时数据库中的数据即时发生变更,但是备份数据若不能同步完成数据更新,当图书馆数据库中的数据因突发事故丢失,启用备份数据后,不能得到正确的书本借阅数据。因此,当数据库中的数据或增加或删除或修改,为了使备份数据与数据库中的数据一致,在数据库变动时同步更新备份数据。
发明内容
本发明为克服上述的不足之处,目的在于提供一种数据库表数据实时推送的方法,源数据库中的数据变更后生成变动记录,服务器接收变动记录激活触发器,触发器生成临时表后由同步更新装置更新目标数据库,完成源数据库与目标数据库的同步更新,减少备份过程中数据传输的内存占有率,快速推送数据,利于备份。
本发明的另一目的在于提供一种数据库表数据实时推送的系统,能够实时监控源数据库中的数据变更情况,使源数据库与目标数据库同步更新。
本发明是通过以下技术方案达到上述目的:一种数据库表数据实时推送的方法,包括以下步骤:
(1)源数据库划分为表数据存储区、POJO程序存储区;
(2)源数据库的表数据存储区和目标数据库存入相同的原始数据,并标记可以同步的字段及主键信息;
(3)源数据库与服务器连接,服务器自动列出源数据库的表数据存储区中可以同步的字段及主键信息;
(4)服务器根据可以同步的字段及主键信息生成POJO程序文件,生成的POJO程序文件保存在POJO程序存储区中;
(5)服务器根据可以同步的字段及主键信息生成触发器,触发器分为增加触发器、删除触发器、改动触发器;
(6)源数据库的表数据存储区中的数据发生变动,源数据库根据变动的数据生成变动记录,将变动记录打包生成推送包,推送包发送至服务器;
(7)服务器接收推送包后,发送一个确认包至触发器,触发器接收确认包后,增加触发器、删除触发器、改动触发器依次对推送包进行判断,判断数据的变动操作类型,根据判断结果生成临时表;
(8)临时表与POJO程序文件关联,并通过POJO程序文件传输至同步更新装置;
(9)同步更新装置接收数据并通过临时表中的数据更新目标数据库。
作为优选,步骤(2)中源数据库和目标数据库标记的可以同步的字段及主键信息相同。
一种数据库表数据实时推送的系统,包括源数据库、目标数据库、服务器、触发器、同步更新装置;所述的源数据库与服务器连接,服务器与同步更新装置连接,同步更新装置与目标数据库连接,触发器与服务器连接;源数据库将变动的数据发送至服务器,服务器调用触发器生成临时表发送至目标数据库,同步更新装置检测到临时表后更新目标数据库。
作为优选,所述的源数据库包括表数据存储区、POJO程序存储区。
作为优选,所述的触发器包括增加触发器、删除触发器、改动触发器。
本发明的有益效果在于:1、本发明方法能够有效减少数据推送过程中内存占有率,只需要推送更新数据的同步状态标识及更新内容即可;2、本发明方法通过触发器实现源数据库和目标数据库之间的同步更新,消除更新的时间延迟问题;3、本发明方法中同步字段及主键信息可以通过人为操作自由添加,能够自主选择同步字段及主键信息,具有良好的扩展性;4、本发明系统结构简单,可以充分利用现有资源无需其他的复杂软硬件结合,易于实现,且成本较低。
附图说明
图1是一种数据库表数据实时推送的方法的步骤流程图;
图2是一种数据库表数据实时推送的系统的结构示意图。
具体实施方式
下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:
实施例1:如图1所示,一种数据库表数据实时推送的方法,包括以下步骤:
步骤1:源数据库划分为表数据存储区、POJO程序存储区;
步骤2:源数据库的表数据存储区和目标数据库存入相同的原始数据,并标记可以同步的字段及主键信息;
步骤3:源数据库与服务器连接,服务器自动列出源数据库的表数据存储区中可以同步的字段及主键信息;
步骤4:服务器根据可以同步的字段及主键信息生成POJO程序文件,生成的POJO程序文件保存在POJO程序存储区中;
步骤5:服务器根据可以同步的字段及主键信息生成触发器,触发器分为增加触发器、删除触发器、改动触发器;
步骤6:源数据库的表数据存储区中的数据发生变动,源数据库根据变动的数据生成变动记录,将变动记录打包生成推送包,推送包发送至服务器;
步骤7:服务器接收推送包后,发送一个确认包至触发器,触发器接收确认包后,增加触发器、删除触发器、改动触发器依次对推送包进行判断,判断数据的变动操作类型,根据判断结果生成临时表;
步骤8:临时表与POJO程序文件关联,并通过POJO程序文件传输至同步更新装置;
步骤9:同步更新装置接收数据并通过临时表中的数据更新目标数据库。
为了更好的表述本发明方法,以下结合具体实施例,解决两数据库中表数据的同步或数据的备份:
步骤11:某单位建立一种数据库表数据实时推送的系统用于对员工信息进行备份,包括源数据库server1、目标数据库server2、服务器、触发器、同步更新装置;所述的源数据库server1与服务器连接,服务器与同步更新装置连接,同步更新装置与目标数据库server2连接,触发器与服务器连接;所述的源数据库server1包括表数据存储区、POJO程序存储区;
步骤22:在源数据库server1的表数据存储区及目标数据库server2中建立表结构相同的原始表数据,如表1所示,为某单位工作人员信息,其中设置:序号为主键,姓名、身份证、手机号为同步字段。
表1 某单位员工信息
序号 | 姓名 | 身份证 | 手机号 |
1 | 张三 | 330876198210090986 | 13745824524 |
2 | 李四 | 330876195201148791 | 18854866614 |
3 | 王五 | 330876197809309871 | 15825466872 |
本实施例中,根据同步字段及主键信息,POJO程序文件通过应用Myeclipse自动生成,POJO程序文件保存在源数据库server1的POJO程序存储区中;
步骤33:源数据库server1更新数据,更新动作包括三种方式:增加、删除、改动数据,根据更新动作,系统利用java代码程序自动生成三种触发器,包括增加触发器、删除触发器、改动触发器,在本实施例中以增加为更新动作的具体实施例进行详细说明,增加触发器代码如下:
步骤44:此时源数据库server1更新数据,更新后的某单位员工信息如表2所示,所述更新动作为增加:
表2 源数据库server1更新后的某单位员工信息
序号 | 姓名 | 身份证 | 手机号 |
1 | 张三 | 330876198210090986 | 13745824524 |
2 | 李四 | 330876195201148791 | 18854866614 |
3 | 王五 | 330876197809309871 | 15825466872 |
4 | 赵六 | 330876198610198097 | 15056847895 |
步骤55:源数据库server1根据变动数据生成变动记录内容,变动记录内容为表3所示:
表3 变动记录内容
序号 | 姓名 | 身份证 | 手机号 |
4 | 赵六 | 330876198610198097 | 15056847895 |
步骤66:变动记录内容生成为推送包,经由源数据库server1发送至服务器,服务器接收推送包;
步骤77:在本实施例中,触发器分为三种,相应的同步状态标识也包括三种标识:增加同步状态标识、删除同步状态标识、改动同步状态标识,所述的增加同步状态标识可以用inserted来表示,删除同步状态标识可以用deleted来表示,而改动同步状态标识可以认为通过删除-增加两个动作完成,那么所述的改动同步状态标识可以用inserted-deleted来表示;触发器的触发时间为after即事件执行完成后被触发,当服务器接收推送包后立即发送一个确认包至触发器,此时增加触发器把变动记录以表4:临时表的形式储存;
表4 临时表
同步状态标识 | 序号 | 姓名 | 身份证 | 手机号 |
inserted | 4 | 赵六 | 330876198610198097 | 15056847895 |
步骤88:表4通过POJO程序文件传输到同步更新装置;
步骤99:同步更新装置接收表4和POJO程序文件后对目标数据库server2中的数据进行更新,更新结果如表5:
表5 目标数据库server2更新后的某单位员工信息
序号 | 姓名 | 身份证 | 手机号 |
1 | 张三 | 330876198210090986 | 13745824524 |
2 | 李四 | 330876195201148791 | 18854866614 |
3 | 王五 | 330876197809309871 | 15825466872 |
4 | 赵六 | 330876198610198097 | 15056847895 |
本发明提供的数据库表数据实时推送的方法及其系统,在源数据库server1更新后,触发器根据变动记录内容的同步状态标识相应触发,触发器将变动记录内容以临时表的形式储存,临时表通过POJO程序文件发送至同步更新装置,同步更新装置根据临时表中的信息对目标数据库server2进行数据更新与推送,本发明有效减少了数据推送过程中内存的占有率,大大提高了数据推送速度与准确性,降低了系统应用成本。
以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。
Claims (5)
1.一种数据库表数据实时推送的方法,其特征在于包括以下步骤:
(1)源数据库划分为表数据存储区、POJO程序存储区;
(2)源数据库的表数据存储区和目标数据库存入相同的原始数据,并标记可以同步的字段及主键信息;
(3)源数据库与服务器连接,服务器自动列出源数据库的表数据存储区中可以同步的字段及主键信息;
(4)服务器根据可以同步的字段及主键信息生成POJO程序文件,生成的POJO程序文件保存在POJO程序存储区中;
(5)服务器根据可以同步的字段及主键信息生成触发器,触发器分为增加触发器、删除触发器、改动触发器;
(6)源数据库的表数据存储区中的数据发生变动,源数据库根据变动的数据生成变动记录,将变动记录打包生成推送包,推送包发送至服务器;
(7)服务器接收推送包后,发送一个确认包至触发器,触发器接收确认包后,增加触发器、删除触发器、改动触发器依次对推送包进行判断,判断数据的变动操作类型,根据判断结果生成临时表;
(8)临时表与POJO程序文件关联,并通过POJO程序文件传输至同步更新装置;
(9)同步更新装置接收数据并通过临时表中的数据更新目标数据库。
2.根据权利要求1所述的一种数据库表数据实时推送的方法,其特征在于步骤(2)中源数据库和目标数据库标记的可以同步的字段及主键信息相同。
3.一种数据库表数据实时推送的系统,其特征在于包括源数据库、目标数据库、服务器、触发器、同步更新装置;所述的源数据库与服务器连接,服务器与同步更新装置连接,同步更新装置与目标数据库连接,触发器与服务器连接;源数据库将变动的数据发送至服务器,服务器调用触发器生成临时表发送至目标数据库,同步更新装置检测到临时表后更新目标数据库。
4.根据权利要求3所述的一种数据库表数据实时推送的系统,其特征在于所述的源数据库包括表数据存储区、POJO程序存储区。
5.根据权利要求3所述的一种数据库表数据实时推送的系统,其特征在于所述的触发器包括增加触发器、删除触发器、改动触发器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104581993A CN102982126A (zh) | 2012-11-14 | 2012-11-14 | 一种数据库表数据实时推送的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104581993A CN102982126A (zh) | 2012-11-14 | 2012-11-14 | 一种数据库表数据实时推送的方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102982126A true CN102982126A (zh) | 2013-03-20 |
Family
ID=47856144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104581993A Pending CN102982126A (zh) | 2012-11-14 | 2012-11-14 | 一种数据库表数据实时推送的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982126A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559198A (zh) * | 2013-09-27 | 2014-02-05 | 杭州意能软件有限公司 | 一种数据同步的方法及设备 |
CN103605776A (zh) * | 2013-11-28 | 2014-02-26 | 北京国双科技有限公司 | 信息数据库的数据处理方法和装置 |
CN104965880A (zh) * | 2015-06-12 | 2015-10-07 | 小米科技有限责任公司 | 数据库拆分方法及装置 |
CN107122497A (zh) * | 2017-05-25 | 2017-09-01 | 北京微影时代科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN107193736A (zh) * | 2017-05-18 | 2017-09-22 | 恒生电子股份有限公司 | 测试方法、装置、电子设备以及存储介质 |
CN107515933A (zh) * | 2017-08-29 | 2017-12-26 | 平安科技(深圳)有限公司 | 修改源数据库表结构的方法、服务器、系统及存储介质 |
CN107688654A (zh) * | 2017-09-01 | 2018-02-13 | 中国银行股份有限公司 | 基于冗余数据结构的数据处理方法及装置 |
CN108287886A (zh) * | 2018-01-16 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 同步数据变更信息的方法及装置 |
CN108629002A (zh) * | 2018-05-03 | 2018-10-09 | 山东汇贸电子口岸有限公司 | 一种基于kettle的大数据比对方法及装置 |
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN109739936A (zh) * | 2019-01-23 | 2019-05-10 | 杭州数梦工场科技有限公司 | 数据同步方法、系统、服务器及计算机可读存储介质 |
CN109976968A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种获取数据库变化表数据的方法、装置、介质及设备 |
CN111241192A (zh) * | 2019-12-31 | 2020-06-05 | 航天信息软件技术有限公司 | 一种数据同步方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820449A (zh) * | 2010-04-20 | 2010-09-01 | 江苏电力调度通信中心 | 跨安全区应用服务隔离平台 |
CN101923573A (zh) * | 2010-08-09 | 2010-12-22 | 哈尔滨工程大学 | 一种针对数据丢失的数据库数据快速恢复方法 |
CN102571923A (zh) * | 2011-12-13 | 2012-07-11 | 中国电子科技集团公司第十五研究所 | 数据同步系统及方法 |
-
2012
- 2012-11-14 CN CN2012104581993A patent/CN102982126A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820449A (zh) * | 2010-04-20 | 2010-09-01 | 江苏电力调度通信中心 | 跨安全区应用服务隔离平台 |
CN101923573A (zh) * | 2010-08-09 | 2010-12-22 | 哈尔滨工程大学 | 一种针对数据丢失的数据库数据快速恢复方法 |
CN102571923A (zh) * | 2011-12-13 | 2012-07-11 | 中国电子科技集团公司第十五研究所 | 数据同步系统及方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559198A (zh) * | 2013-09-27 | 2014-02-05 | 杭州意能软件有限公司 | 一种数据同步的方法及设备 |
CN103605776A (zh) * | 2013-11-28 | 2014-02-26 | 北京国双科技有限公司 | 信息数据库的数据处理方法和装置 |
CN104965880A (zh) * | 2015-06-12 | 2015-10-07 | 小米科技有限责任公司 | 数据库拆分方法及装置 |
CN107193736A (zh) * | 2017-05-18 | 2017-09-22 | 恒生电子股份有限公司 | 测试方法、装置、电子设备以及存储介质 |
CN107122497A (zh) * | 2017-05-25 | 2017-09-01 | 北京微影时代科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN107515933A (zh) * | 2017-08-29 | 2017-12-26 | 平安科技(深圳)有限公司 | 修改源数据库表结构的方法、服务器、系统及存储介质 |
CN107688654A (zh) * | 2017-09-01 | 2018-02-13 | 中国银行股份有限公司 | 基于冗余数据结构的数据处理方法及装置 |
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
US11500903B2 (en) | 2017-09-08 | 2022-11-15 | Guangdong Construction Information Center | Generic multi-source heterogeneous large-scale data synchronization client-server method |
CN109976968A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种获取数据库变化表数据的方法、装置、介质及设备 |
CN108287886A (zh) * | 2018-01-16 | 2018-07-17 | 阿里巴巴集团控股有限公司 | 同步数据变更信息的方法及装置 |
CN108287886B (zh) * | 2018-01-16 | 2022-04-08 | 创新先进技术有限公司 | 同步数据变更信息的方法及装置 |
CN108629002A (zh) * | 2018-05-03 | 2018-10-09 | 山东汇贸电子口岸有限公司 | 一种基于kettle的大数据比对方法及装置 |
CN109739936A (zh) * | 2019-01-23 | 2019-05-10 | 杭州数梦工场科技有限公司 | 数据同步方法、系统、服务器及计算机可读存储介质 |
CN111241192A (zh) * | 2019-12-31 | 2020-06-05 | 航天信息软件技术有限公司 | 一种数据同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102982126A (zh) | 一种数据库表数据实时推送的方法及其系统 | |
US10169606B2 (en) | Verifiable data destruction in a database | |
CN107402963B (zh) | 搜索数据的构建方法、增量数据的推送方法及装置和设备 | |
US20170213209A1 (en) | Enterprise blockchains and transactional systems | |
US8086566B2 (en) | Transaction consistent content replication | |
CN107835983A (zh) | 使用一致的数据库快照在分布式数据库中进行备份和还原 | |
US10067947B2 (en) | Synchronization of a server side deduplication cache with a client side deduplication cache | |
CN103544153B (zh) | 一种基于数据库的数据更新方法和系统 | |
US20140019421A1 (en) | Shared Architecture for Database Systems | |
CN103092903A (zh) | 数据库日志并行化 | |
CN103455557B (zh) | 一种基于日志的结构化数据同步方法 | |
CN103582875A (zh) | 用于多源恢复的方法及装置 | |
CN103902698A (zh) | 一种数据存储系统和存储方法 | |
CN103699557B (zh) | 报表处理方法及系统 | |
CN104520822A (zh) | 数据存储应用编程界面 | |
CN102207951A (zh) | 分布式数据归档系统和/或方法 | |
CN103036956A (zh) | 一种分布式组态化海量数据归档系统及实现方法 | |
CN102934115A (zh) | 分布式目录、数据库和索引 | |
WO2007059534A3 (en) | Distributed transaction history management system | |
CN104834700A (zh) | 一种基于轨迹变更的移动数据增量捕获方法 | |
US20210286799A1 (en) | Automated transaction engine | |
CN111367994A (zh) | 数据库增量数据同步备份方法及系统 | |
CN104765651A (zh) | 一种数据处理方法和装置 | |
CN112612775A (zh) | 一种数据存储方法、装置、计算机设备及存储介质 | |
CN102073690B (zh) | 一种支持历史Key信息的内存数据库的构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130320 |