CN105930493A - 一种不同数据库间数据同步的方法和系统 - Google Patents

一种不同数据库间数据同步的方法和系统 Download PDF

Info

Publication number
CN105930493A
CN105930493A CN201610291031.6A CN201610291031A CN105930493A CN 105930493 A CN105930493 A CN 105930493A CN 201610291031 A CN201610291031 A CN 201610291031A CN 105930493 A CN105930493 A CN 105930493A
Authority
CN
China
Prior art keywords
data
synchronized
text
source database
chronization
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
Application number
CN201610291031.6A
Other languages
English (en)
Inventor
李波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201610291031.6A priority Critical patent/CN105930493A/zh
Publication of CN105930493A publication Critical patent/CN105930493A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种不同数据库间数据同步的方法和系统
技术领域
本发明涉及数据库同步领域,尤其涉及一种不同数据库间数据同步的方法和系统。
背景技术
对于大型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,将在设定天数内有操作的表作为源数据库待同步表集合;
若从全量维度获取源数据库待同步表的表名,则直接得到源数据库待同步表集合;
若从表名维度获取源数据库待同步表的表名,则将程序参数作为源数据库待同步表,得到源数据库待同步表集合;
同步表单元,用于将源数据库待同步表集合中每一个单表按照表名称首字母顺序,进行数据同步。
采用上述进一步方案的有益效果是:通过从三个维度的任一维度获取待同步数据表的表名,可以提高同步效率,使得数据同步更具灵活性。
进一步地,所述数据同步模块用于对所述比较结果进行数据同步的具体实现为:
若第一文本文件内包含的数据第二文本文件内不包含时,则目的数据库对照源数据库进行数据同步,执行插入操作;
若第一文本文件内包含的数据第二文本文件内也包含,但两者数据不一致时,则目的数据库对照源数据库进行数据同步,执行更新操作;
若第一文本文件内包含的数据第二文本文件内也包含,且两者数据一致时,则目的数据库和源数据库不进行任何操作。
采用上述进一步方案的有益效果是:数据同步前,针对目的表数据和源表数据的不同情况,进行智能化判断,减少了同步的数据量,提高了同步效率。
附图说明
图1为本发明所述一种不同数据库间数据同步的方法流程图;
图2为本发明所述一种不同数据库间数据同步的系统结构图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明一种不同数据库间数据同步的方法流程图。
如图1所示,一种不同数据库间数据同步的方法,包括如下步骤:
步骤S1,读取源数据库待同步表数据到第一文本文件,以及读取目的数据库同名待同步表数据到第二文本文件;
在本发明的具体实施例中,读取源数据库待同步表数据到第一文本文件以及读取目的数据库同名待同步表数据到第二文本文件的具体实现为:使用ORACLE PROC语言第四动态SQL将源数据库待同步表数据读取到第一文本文件;使用ORACLE PROC语言第四动态SQL将目的数据库同名待同步表数据读取到第二文本文件。
步骤S2,将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;
在本发明的具体实施例中,从源数据库查询系统对象信息表以获取源数据库待同步表对应的唯一索引字段;通过关联ORACLE索引字段对象表USER_IND_COLUMNS和索引对象表USER_INDEXES获取待同步表的唯一索引字段COLUMN_NAME,例如COLUMN_1\COLUMN_2。
在本发明的具体实施例中,根据唯一索引字段,将第一文本文件和第二文本文件进行逐行比对,得到比较结果。假定全表字段为(COLUMN_1\COLUMN_2\COLUMN_3\COLUMN_4),逐行读取第一文本文件中记录,与第二文本文件中记录进行逐行比对,当COLUMN_1\COLUMN_2相等时比对COLUMN_3\COLUMN_4,区分不同比对结果更新目的表,当第一文本文件具有的数据第二文本文件中没有时,则进行增加操作;当第一文本文件和第二文本文件都具有数据,但不相同时,则进行修改操作;当第一文本文件不具有,但第二文本文件具有数据时,则进行删除操作。
步骤S3,对所述比较结果进行数据同步,得到数据同步结果;
在本发明的具体实施例中,从时间段、全量和表名三个维度的任一维度获取源数据库待同步表集合;若从时间段维度获取源数据库待同步表的表名,则关联源数据库待同步表集合和ORACLE数据库系统对象表ALL_OBJECTS的最近操作时间字段LAST_DDL_TIME,将在设定天数内有操作的表作为源数据库待同步表集合;若从全量维度获取源数据库待同步表的表名,则直接得到源数据库待同步表集合;若从表名维度获取源数据库待同步表的表名,则将程序参数,即本例样表USER INFO表,作为源数据库待同步表,得到源数据库待同步表集合;将源数据库待同步表集合中每一个单表按照表名称首字母顺序,进行数据同步。
对所述比较结果进行数据同步的具体实现为:若第一文本文件内包含的数据第二文本文件内不包含时,则目的数据库对照源数据库进行数据同步,执行插入操作;若第一文本文件内包含的数据第二文本文件内也包含,但两者数据不一致时,则目的数据库对照源数据库进行数据同步,执行更新操作;若第一文本文件内包含的数据第二文本文件内也包含,且两者数据一致时,则目的数据库和源数据库不进行任何操作。
在本发明的具体实施例中,对每一个单表进行数据同步包括:从ORACLE表字段描述表ALL_TAB_COLUMNS带入目的表名获取该目的表的全部字段;解析已获取的目的表的全部字段;从源表数据获取数据,并存储到单行记录结构体COLUMN.DATA;针对获取的所述单行记录结构体COLUMN.DATA进行拆串处理,获取到表数据,并针对日期类型做格式转换,再将全部记录数据插入到目的数据库。
步骤S4,输出所述数据同步结果。
图2为本发明一种不同数据库间数据同步的系统结构图。
如图2所示,一种不同数据库间数据同步的系统,包括数据读取模块、数据比较模块、数据同步模块和输出模块;
所述数据读取模块,用于读取源数据库待同步表数据到第一文本文件,以及读取目的数据库同名待同步表数据到第二文本文件;
在本发明的具体实施例中,所述数据读取模块读取源数据库待同步表数据到第一文本文件以及读取目的数据库同名待同步表数据到第二文本文件的具体实现为:使用ORACLE PROC语言第四动态SQL将源数据库待同步表数据读取到第一文本文件;使用ORACLE PROC语言第四动态SQL将目的数据库同名待同步表数据读取到第二文本文件。
所述数据比较模块,用于将所述第一文本文件和所述第二文本文件根据唯一索引方式进行数据比较,得到比较结果;
在本发明的具体实施例中,获取索引字段单元,用于从源数据库查询系统对象信息表以获取源数据库待同步表对应的唯一索引字段;逐行比较单元,用于根据唯一索引字段,将第一文本文件和第二文本文件进行逐行比对,对目的表数据进行增加、删除或修改,得到比较结果。
所述数据同步模块,用于对所述比较结果进行数据同步,得到数据同步结果;
在本发明的具体实施例中,所述数据同步模块包括:获取表名单元,用于从时间段、全量和表名三个维度的任一维度获取源数据库待同步表集合;
若从时间段维度获取源数据库待同步表的表名,则关联源数据库待同步表集合和ORACLE数据库系统对象表ALL_OBJECTS的最近操作时间字段LAST_DDL_TIME,将在设定天数内有操作的表作为源数据库待同步表集合;若从全量维度获取源数据库待同步表的表名,则直接得到源数据库待同步表集合;若从表名维度获取源数据库待同步表的表名,则将程序参数,即本例样表USER INFO表作为源数据库待同步表,得到源数据库待同步表集合;同步表单元,用于将源数据库待同步表集合中每一个单表按照表名称首字母顺序,进行数据同步。
在本发明的具体实施例中,所述数据同步模块用于对所述比较结果进行数据同步的具体实现为:若第一文本文件内包含的数据第二文本文件内不包含时,则目的数据库对照源数据库进行数据同步,执行插入操作;若第一文本文件内包含的数据第二文本文件内也包含,但两者数据不一致时,则目的数据库对照源数据库进行数据同步,执行更新操作;若第一文本文件内包含的数据第二文本文件内也包含,且两者数据一致时,则目的数据库和源数据库不进行任何操作。
所述输出模块,用于输出所述数据同步结果。
实施例:四川广电从基础域系统同步配置表到BOSS业务域的过程:
该项目要求程序具备三种执行方式:
1、针对表名同步:适用场景是营业员配置了一条配置数据之后,要立即适用该配置数据,操作方式:synTable dblink_src dblink_aim tal e_name;其中dblink是数据库连接串、tale_name是要同步的表名称;
2、按照时间段同步:适用场景是某期限(如一周内)内营业员集中配置了一批配置数据(涉及多表多时间段)后,需要把这一周内操作的所有表做同步,操作方式:synTable dblink_src dblink_aim 7;其中7就是到系统时间的时间间隔;
3、全量同步:适用场景是系统新上线,需要把基础域的全部配置表(大概300张表)数据同步到生产域,操作方式:synTable dblink_src dblink_aimall;其中all表述为全部表;
针对上述三种操作过程如下:
1)根据上述三种操作类型确定待处理的表名称列表,如:
a)表名:假定表名为sparam
执行语句select table_name from SSYNTABLELIST where table_name=’sparam’,读取的待处理表名链表为table_name_list=”sparam”—其中sparam为待同步表名称;
b)时间段:假定为7天
执行语句select table_name from SSYNTABLELIST where table_name in(select object_name from all_objects where to_date
(to_char(sysdate,'yyyymmdd'),'yyyymmdd')-to_date(to_char(last_ddl_time,'yyyymmdd'),'yyyymmdd')<=7)
读取的待处理表名链表为table_name_list=”sparam,smonthcode,
sconfigcode”—其中sparam,smonthcode,sconfigcode为近七天内有操作的待同步的三张表名称;
c)全量:
执行语句select table_name from SSYNTABLELIST
读取的待处理表名链表为table_name_list=”sparam,smonthcode,sconfigcode,screditcode,”—其中sparam,smonthcode,sconfigcode,screditcode,为待同步的全量表名称;
2)同步表名:以table_name_list=”sparam”为例
a)从ORACLE系统表all_tab_columns获取sparam表的列信息;
SELECT column_name,data_type,nvl(data_precision,0),
nvl(data_scale,0),
nvl(data_length,0)FROM all_tab_columns WHERE table_name=upper('sparam')and owner=upper('DBACCADM')ORDER BY column_id
b)使用ORACLE第四动态SQL语法,从源数据库dblink_src获取sparam表数据,并根据该表的列信息进行数据的封装,以及对空数据的处理;
1.申请动态描述变量'out':
2.解析'out'行记录结构拆解出列记录并存储到内存结构体column中:
EXEC SQL FETCH c3 INTO DESCRIPTOR'out';--读取一行记录
EXEC SQL GET DESCRIPTOR'out'VALUE:n:column[n-1].data=DATA;--拆解列记录
c)把上述中已解析的column数据插入到目的数据库dblink_aim的sparam表中,如果配置了按照索引比对的话,需要增加读取目的数据库表并核对更新的过程;
3)同步时间段内表:拆解待同步表数组table_name_list,分别对三张表sparam,smonthcode,sconfigcode进行同步,同步单表的过程与同步单表的过程一致,不再赘述;
4)同步全量表:拆解待同步表数组table_name_list,分别对多张单表sparam,smonthcode,sconfigcode,screditcode,进行同步;
本实施例中在只知道表名而不知道表结构的情况下即可完成多个表的数据同步,后续即使该表的表结构改变了,也不需要修改代码程序,依然可以正常运转,减少了开发及维护成本;
本实施例也可以在unix定时任务crontab中配置定时执行,定时完成特定条件(表名、时间段、全量)的数据同步工作,减少人为操作及维护成本。
在本说明书的描述中,参考术语“实施例一”、“实施例二”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610291031.6A CN105930493A (zh) 2016-05-04 2016-05-04 一种不同数据库间数据同步的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610291031.6A CN105930493A (zh) 2016-05-04 2016-05-04 一种不同数据库间数据同步的方法和系统

Publications (1)

Publication Number Publication Date
CN105930493A true CN105930493A (zh) 2016-09-07

Family

ID=56835105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610291031.6A Pending CN105930493A (zh) 2016-05-04 2016-05-04 一种不同数据库间数据同步的方法和系统

Country Status (1)

Country Link
CN (1) CN105930493A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446406A (zh) * 2016-09-23 2017-02-22 天津大学 一种将中文语句转化为人类口型的仿真系统及仿真方法
CN106649756A (zh) * 2016-12-26 2017-05-10 北京奇虎科技有限公司 日志同步方法及装置
CN107103067A (zh) * 2017-04-18 2017-08-29 北京思特奇信息技术股份有限公司 一种基于搜索引擎的数据同步方法及系统
CN107402804A (zh) * 2017-07-31 2017-11-28 广东欧珀移动通信有限公司 后台进程管控方法、装置、存储介质及电子设备
CN107633101A (zh) * 2017-10-27 2018-01-26 安徽硕威智能科技有限公司 一种学习信息纠错处理方法和信息处理系统
CN109101609A (zh) * 2018-08-03 2018-12-28 成都福立盟科技有限公司 一种不同数据库的数据同步方法
CN109359160A (zh) * 2018-10-12 2019-02-19 平安科技(深圳)有限公司 数据同步方法、装置、计算机设备及存储介质
CN110019507A (zh) * 2017-09-21 2019-07-16 北京国双科技有限公司 数据同步的方法及装置
CN110059135A (zh) * 2019-04-12 2019-07-26 阿里巴巴集团控股有限公司 一种数据同步方法和装置
CN110069489A (zh) * 2017-10-17 2019-07-30 株式会社日立制作所 一种信息处理方法、装置、设备及计算机可读存储介质
CN110851421A (zh) * 2019-11-06 2020-02-28 珠海格力电器股份有限公司 减少数据迁移耗时的方法、装置、存储介质及电子设备
CN113127453A (zh) * 2021-06-10 2021-07-16 平安普惠企业管理有限公司 Oracle数据跨数据库迁移的方法、装置、设备和存储介质
CN113220785A (zh) * 2021-05-21 2021-08-06 上海申铁信息工程有限公司 一种基于主键比对的数据库变更记录同步方法及装置
CN113688147A (zh) * 2021-09-07 2021-11-23 中国银行股份有限公司 一种数据处理方法及系统
CN116436836A (zh) * 2023-06-13 2023-07-14 阿里巴巴(中国)有限公司 域名数据同步检测方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080361B2 (en) * 2001-07-30 2006-07-18 Lockheed Martin Corporation Process for generating enterprise java bean components from an SQL database
CN102622415A (zh) * 2012-02-20 2012-08-01 南方电网科学研究院有限责任公司 一种用于多平台的电能质量监测数据同步传输方法
CN104572672A (zh) * 2013-10-15 2015-04-29 北大方正集团有限公司 异构数据库的同步方法和应用系统
CN103136231B (zh) * 2011-11-25 2016-03-02 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080361B2 (en) * 2001-07-30 2006-07-18 Lockheed Martin Corporation Process for generating enterprise java bean components from an SQL database
CN103136231B (zh) * 2011-11-25 2016-03-02 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统
CN102622415A (zh) * 2012-02-20 2012-08-01 南方电网科学研究院有限责任公司 一种用于多平台的电能质量监测数据同步传输方法
CN104572672A (zh) * 2013-10-15 2015-04-29 北大方正集团有限公司 异构数据库的同步方法和应用系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
程群梅 等: "Oracle 中动态SQL方法四在数据同步中的应用", 《计算机应用与软件》 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446406A (zh) * 2016-09-23 2017-02-22 天津大学 一种将中文语句转化为人类口型的仿真系统及仿真方法
CN106649756A (zh) * 2016-12-26 2017-05-10 北京奇虎科技有限公司 日志同步方法及装置
CN107103067A (zh) * 2017-04-18 2017-08-29 北京思特奇信息技术股份有限公司 一种基于搜索引擎的数据同步方法及系统
CN107402804B (zh) * 2017-07-31 2019-12-10 Oppo广东移动通信有限公司 后台进程管控方法、装置、存储介质及电子设备
CN107402804A (zh) * 2017-07-31 2017-11-28 广东欧珀移动通信有限公司 后台进程管控方法、装置、存储介质及电子设备
CN110019507A (zh) * 2017-09-21 2019-07-16 北京国双科技有限公司 数据同步的方法及装置
CN110019507B (zh) * 2017-09-21 2021-06-08 北京国双科技有限公司 数据同步的方法及装置
CN110069489B (zh) * 2017-10-17 2023-01-31 株式会社日立制作所 一种信息处理方法、装置、设备及计算机可读存储介质
CN110069489A (zh) * 2017-10-17 2019-07-30 株式会社日立制作所 一种信息处理方法、装置、设备及计算机可读存储介质
CN107633101A (zh) * 2017-10-27 2018-01-26 安徽硕威智能科技有限公司 一种学习信息纠错处理方法和信息处理系统
CN109101609A (zh) * 2018-08-03 2018-12-28 成都福立盟科技有限公司 一种不同数据库的数据同步方法
CN109359160A (zh) * 2018-10-12 2019-02-19 平安科技(深圳)有限公司 数据同步方法、装置、计算机设备及存储介质
CN110059135A (zh) * 2019-04-12 2019-07-26 阿里巴巴集团控股有限公司 一种数据同步方法和装置
CN110059135B (zh) * 2019-04-12 2024-05-17 创新先进技术有限公司 一种数据同步方法和装置
CN110851421A (zh) * 2019-11-06 2020-02-28 珠海格力电器股份有限公司 减少数据迁移耗时的方法、装置、存储介质及电子设备
CN110851421B (zh) * 2019-11-06 2022-04-08 珠海格力电器股份有限公司 减少数据迁移耗时的方法、装置、存储介质及电子设备
CN113220785A (zh) * 2021-05-21 2021-08-06 上海申铁信息工程有限公司 一种基于主键比对的数据库变更记录同步方法及装置
CN113127453A (zh) * 2021-06-10 2021-07-16 平安普惠企业管理有限公司 Oracle数据跨数据库迁移的方法、装置、设备和存储介质
CN113688147A (zh) * 2021-09-07 2021-11-23 中国银行股份有限公司 一种数据处理方法及系统
CN113688147B (zh) * 2021-09-07 2024-02-09 中国银行股份有限公司 一种数据处理方法及系统
CN116436836A (zh) * 2023-06-13 2023-07-14 阿里巴巴(中国)有限公司 域名数据同步检测方法、装置及设备
CN116436836B (zh) * 2023-06-13 2023-09-01 阿里巴巴(中国)有限公司 域名数据同步检测方法、装置及设备

Similar Documents

Publication Publication Date Title
CN105930493A (zh) 一种不同数据库间数据同步的方法和系统
CN103761318B (zh) 一种关系型异构数据库数据同步的方法及系统
CN103631907B (zh) 一种将关系型数据迁移至HBase的方法及系统
CN101236554B (zh) 一种数据库海量数据比对的方法
CN110209728B (zh) 一种分布式异构数据库同步方法、电子设备及存储介质
CN104899295B (zh) 一种异构数据源数据关联分析方法
US20190188302A1 (en) Group-by-time operations with returned time context
CN105279285B (zh) 一种关系型数据库与非关系型数据库的同步系统及方法
CN104866593A (zh) 一种基于知识图谱的数据库搜索方法
CN103699638A (zh) 一种基于配置参数实现跨数据库类型同步数据的方法
CN104391948A (zh) 数据仓库的数据标准化构建方法及系统
CN105975502A (zh) 一种基于cdc方式实现增量抽取数据的方法
CN103970833A (zh) 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法
CN104504001A (zh) 面向海量分布式关系数据库的游标构造方法
CN104572471A (zh) 一种基于索引的Java软件代码克隆检测方法
CN104615782A (zh) 基于滑动窗口最大匹配算法的地址匹配方法
CN105760485A (zh) 财务数据抽取方法及系统
CN105808675B (zh) 从Informix数据库向人大金仓数据库迁移的方法
CN105912427A (zh) 一种数据容灾同步的方法及装置
CN109165225A (zh) 一种基于字节流格式的kudu数据导入系统及方法
CN107145522A (zh) 一种数据库数据内容高速比对方法
CN115658815A (zh) 基于cdc实现的数据同步的方法
CN103309888A (zh) 电子地图的数据的验证方法和验证装置
CN106126644A (zh) 基于NoSQL数据库的录波文件存储方法
CN105303341A (zh) 基于优先级的可扩展的智能分单方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160907