[发明专利]一种数据库单向同步方法在审
申请号: | 201610295087.9 | 申请日: | 2016-05-06 |
公开(公告)号: | CN107346314A | 公开(公告)日: | 2017-11-14 |
发明(设计)人: | 梁亮 | 申请(专利权)人: | 银联国际有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 中国专利代理(香港)有限公司72001 | 代理人: | 臧霁晨,付曼 |
地址: | 200120 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 单向 同步 方法 | ||
技术领域
本发明涉及数据库的数据同步方法,更具体地是涉及基于Spring JDBC的可配置化的异构关系型数据库单向同步方法。
背景技术
关于数据库同步,各大数据库厂商均有其专用产品。如Oracle的Data Guard、Golden Gate。但它们主要应用于数据库表结构数据一致的情形。不能实现不同表结构数据库之间的数据同步。通常的代码实现往往与业务逻辑挂钩,不具备通用性和灵活性。
在企业应用中,经常存在着一份基础数据被不同系统使用的情形。如果各个系统都需要对这些基础数据进行维护,那么维护的工作量将会变得十分沉重,且数据的一致性难以得到保障。为了减轻维护工作量及保障数据一致性,往往需要以某个库数据为准,其它数据库如共享该基础数据,则将该部分数据同步过去。
发明内容
鉴于上述问题,本发明提出一种只需要进行简单配置就能够实现不同类型数据库、不同结构表数据库间的数据库单向同步方法。
本发明的数据库间的数据库单向同步方法,其特征在于,该方法包括下述步骤:
源数据库查询步骤:查询出源数据库中的待同步数据;
第一记录比较步骤:检查待同步记录在目标数据库中是否存在,根据检查结果进行更新操作、或者插入操作或者不进行同步操作;
目标数据库查询步骤:查询出目标数据库中的现有数据;以及
第二记录比较步骤:检查目标数据库中的数据在源数据库中是否存在,根据检查结果进行删除该记录或者标柱该记录或者不进行同步操作。
优选地,将源数据库和目标数据库中的每一行记录映射成一个Map对象。
优选地,将源数据库和目标数据库的数据库表字段作为所述Map对象的Key,将该行中表字段的值作为相应Key的Value。
优选地,在所述源数据库查询步骤中,根据 “源库待同步表表名”、“源表待同步字段”查询出源数据库中的待同步数据,其中,“源库待同步表表名”、“源表待同步字段”为可配置参数。
优选地,在所述第一记录比较步骤中包括下述子步骤:
遍历源数据库待同步数据记录,根据“源表记录唯一标识字段”的值在目标数据库中查询“目标表记录唯一标识字段”具有相同的值的记录;
如果在目标数据库中存在该记录,则比较“目标表待同步字段”的值和“源表待同步字段”的值是否一致;
如果目标数据库存在该记录并且与源数据库中的该记录一致,则不需要执行同步操作,如果存在该记录但不完全一致,则根据源数据库进行目标数据库的更新操作,如果不存在该记录,则根据规定同步方式将源数据库中的该记录更新到目标数据库。
优选地,所述规定同步方式包括下述方式之一:
存量更新、增量更新、强同步、弱同步。
优选地,所述第二记录比较步骤中包括下述子步骤:
查询目标数据库中的目标表数据;
查询源数据库中的源表数据;
比较两者之间的差异,其中,如果源表中存在该记录,则不进行任何操作,如果在源表中不存在该记录则在目标表中删除该数据或者对该记录进行标注。
优选地,在查询目标数据库中的目标表数据的子步骤中,根据“目标表名”、“目标表记录唯一标识字段”查询出目标数据库中的数据记录。
优选地,在查询源数据库中的源表数据的子步骤中,遍历目标表各数据记录,根据记录的“目标表记录唯一标识字段”的值,在源表中查询“源表记录唯一标识字段”具有相同值的记录。
优选地,在比较两者之间的差异的子步骤中,如果源表中存在该记录,则不进行任何操作,如果在源表中不存在该记录的情况下,若所述规定同步方式为强同步,则删除该记录,若所述规定同步方式为弱同步,则更新目标表中该记录的“目标表标记字段”状态为删除状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于银联国际有限公司,未经银联国际有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610295087.9/2.html,转载请声明来源钻瓜专利网。