一种不同数据库间数据同步的方法和系统技术方案

技术编号:13684014 阅读:56 留言:0更新日期:2016-09-08 19:42
本发明专利技术涉及一种不同数据库间数据同步的方法和系统。其中方法包括步骤S1,读取源数据库待同步表数据到第一文本文件,以及读取目的数据库同名待同步表数据到第二文本文件;步骤S2,将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;步骤S3,对所述比较结果进行数据同步,得到数据同步结果;步骤S4,输出所述数据同步结果。本发明专利技术提供了一种基于ORACLE PROC语言第四动态SQL实现的不同ORACLE数据库之间表数据的同步方案,可以根据生产需要针对时间段、全量和表名三个维度进行同步,并能够扩展为多进程,在没有表信息的前提下,只需要已知待同步的表名称即可完成同步,能够实现不同的同步逻辑、满足不同的业务场景。

【技术实现步骤摘要】

本专利技术涉及数据库同步领域,尤其涉及一种不同数据库间数据同步的方法和系统
技术介绍
对于大型IT系统而言,全局配置数据往往是在一个配置数据管理系统生成,然后同步到其他业务系统中使用,该类IT系统存在数据模型复杂、数据量大的特点,导致系统配置表多,需要建设局数据管理系统以保证配置数据的准确性和可控性,在局数据管理系统中进行数据配置,然后同步到其它业务系统,同步要求数据的准确性、及时性、同步过程的可跟踪性。现有的数据库同步方案主要集中在下述几种:第一,基于DBLINK的级别数据同步,需要在目标库建立DBLINK,安全性不高且容易导致被链接数据库重启失败;第二,基于日志的同步,一般是ORACLE数据库自带的热备同步工具,属于重量级方案,机制过于复杂,且对双方数据库的性能都有影响;第三,由第三方提供的同步工具,这类工具为了兼容多种类型的数据库,设计都比较复杂,也属于重量级方案;本专利技术提供的是一种轻量级的数据库同步方案,源代码较少且对系统依赖性小,具有较好的应用前景。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术的不足,提供一种不同数据库间数据同步的方法和系统。本专利技术解决上述技术问题的技术方案如下:一种不同数据库间数据同步的方法,包括如下步骤:步骤S1,读取源数据库待同步表数据到第一文本文件,以及读取目的数
据库同名待同步表数据到第二文本文件;步骤S2,将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;步骤S3,对所述比较结果进行数据同步,得到数据同步结果;步骤S4,输出所述数据同步结果。本专利技术的有益效果是:本专利技术提供了一种基于ORACLE PROC语言第四动态SQL实现的不同ORACLE数据库之间表数据的同步方案,可以根据生产需要针对时间段、全量和表名三个维度进行同步,并能够扩展为多进程,在没有表信息的前提下,只需要已知待同步的表名称即可完成同步,能够实现不同的同步逻辑、满足不同的业务场景。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步地,步骤S1中读取源数据库待同步表数据到第一文本文件以及读取目的数据库同名待同步表数据到第二文本文件的具体实现为:使用ORACLE PROC语言第四动态SQL将源数据库待同步表数据读取到第一文本文件;使用ORACLE PROC语言第四动态SQL将目的数据库同名待同步表数据读取到第二文本文件。采用上述进一步方案的有益效果是:采用第四动态SQL实现不同ORACLE数据库之间表数据的同步,该方法具有高度的灵活性和良好的通用性,易于扩展和满足不同系统的应用。进一步地,步骤S2包括如下步骤:步骤S21,从源数据库查询系统对象信息表以获取源数据库待同步表对应的唯一索引字段;步骤S22,根据唯一索引字段,将第一文本文件和第二文本文件进行逐行比对,得到比较结果。采用上述进一步方案的有益效果是:采用唯一索引字段,能够将实现表数据的逐行比对,实现方法简便,能够达到轻量级的编程效果。进一步地,步骤S3包括如下步骤:步骤S31,从时间段、全量和表名三个维度的任一维度获取源数据库待同步表集合;若从时间段维度获取源数据库待同步表的表名,则关联源数据库待同步表集合和ORACLE数据库系统对象表ALL_OBJECTS的最近操作时间字段LAST_DDL_TIME,将在设定天数内有操作的表作为源数据库待同步表集合;若从全量维度获取源数据库待同步表的表名,则直接得到源数据库待同步表集合;若从表名维度获取源数据库待同步表的表名,则将程序参数作为源数据库待同步表,得到源数据库待同步表集合;步骤S32,将源数据库待同步表集合中每一个单表按照表名称首字母顺序,进行数据同步。采用上述进一步方案的有益效果是:通过从三个维度的任一维度获取待同步数据表的表名,可以提高同步效率,使得数据同步更具灵活性。进一步地,步骤S3中,对所述比较结果进行数据同步的具体实现为:若第一文本文件内包含的数据第二文本文件内不包含时,则目的数据库对照源数据库进行数据同步,执行插入操作;若第一文本文件内包含的数据第二文本文件内也包含,但两者数据不一致时,则目的数据库对照源数据库进行数据同步,执行更新操作;若第一文本文件内包含的数据第二文本文件内也包含,且两者数据一致时,则目的数据库和源数据库不进行任何操作。采用上述进一步方案的有益效果是:数据同步前,针对目的表数据和源表数据的不同情况,进行智能化判断,减少了同步的数据量,提高了同步效
率。本专利技术解决上述技术问题的另一种技术方案如下:一种不同数据库间数据同步的系统,包括数据读取模块、数据比较模块、数据同步模块和输出模块;所述数据读取模块,用于读取源数据库待同步表数据到第一文本文件,以及读取目的数据库同名待同步表数据到第二文本文件;所述数据比较模块,用于将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;所述数据同步模块,用于对所述比较结果进行数据同步,得到数据同步结果;所述输出模块,用于输出所述数据同步结果。本专利技术的有益效果是:本专利技术提供了一种基于ORACLE PROC语言第四动态SQL实现的不同ORACLE数据库之间表数据的同步方案,可以根据生产需要针对时间段、全量和表名三个维度进行同步,并能够扩展为多进程,在没有表信息的前提下,只需要已知待同步的表名称即可完成同步,能够实现不同的同步逻辑、满足不同的业务场景。进一步地,所述数据读取模块读取源数据库待同步表数据到第一文本文件以及读取目的数据库同名待同步表数据到第二文本文件的具体实现为:使用ORACLE PROC语言第四动态SQL将源数据库待同步表数据读取到第一文本文件;使用ORACLE PROC语言第四动态SQL将目的数据库同名待同步表数据读取到第二文本文件。采用上述进一步方案的有益效果是:采用第四动态SQL实现不同ORACLE数据库之间表数据的同步,该方法具有高度的灵活性和良好的通用性,易于扩展和满足不同系统的应用。进一步地,所述数据比较模块包括:获取索引字段单元,用于从源数据库查询系统对象信息表以获取源数据库待同步表对应的唯一索引字段;逐行比较单元,用于根据唯一索引字段,将第一文本文件和第二文本文件进行逐行比对,得到比较结果。采用上述进一步方案的有益效果是:采用唯一索引字段,能够将实现表数据的逐行比对,实现方法简便,能够达到轻量级的编程效果。进一步地,所述数据同步模块包括:获取表名单元,用于从时间段、全量和表名三个维度的任一维度获取源数据库待同步表集合;若从时间段维度获取源数据库待同步表的表名,则关联源数据库待同步表集合和ORACLE数据库系统对象表ALL_OBJECTS的最近操作时间字段LAST_DDL_TIME,将在设定天数内有操作的表作为源数据库待同步表集合;若从全量维度获取源数据库待同步表的表名,则直接得到源数据库待同步表集合;若从表名维度获取源数据库待同步表的表名,则将程序参数作为源数据库待同步表,得到源数据库待同步表集合;同步表单元,用于将源数据库待同步表集合中每一个单表按照表名称首字母顺序,进行数据同步。采用上述进一步方案的有益效果是:通过从三个维度的任一维度获取待同步数据表的表名,可以提高同步效率,使得数据同步更具灵活性。进一步地,所本文档来自技高网
...

【技术保护点】
一种不同数据库间数据同步的方法,其特征在于,包括如下步骤:步骤S1,读取源数据库待同步表数据到第一文本文件,以及读取目的数据库同名待同步表数据到第二文本文件;步骤S2,将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;步骤S3,对所述比较结果进行数据同步,得到数据同步结果;步骤S4,输出所述数据同步结果。

【技术特征摘要】
1.一种不同数据库间数据同步的方法,其特征在于,包括如下步骤:步骤S1,读取源数据库待同步表数据到第一文本文件,以及读取目的数据库同名待同步表数据到第二文本文件;步骤S2,将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;步骤S3,对所述比较结果进行数据同步,得到数据同步结果;步骤S4,输出所述数据同步结果。2.根据权利要求1所述的一种不同数据库间数据同步的方法,其特征在于,步骤S1中读取源数据库待同步表数据到第一文本文件以及读取目的数据库同名待同步表数据到第二文本文件的具体实现为:使用ORACLE PROC语言第四动态SQL将源数据库待同步表数据读取到第一文本文件;使用ORACLE PROC语言第四动态SQL将目的数据库同名待同步表数据读取到第二文本文件。3.根据权利要求1所述的一种不同数据库间数据同步的方法,其特征在于,步骤S2包括如下步骤:步骤S21,从源数据库查询系统对象信息表以获取源数据库待同步表对应的唯一索引字段;步骤S22,根据唯一索引字段,将第一文本文件和第二文本文件进行逐行比对,得到比较结果。4.根据权利要求1所述的一种不同数据库间数据同步的方法,其特征在于,步骤S3包括如下步骤:步骤S31,从时间段、全量和表名三个维度的任一维度获取源数据库待
\t同步表集合;若从时间段维度获取源数据库待同步表的表名,则关联源数据库待同步表集合和ORACLE数据库系统对象表ALL_OBJECTS的最近操作时间字段LAST_DDL_TIME,将在设定天数内有操作的表作为源数据库待同步表集合;若从全量维度获取源数据库待同步表的表名,则直接得到源数据库待同步表集合;若从表名维度获取源数据库待同步表的表名,则将程序参数作为源数据库待同步表,得到源数据库待同步表集合;步骤S32,将源数据库待同步表集合中每一个单表按照表名称首字母顺序,进行数据同步。5.根据权利要求1-4任一项所述的一种不同数据库间数据同步的方法,其特征在于,步骤S3中,对所述比较结果进行数据同步的具体实现为:若第一文本文件内包含的数据第二文本文件内不包含时,则目的数据库对照源数据库进行数据同步,执行插入操作;若第一文本文件内包含的数据第二文本文件内也包含,但两者数据不一致时,则目的数据库对照源数据库进行数据同步,执行更新操作;若第一文本文件内包含的数据第二文本文件内也包含,且两者数据一致时,则目的数据库和源数据库不进行任何操作。6.一种不同数据库间数据同步的系统,其特征在于,包括数据读取模块、数据...

【专利技术属性】
技术研发人员:李波
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

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

1