CN110362632B - 一种数据同步方法、装置、设备及计算机可读存储介质 - Google Patents

一种数据同步方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN110362632B
CN110362632B CN201910662189.3A CN201910662189A CN110362632B CN 110362632 B CN110362632 B CN 110362632B CN 201910662189 A CN201910662189 A CN 201910662189A CN 110362632 B CN110362632 B CN 110362632B
Authority
CN
China
Prior art keywords
data
information
target
database
change log
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.)
Active
Application number
CN201910662189.3A
Other languages
English (en)
Other versions
CN110362632A (zh
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.)
Infinitus China Co Ltd
Original Assignee
Infinitus China 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 Infinitus China Co Ltd filed Critical Infinitus China Co Ltd
Priority to CN201910662189.3A priority Critical patent/CN110362632B/zh
Publication of CN110362632A publication Critical patent/CN110362632A/zh
Application granted granted Critical
Publication of CN110362632B publication Critical patent/CN110362632B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据同步方法,包括根据接收到的数据同步指令启动Informatica CDC;通过所述Informatica CDC实时捕获源数据库的变更日志记录信息;判断所述变更日志记录信息对应的目标数据是否需要进行数据转换处理;若是,则利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息;将所述转换后数据信息发送至所述目标数据库,完成数据同步;该数据同步方法可有效提高数据库之间的数据同步效率,解决了实际业务流程中的卡顿问题,极大的提高了用户体验。本申请还公开了一种数据同步装置、设备及计算机可读存储介质,均具有上述有益效果。

Description

一种数据同步方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及数据库技术领域,特别涉及一种数据同步方法,还涉及一种数据同步装置、设备以及计算机可读存储介质。
背景技术
数据同步技术主要是为了解决在不同数据库之间的数据交换处理技术,数据同步处理方案一般由源数据库和目标数据库的类型、需要交换数据的频率、数据格式、数据容量等因素所决定。
目前,针对海量数据库间的实时数据同步处理,较为常见的实现方式为CDC软件,Informatica CDC软件提供了一种基于通用数据库的常规的实时数据同步处理方法。具体而言,以OLTP数据库(交易数据库)与OLAP数据库(报表数据库)为例,请参考图1,图1为现有技术中一种OLTP数据库与OLAP数据库之间数据同步的流程图,基于Informatica CDC软件对OLTP数据库中的ASM文件进行变更日志记录信息的实时捕获处理,并通过变更日志数据文件进行缓存,进一步将对应的数据信息实时写入OLAP数据库的目标数据表。
但是,现有的基于Informatica CDC软件的数据同步方法存在严重的数据时延问题,具体来说,CDC软件不适合实现对需要进行额外转换处理的数据信息的更新处理,因而需要结合其他处理组件来实现数据转换处理,由此将会导致超出20秒的数据时延,当需要从海量数据表中获取转化信息时,数据时延更会超过1分钟。更进一步地,在实际的业务场景中,如OLTP数据库与OLAP数据库之间的数据同步流程,为了提升OLTP数据库的整体处理能力,经常会采用OLAP数据库来分担实时分析报表的查询需求,而为了确保实时分析的需要,OLAP数据库与OLTP数据库的数据同步时延目标需小于10秒,而现有技术中InformaticaCDC软件的数据同步方法却难以克服该问题,导致业务流程卡顿,降低用户体验。
因此,如何有效提高数据库之间的数据同步效率,进而提高用户体验是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据同步方法,该数据同步方法可有效提高数据库之间的数据同步效率,解决了实际业务流程中的卡顿问题,极大的提高了用户体验;本申请的另一目的是提供一种数据同步装置、设备以及计算机可读存储介质,也具有上述有益效果。
为解决上述技术问题,本申请提供了一种数据同步方法,所述数据同步方法包括:
根据接收到的数据同步指令启动Informatica CDC;
通过所述Informatica CDC实时捕获源数据库的变更日志记录信息;
判断所述变更日志记录信息对应的目标数据是否需要进行数据转换处理;
若是,则利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息;
将所述转换后数据信息发送至所述目标数据库,完成数据同步。
优选的,所述通过所述Informatica CDC实时捕获源数据库的变更日志记录信息,包括:
与所述源数据库的ASM文件系统进行连接,为所述ASM文件系统中的各ASM文件组构建相应的实时数据捕获处理线程;
通过各所述实时数据捕获处理线程从对应的所述ASM文件组中实时捕获所述变更日志记录信息。
优选的,所述通过所述Informatica CDC实时捕获源数据库的变更日志记录信息之后,还包括:
通过预设变更日志数据文件对所述变更日志记录信息进行缓存。
优选的,所述利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息之前,还包括:
判断所述目标数据是否存在大字段类型的数据信息;
若是,则利用Oracle PL/SQL技术和Oralce DB Link技术对所述目标数据进行数据转换,获得所述转换后数据信息;
若否,则执行所述利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息的步骤。
优选的,所述数据同步方法还包括:
当所述目标数据需要进行所述数据转换处理时,将所述变更日志记录信息暂存至所述目标数据库的临时数据表。
优选的,所述数据同步方法还包括:
当所述目标数据完成数据同步后,删除所述临时数据表中的所述变更日志记录信息。
优选的,所述源数据库为OLTP数据库,所述目标数据库为OLAP数据库。
为解决上述技术问题,本申请还提供了一种数据同步装置,所述数据同步装置包括:
监控平台启动模块,用于根据接收到的数据同步指令启动Informatica CDC;
信息捕获模块,用于通过所述Informatica CDC实时捕获源数据库的变更日志记录信息;
数据判断模块,用于判断所述变更日志记录信息对应的目标数据是否需要进行数据转换处理;
数据转换模块,用于若所述目标数据需要进行所述数据转换处理,则利用OraclePL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息;
数据同步模块,用于将所述转换后数据信息发送至所述目标数据库,完成数据同步。
为解决上述技术问题,本申请还提供了一种数据同步设备,所述数据同步设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一种数据同步方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种数据同步方法的步骤。
本申请所提供的一种数据同步方法,包括根据接收到的数据同步指令启动Informatica CDC;通过所述Informatica CDC实时捕获源数据库的变更日志记录信息;判断所述变更日志记录信息对应的目标数据是否需要进行数据转换处理;若是,则利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息;将所述转换后数据信息发送至所述目标数据库,完成数据同步。
可见,本申请所提供的数据同步方法,在对两数据库之间进行数据同步时,基于Oracle PL/SQL技术执行效率高的特性,利用Oracle PL/SQL技术对需要额外进行数据转换的数据信息完成了数据转换,结合Informatica CDC软件的信息实时捕捉功能,实现了数据库之间的极速数据同步,极大地提高了数据同步效率,在面对实际的业务处理流程时,能够有效避免业务卡顿问题的发生,进一步提高了用户体验。
本申请所提供的一种数据同步装置、设备以及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中一种OLTP数据库与OLAP数据库之间数据同步的流程图;
图2为本申请所提供的一种数据同步方法的流程示意图;
图3为本申请所提供的一种OLTP数据库和OLAP数据库之间数据同步的流程图;
图4为本申请所提供的一种数据同步装置的结构示意图;
图5为本申请所提供的一种数据同步设备的结构示意图。
具体实施方式
本申请的核心是提供一种数据同步方法,该数据同步方法可有效提高数据库之间的数据同步效率,解决了实际业务流程中的卡顿问题,极大的提高了用户体验;本申请的另一核心是提供一种数据同步装置、设备以及计算机可读存储介质,也具有上述有益效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
请参考图2,图2为本申请所提供的一种数据同步方法的流程示意图,该数据同步方法可以包括:
S101:根据接收到的数据同步指令启动Informatica CDC;
具体的,Informatica CDC软件提供了一种基于通用数据库的常规的实时数据同步处理方法,可预先将其部署于服务器或计算机设备上,用于实现两数据库之间的数据同步。由此,当软件使用者发起数据同步指令时,即可响应该数据同步指令,进而启动Informatica CDC。
S102:通过Informatica CDC实时捕获源数据库的变更日志记录信息;
本步骤旨在基于Informatica CDC实现源数据库的变更日志记录信息的获取,其中,源数据库即为提供数据信息的数据库,变更日志记录信息即为源数据库中原始数据信息的变更信息,其具体内容并不唯一,可以为变更操作类型,如插入新数据、删除旧数据、更新原数据等。具体的,Informatica CDC软件启动后,可利用自身的实时捕获处理监听器对源数据库的变更日志记录信息进行实时捕获。
优选的,上述通过Informatica CDC实时捕获源数据库的变更日志记录信息,可以包括:
步骤一、与源数据库的ASM文件系统进行连接,为ASM文件系统中的各ASM文件组构建相应的实时数据捕获处理线程;
步骤二、通过各实时数据捕获处理线程从对应的ASM文件组中实时捕获变更日志记录信息。
本申请提供了一种较为具体的变更日志记录信息的获取方法,由于源数据库的变更日志记录信息在ASM文件系统中以多个ASM文件组的形式存储,因此,可通过ASM文件连接的方式,将Informatica CDC软件与ASM文件系统建立连接,从而为各个ASM文件组构建相应的实时数据捕获处理线程,进一步从相应的ASM文件组中实时捕获变更日志记录信息。由此,每个ASM文件组均设有其对应的实时数据捕获处理线程对其进行监控,实现了多个ASM文件组的变更日志记录信息的并行实时捕捉,进一步提升了数据同步的时效性。
优选的,上述通过Informatica CDC实时捕获源数据库的变更日志记录信息之后,还可以包括:通过预设变更日志数据文件对变更日志记录信息进行缓存。
具体的,由于实时捕获的变更日志记录信息的数量并不唯一,为避免数据丢失,可预先建立存储空间,即上述预设变更日志数据文件,在实时捕获到变更日志记录信息之后,同步至目标数据库之前,可将其缓存至该预设变更日志数据文件中。其中,该预设变更日志数据文件可以设置于部署Informatica CDC软件的设备上,也可以设置于其他任何可以实现文件共享功能的设备上,本申请对此不做限定。
S103:判断变更日志记录信息对应的目标数据是否需要进行数据转换处理;若是,则执行S104,若否,则执行S106;
本步骤旨在判断变更日志记录信息对应的目标数据是否需要进行数据转换的判断,该判断过程可基于变更日志记录信息的具体内容以及目标数据的数据类型实现,其具体实现过程可参照已有技术中的任意一种,本申请在此不再赘述。进一步,对于需要进行数据转换的目标数据,根据后文S104和S105的步骤进行数据转换,完成数据同步即可,对于不需要进行数据转换的目标数据,直接执行S106完成数据同步即可。
S104:利用Oracle PL/SQL技术对目标数据进行数据转换,获得转换后数据信息;
S105:将转换后数据信息发送至目标数据库,完成数据同步;
具体的,对于需要进行数据转换的目标数据,可利用Oracle PL/SQL技术实现,Oracle PL/SQL技术是由Oracle数据库提供的一种内嵌编程技术,可以实现数据处理操作,也可以完成自定义逻辑跳转、循环处理等复杂逻辑处理,还可以直接调用Oracle的内部函数,如作业调度、时间等待等。PL/SQL在执行过程中,所有的数据均会保留在本地数据库上,数据处理的执行效率是最高的,进而极大地提升了数据同步效率。进一步,对于利用OraclePL/SQL技术完成数据转换后获得的转换后数据信息,直接将其发送至目标数据库即可,由此完成数据同步。
需要说明的是,上述数据转换的具体实现过程并不唯一,可以由Oracle PL/SQL技术的固有特性以及变更日志记录信息的具体内容决定。
优选的,上述利用Oracle PL/SQL技术对目标数据进行数据转换,获得转换后数据信息之前,还可以包括:判断目标数据是否存在大字段类型的数据信息;若是,则利用Oracle PL/SQL技术和Oralce DB Link技术对目标数据进行数据转换,获得转换后数据信息;若否,则执行利用Oracle PL/SQL技术对目标数据进行数据转换,获得转换后数据信息的步骤。
由于大字段类型的具体信息内容仅存放于Oracle的文件系统中,相关信息内容不会写入到数据库变更日志文件,因此,Informatica CDC软件无法对含有大字段类型,如BLOG、CLOG等数据表进行完整的数据捕获处理,而Oralce DB Link技术可以恰好的解决该问题。
具体而言,Oralce DB Link技术是由Oracle数据库内嵌的跨数据库的数据同步处理接口技术,其可以实现跨数据源的快速数据访问及数据处理,一般封装在PL/SQL中使用。因此,可以通过Oracle PL/SQL技术,同时结合Oralce DB Link技术实现对大字段类型的目标数据的数据转换,而对于非大字段类型的目标数据,直接通过Oracle PL/SQL技术进行数据转换即可。
S106:将目标数据发送至目标数据库,完成数据同步。
具体的,对于无需进行数据转换的目标数据,则可以直接发送至目标数据库,完成数据同步。至此,即完成了所有变更日志记录信息对应的目标数据的数据同步。
作为一种优选实施例,该数据同步方法还可以包括:当目标数据需要进行数据转换处理时,将变更日志记录信息暂存至目标数据库的临时数据表。
具体的,对于需要进行数据转换的目标数据,其对应的变更日志记录信息的数量并不唯一,为避免信息丢失或堆积,还可以预先在目标数据库中建立临时数据表,用以存储等待进行数据转换的目标数据对应的变更日志记录信息。
作为一种优选实施例,该数据同步方法还可以包括:当目标数据完成数据同步后,删除临时数据表中的变更日志记录信息。
具体的,在对目标数据完成数据转换,同步至目标数据库的特定位置之后,为避免不必要的空间占用,可进一步将临时数据表中对应的变更日志记录信息删除,以为后续捕获到的需要进行数据转换的目标数据对应的变更日志记录信息提供存储空间。
本申请所提供的数据同步方法,在对软件的本地数据包进行清理之前,先通过指定的数据包排序规则对该软件的各个本地数据包进行价值度排序,也即对该软件的各个本地数据包的价值进行了合理有效的判断,由此,在后续数据包清理过程中,即可直接删除价值度排名靠后的一个或多个本地数据包,实现了有条件的完成数据包删除,避免了由于一键清理或人工手动删除导致的数据包误删问题,减少了人为因素的影响,有效降低了数据包误删率;另外,该种清理方式实现了数据包的自动清理,无需人工操作,极大的提高了软件使用效率。
在上述实施例的基础上,作为一种优选实施例,上述源数据库可以为OLTP数据库,上述目标数据库可以为OLAP数据库。
本申请实施例提供了具体类型的源数据库和目标数据库,分别为OLTP数据库和OLAP数据库,即基于本申请所提供的数据同步方法实现了OLTP数据库和OLAP数据库之间的数据同步。
具体的,请参考图3,图3为本申请所提供的一种OLTP数据库和OLAP数据库之间数据同步的流程图,通过Informatica CDC软件可以从OLTP数据库上实时捕获其中的变更日志记录信息,进而结合Oracle PL/SQL技术和Oralce DB Link技术,极速的将其对应的目标数据更新到OLAP数据库的目标数据表上,从而实现交易处理功能和报表查询功能的分离,进而大幅度的提升交易系统的整体支撑能力。
可以理解的是,以上数据库类型仅为本申请所提供的一种具体实现方式,但并不唯一,也可以为其他类型的数据库之间的数据同步。
更进一步的,对于OLTP数据库和OLAP数据库之间的数据同步,以下对目标数据的数据转换过程进行了具体介绍。
(1)采用Oracle PL/SQL模式,实现对需要进行额外的数据转换处理的目标数据表(数据同步之后的目标数据在目标数据库中的目标存储位置)的更新处理:
S1:根据日志流水号,依次读取临时数据表中存储的变更日志记录信息;
S2:根据变更日志记录信息,读取OLAP数据库的相关数据表,完成数据转换处理;
S3:根据日志操作类型,完成对相应的目标数据的数据更新处理;
S4:根据日志流水号,完成对临时数据表的记录删除处理。
(2)采用Oracle PL/SQL+Oralce DB Link模式,实现对含有大字段类型的目标数据表的更新处理:
S1:根据日志流水号,依次读取临时数据表中存储的变更日志记录信息,获取日志操作类型;
S2:如果日志操作类型为Delete或Update,则根据记录主键删除OLAP数据库的对应记录;
S3:如果日志操作类型为Insert或者Update,则利用Oralce DB Link技术,以主键读取OLTP数据库的相关数据表的对应记录,直接插入到OLAP数据库的目标数据表;
S4:根据日志流水号,完成对临时数据表的记录删除处理。
至此,通过充分利用Informatica CDC、Oracle PL/SQL、Oralce DB Link三大数据集成处理工具的数据处理优势,实现了从OLTP数据库到OLAP数据库的所有数据表的极速数据同步。
在上述各个实施例的基础上,以OLTP数据库和OLAP数据库为例,本实施例提供了一种更为具体的数据同步方法。
一、CDC软件的部署:
S1:对服务器进行硬件配置:1台PC服务器,16G内存,1TB的本地硬盘;
S2:在服务器上部署Informatica CDC软件;
S3:在服务器的文件系统上建立一个公用的磁盘文件空间,用于存放从OLTP数据库上实时捕获的变更日志记录信息,其中,该变更日志记录信息以变更日志数据文件的形式进行存储。
二、CDC软件的初始化处理:
S1:在部署Informatica CDC软件的服务器上,选择ASM文件连接方式,连接到OLTP数据库的ASM文件系统,并为每一个ASM文件组建立一个实时数据捕获处理线程;
S2:在指定的个人电脑上安装Informatica CDC软件的客户端工具,并执行对OLTP数据库的源数据表的注册工作。
三、CDC软件的实时捕获处理:
S1:启动实时捕获处理监听器,读取OLTP数据库的源数据表,获取已注册的源数据表的ID及其每一源数据表字段的格式定义信息;
S2:从OLTP数据库的ASM文件中实时捕获变更日志记录信息;
S3:如果变更日志记录信息对应的数据表ID为已注册的源数据表ID,则执行S4,否则跳转回S2;
S4:对变更日志记录信息,按源数据表的字段结构进行解码处理,完成数据格式转换后,形成自定义文件格式的实时变更日志记录,其主要内容可以包括:变更操作类型、SCN号、变更数据表、变更前的数据行信息内容、变更后的数据行信息内容等,进而将其写入到服务器的变更日志数据文件上;
S5:跳转回S2。
四、对每一源数据表,建立一个WORKLET程序:
其中,每一个WORKLET程序包含私有的配置参数文件,记录了最后一次打开的变更日志数据文件的文件编号和最后读取到的SCN号;每一个WORKLET程序可以自动实现对变更日志数据文件的实时读取处理。
S1:如果不需要额外转换处理要求,则把目标设置为OLAP数据库的目标数据表,每一个WORKLET程序将包含3个TASK SESSION:
(1)Insert处理SESSION,根据变更后的数据行信息内容,实现对目标数据表的写入处理;
(2)Update处理SESSION,根据变更前的数据行信息内容,完成对源记录的查询定位,再根据变更后的数据行信息内容,实现对目标数据表的更新处理;
(3)Delete处理SESSION,根据变更前的数据行信息内容,实现对目标数据表的删除处理;
S2:如果需要额外转换处理要求,则目标设置为OLAP数据库的临时数据表,每一个WORKLET程序将仅包含1个TASK SESSION:
Insert处理SESSION,根据变更日志记录信息、日志操作类型和日志流水号,实现对临时数据表的写入处理;
五、采用Oracle PL/SQL技术,实现对需要额外转换的目标数据表的极速同步:
在OLAP数据库上,对每一个需要处理的临时数据表,建立一个OraclePL/SQL存储过程,对于每一个存储过程,利用DMBS_SCHEDULER系统函数包,把该存储过程提交至后台不间断运行,其中,每一个Oracle PL/SQL存储过程,按照如下流程运行:
S1:把临时数据表与OLAP数据库的目标数据表进行内关联处理,对需要额外转换的数据信息进行组合转换处理,生成包含目标数据表所有字段信息的数据集,具体可按照临时数据表中变更日志记录信息产生时间的先后顺序,依次读取数据集内容:
(1)从数据集读取一条变更日志记录信息;
(2)如果变更操作类型为Update或者Delete,根据变更日志记录信息获取源数据信息的主键,然后按主键删除目标数据表的数据;
(3)如果变更操作类型为Insert或者Update,根据变更日志记录信息实现对目标数据表的写入处理;
(4)根据日志流水号,删除临时数据表中的数据;
(5)如果已经到达数据集的末尾,则跳出当前子循环,跳转到S2;否则,跳转回(1);
S2:利用DBMS_LOCK.SLEEP()函数,等待1秒钟;
S3:跳转回S1。
六、采用Oracle PL/SQL+Oralce DB Link模式,实现对含有大字段类型的目标数据表的极速同步:
在OLAP数据库上,对每一个需要处理的临时数据表,建立一个OraclePL/SQL存储过程,对于每一个存储过程,利用DMBS_SCHEDULER系统函数包,把该存储过程提交至后台不间断运行,其中,每一个Oracle PL/SQL存储过程,按照如下流程运行:
S1:按照临时数据表中变更日志记录信息产生时间的先后顺序,依次读取临时数据表:
(1)从临时数据表读取一条变更日志记录信息;
(2)如果变更操作类型为Update或者Delete,根据变更日志记录信息获取源数据信息的主键,然后按主键删除目标数据表的数据;
(3)如果变更操作类型为Insert,根据变更日志记录信息获取源数据表的主键,利用Oralce DB Link实现对目标数据表指定行记录的写入处理,具体语句为:
insert into目标表
select field1…fieldn from源数据表@源系统where key=…;
(4)根据日志流水号,删除临时数据表中的数据;
(5)如果已经到达临时数据表的末尾,则跳出当前子循环,跳转到S3;否则,跳转回(1);
S2:利用DBMS_LOCK.SLEEP()函数,等待1秒钟;
S3:跳转回到S1。
至此,即完成了OLTP数据库和OLAP数据库之间的数据同步,该数据同步方法完全覆盖了Oracle OLTP数据库的所有数据表的数据同步处理的应用场景,另外,经验证,该数据同步方法可达致同步数据时延目标不超过10秒,具有极高的数据同步效率。
为解决上述问题,请参考图4,图4为本申请所提供的一种数据同步装置的结构示意图,该数据同步装置可包括:
监控平台启动模块10,用于根据接收到的数据同步指令启动Informatica CDC;
信息捕获模块20,用于通过Informatica CDC实时捕获源数据库的变更日志记录信息;
数据判断模块30,用于判断变更日志记录信息对应的目标数据是否需要进行数据转换处理;
数据转换模块40,用于若目标数据需要进行数据转换处理,则利用Oracle PL/SQL技术对目标数据进行数据转换,获得转换后数据信息;
数据同步模块50,用于将转换后数据信息发送至目标数据库,完成数据同步。
作为一种优选实施例,上述信息捕获模块20可具体用于与源数据库的ASM文件系统进行连接,为ASM文件系统中的各ASM文件组构建相应的实时数据捕获处理线程;通过各实时数据捕获处理线程从对应的ASM文件组中实时捕获变更日志记录信息。
作为一种优选实施例,该数据同步装置还可以包括信息缓存模块,用于通过预设变更日志数据文件对变更日志记录信息进行缓存。
作为一种优选实施例,该数据同步装置还可以包括数据类型判断模块,用于判断目标数据是否存在大字段类型的数据信息;若是,则利用Oracle PL/SQL技术和Oralce DBLink技术对目标数据进行数据转换,获得转换后数据信息;若否,则进入数据转换模块40。
作为一种优选实施例,该数据同步装置还可以包括临时缓存模块,用于当目标数据需要进行数据转换处理时,将变更日志记录信息暂存至目标数据库的临时数据表。
作为一种优选实施例,该数据同步装置还可以包括信息删除模块,用于当目标数据完成数据同步后,删除临时数据表中的变更日志记录信息。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,请参考图5,图5为本申请所提供的一种数据同步设备的结构示意图,该数据同步设备可包括:
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序时实现如上述任意一种数据同步方法的步骤。
对于本申请提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种数据同步方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的数据同步方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围要素。

Claims (7)

1.一种数据同步方法,其特征在于,包括:
根据接收到的数据同步指令启动Informatica CDC;
与源数据库的ASM文件系统进行连接,为所述ASM文件系统中的各ASM文件组构建相应的实时数据捕获处理线程;
通过各所述实时数据捕获处理线程从对应的所述ASM文件组中实时捕获变更日志记录信息;
通过预设变更日志数据文件对所述变更日志记录信息进行缓存;
判断所述变更日志记录信息对应的目标数据是否需要进行数据转换处理;
若是,则利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息;
所述利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息之前,还包括:
判断所述目标数据是否存在大字段类型的数据信息;
若是,则利用Oracle PL/SQL技术和Oralce DB Link技术对所述目标数据进行数据转换,获得所述转换后数据信息;
若否,则执行所述利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息的步骤;
将所述转换后数据信息发送至所述目标数据库,完成数据同步。
2.如权利要求1所述的数据同步方法,其特征在于,还包括:
当所述目标数据需要进行所述数据转换处理时,将所述变更日志记录信息暂存至所述目标数据库的临时数据表。
3.如权利要求2所述的数据同步方法,其特征在于,还包括:
当所述目标数据完成数据同步后,删除所述临时数据表中的所述变更日志记录信息。
4.如权利要求1至3任意一项所述的数据同步方法,其特征在于,所述源数据库为OLTP数据库,所述目标数据库为OLAP数据库。
5.一种数据同步装置,其特征在于,包括:
监控平台启动模块,用于根据接收到的数据同步指令启动Informatica CDC;
信息捕获模块,用于与源数据库的ASM文件系统进行连接,为所述ASM文件系统中的各ASM文件组构建相应的实时数据捕获处理线程,通过各所述实时数据捕获处理线程从对应的所述ASM文件组中实时捕获变更日志记录信息,并通过预设变更日志数据文件对所述变更日志记录信息进行缓存;
数据判断模块,用于判断所述变更日志记录信息对应的目标数据是否需要进行数据转换处理;
数据转换模块,用于若所述目标数据需要进行所述数据转换处理,则利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息;
所述数据转换模块还用于,在所述利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息之前,判断所述目标数据是否存在大字段类型的数据信息,若是,则利用Oracle PL/SQL技术和Oralce DB Link技术对所述目标数据进行数据转换,获得所述转换后数据信息,若否,则执行所述利用Oracle PL/SQL技术对所述目标数据进行数据转换,获得转换后数据信息的步骤;
数据同步模块,用于将所述转换后数据信息发送至所述目标数据库,完成数据同步。
6.一种数据同步设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任意一项所述的数据同步方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任意一项所述的数据同步方法的步骤。
CN201910662189.3A 2019-07-22 2019-07-22 一种数据同步方法、装置、设备及计算机可读存储介质 Active CN110362632B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910662189.3A CN110362632B (zh) 2019-07-22 2019-07-22 一种数据同步方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910662189.3A CN110362632B (zh) 2019-07-22 2019-07-22 一种数据同步方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110362632A CN110362632A (zh) 2019-10-22
CN110362632B true CN110362632B (zh) 2022-11-15

Family

ID=68219819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910662189.3A Active CN110362632B (zh) 2019-07-22 2019-07-22 一种数据同步方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110362632B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209292B (zh) * 2019-12-31 2023-08-11 成都库珀创新科技有限公司 一种仓位数据管理方法、装置及系统
CN113127496B (zh) * 2019-12-31 2023-06-27 金色熊猫有限公司 数据库中变更数据的确定方法及装置、介质和设备
CN111931094A (zh) * 2020-07-16 2020-11-13 北京首汽智行科技有限公司 一种缓存数据动态同步方法
CN111966747A (zh) * 2020-07-23 2020-11-20 深圳市科脉技术股份有限公司 数据同步方法、系统、终端设备及存储介质
CN113761001A (zh) * 2020-09-08 2021-12-07 北京沃东天骏信息技术有限公司 一种跨系统数据同步方法和装置
CN112269832A (zh) * 2020-10-30 2021-01-26 浪潮云信息技术股份公司 一种基于cdc实现数据库数据同步并读写分离的方法
CN112559475B (zh) * 2020-12-11 2023-01-10 上海哔哩哔哩科技有限公司 数据实时捕获和传输方法及系统
CN113297326A (zh) * 2021-05-21 2021-08-24 中国邮政储蓄银行股份有限公司 数据的处理方法及装置、计算机可读存储介质、处理器
CN113486019B (zh) * 2021-07-27 2024-02-23 中国银行股份有限公司 自动触发对远程多数据库数据实时批量同步方法和装置
CN114416868B (zh) * 2021-12-30 2023-02-17 联通智网科技股份有限公司 一种数据同步方法、装置、设备及存储介质
CN114265875B (zh) * 2022-03-03 2022-07-22 深圳钛铂数据有限公司 一种基于流数据的实时建宽表的方法
CN115408250B (zh) * 2022-11-02 2023-01-31 南京欣华软件技术有限公司 一种基于智慧校园的多源数据采集分析系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317843A (zh) * 2014-10-11 2015-01-28 上海瀚之友信息技术服务有限公司 一种数据同步etl系统
WO2018101640A1 (ko) * 2016-11-29 2018-06-07 주식회사 실크로드소프트 데이터베이스 이중화 무중단 정합성 복구 기법
CN108536743A (zh) * 2018-03-09 2018-09-14 中国电子科技集团公司第二十八研究所 一种指控系统数据库数据同步系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314517A (zh) * 2011-09-25 2012-01-11 国网电力科学研究院 一种水调历史数据库在线同步技术
CN102542007B (zh) * 2011-12-13 2014-06-25 中国电子科技集团公司第十五研究所 关系型数据库之间的同步方法及系统
CN103685543A (zh) * 2013-12-23 2014-03-26 中国电子科技集团公司第三十研究所 一种异构数据库间的数据同步方法及系统
CN104809199B (zh) * 2015-04-24 2018-11-16 联动优势科技有限公司 一种数据库同步的方法和装置
CN108241676B (zh) * 2016-12-26 2022-09-02 阿里云计算有限公司 实现数据同步的方法及设备
US10565168B2 (en) * 2017-05-02 2020-02-18 Oxygen Cloud, Inc. Independent synchronization with state transformation
CN108920547A (zh) * 2018-06-14 2018-11-30 国网福建省电力有限公司 基于全业务统一数据中心异构数据库之间数据库字段类型映射提升方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317843A (zh) * 2014-10-11 2015-01-28 上海瀚之友信息技术服务有限公司 一种数据同步etl系统
WO2018101640A1 (ko) * 2016-11-29 2018-06-07 주식회사 실크로드소프트 데이터베이스 이중화 무중단 정합성 복구 기법
CN108536743A (zh) * 2018-03-09 2018-09-14 中国电子科技集团公司第二十八研究所 一种指控系统数据库数据同步系统

Also Published As

Publication number Publication date
CN110362632A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110362632B (zh) 一种数据同步方法、装置、设备及计算机可读存储介质
CN109034993B (zh) 对账方法、设备、系统及计算机可读存储介质
CN107943841A (zh) 流式数据处理方法、系统和计算机可读存储介质
CN110990432B (zh) 一种跨机房同步分布式缓存集群的装置和方法
CN107169083A (zh) 公安卡口海量车辆数据存储与检索方法及装置、电子设备
KR20180055952A (ko) 데이터베이스 관리 시스템에서의 데이터 복제 기법
CN111177165B (zh) 数据一致性检测的方法、装置及设备
KR101922044B1 (ko) 데이터베이스 이중화 무중단 정합성 복구 기법
CN102117303A (zh) 一种专利数据分析方法和系统
US11210211B2 (en) Key data store garbage collection and multipart object management
CN110019469A (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
CN106021506A (zh) 集群系统的文件存储方法及装置
CN111177254B (zh) 一种异构关系型数据库之间数据同步的方法和装置
KR20190063835A (ko) 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템
CN115033646B (zh) 一种基于Flink&Doris构建实时数仓系统的方法
CN111209467A (zh) 一种多并发多通道环境下的数据实时查询系统
CN108228432A (zh) 一种分布式链路跟踪、分析方法及服务器、全局调度器
CN110417892B (zh) 基于报文解析的数据复制链路优化方法及装置
US11288263B2 (en) Change service for shared database object
CN111753141B (zh) 一种数据管理方法及相关设备
CN101778131A (zh) 数据同步系统
CN109634975B (zh) 数据同步方法及装置、电子设备及计算机可读存储介质
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
CN110457327A (zh) 一种数据处理方法、装置及存储介质
CN116980475B (zh) 一种基于binlog与双环形缓冲区的数据推送系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant