CN117762888A - 一种基于定时调度的数据同步方法和设备 - Google Patents
一种基于定时调度的数据同步方法和设备 Download PDFInfo
- Publication number
- CN117762888A CN117762888A CN202311826052.XA CN202311826052A CN117762888A CN 117762888 A CN117762888 A CN 117762888A CN 202311826052 A CN202311826052 A CN 202311826052A CN 117762888 A CN117762888 A CN 117762888A
- Authority
- CN
- China
- Prior art keywords
- data
- ddl
- timing
- information
- module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000001914 filtration Methods 0.000 claims description 29
- 230000010354 integration Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 238000010200 validation analysis Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008929 regeneration Effects 0.000 description 8
- 238000011069 regeneration method Methods 0.000 description 8
- 238000013481 data capture Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于定时调度的数据同步方法和设备。其方法部分主要包括:源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块;源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端;源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步。本发明可以完成DDL新增表的所有同步,也即实现现有技术中对DDL操作进行同步的需求和目的。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种基于定时调度的数据同步方法和设备。
背景技术
在基于软件的数据库数据复制技术中,对于基于分析日志文件的数据实时同步技术,因其具备对源端数据库影响小、支持异构系统复制、复制系统备机可读写等特点,在应急灾备、多业务中心、实时异构资源整合、数据迁移与滚动升级、数据仓库架构改进等多种场景下应用广泛。
基于分析日志文件的数据实时同步,其主要技术原理是:在源端数据库,数据同步进程实时读取数据库的在线或归档日志文件以获取数据库的插入(INSERT)、删除(DELETE)以及更新(UPDATE)的事务操作,然后将这些事务操作转换为内部特定格式的消息,直接通过传输控制协议(Transmission Control Protocol,简写为:TCP)/互联网协议(InternetProtocol,简写为:IP)网络传输到目标端数据库的数据同步进程;目标端数据库的数据同步进程接收到源端发送过来的消息后,进行消息的分析并将源端的事务操作恢复成结构化查询语言(Structured Query Language,简写为:SQL)操作语句,使用数据库本地接口在目标端数据库上执行,实现源端和目标数据库的数据同步。
对于数据库上的数据操作语言(Data Manipulation Language,简写为:DML)操作,数据库都会在日志文件中直接记录事务操作信息,如操作对象、修改的数据等内容,基于此,第三方工具可以通过实时读取物理日志文件中的增量日志数据,并进行解析来实现数据库上的增、删、改操作的实时同步。但是对于数据定义语言(Data DefinitionLanguage,简写为:DDL)操作,并不是所有数据库都会在日志文件中直接记录DDL事务信息。基于这种考虑,如何在数据库日志中没有记录相关信息的情况下,将DDL操作进行同步,就成为业界亟待解决的技术问题。
鉴于此,如何克服现有技术所存在的缺陷,解决上述数据库日志中没有记录相关信息的情况下,将DDL操作进行同步的技术问题,是本技术领域待解决的难题。
发明内容
针对现有技术的缺陷或改进需求:如何在数据库日志中没有记录相关信息的情况下,将DDL操作进行同步。本发明提供一种基于定时调度的数据同步方法和设备,基于定时调度模块,借助数据同步的数据初始化装载功能来实现新增表的数据同步。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种基于定时调度的数据同步方法,包括:
源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块;
源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端;
源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步。
进一步的,所述源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块具体包括:
源端的数据捕获模块在解析数据库日志时,捕获到满足过滤条件表的INSERT操作信息;
判断本地字典文件中有没有记录该满足过滤条件表的对应信息,若没有则记录该满足过滤条件表为DDL新增表;
将记录的DDL新增表的相应表id信息发送到定时调度模块。
进一步的,所述满足过滤条件表的判断包括:根据模式名和表名判断是否满足过滤条件。
进一步的,所述判断本地字典文件中有没有记录该满足过滤条件表的对应信息时,若有则跳过。
进一步的,所述定时调度模块设置有调度策略、生效时间和结束时间,其中,所述调度策略包括:设置调度频率,用来设置向数据捕获模块发送信息的时间间隔;所述生效时间和结束时间用于约束调度策略在某时间段内生效。
进一步的,所述定时调度模块在指定的定时执行时间点正常执行,若在定时周期内接收到了数据捕获模块发来的表id信息,则将表id信息进行整合过滤,向数据捕获模块发送相应表的数据装载命令。
进一步的,所述将表id信息进行整合过滤具体包括:判断此表id是否之前已经发送过,若已发送则丢弃。
进一步的,所述源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端具体包括:
源端的数据捕获模块接收到定时调度模块发来的数据装载命令,基于数据装载命令携带的表id信息确定需要装载的DDL新增表;
源端的数据捕获模块查询需要装载的DDL新增表在源端的数据,并记录此时装载时的装载LSN;
将需要装载的DDL新增表的存量数据发送到目的端数据库进行同步,同时将该需要装载的DDL新增表的数据字典缓存在本地文件中。
进一步的,所述源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步具体包括:
源端的数据捕获模块根据本地数据字典文件进行筛选,在读源端数据库归档日志时筛选出记录的装载LSN之后涉及到的对应DDL新增表的日志信息;
对筛选出的日志信息进行解析;
将解析出来的操作发送到目的端数据库进行执行,以完成对应DDL新增表的增量数据的同步。
另一方面,本发明提供了一种基于定时调度的数据同步设备,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的基于定时调度的数据同步方法。
与现有技术相比,本发明的有益效果在于:本发明提供一种基于定时调度的数据同步方法和设备,源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块;数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端;通过该方法完成DDL新增表的存量同步,然后源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步;至此完成DDL新增表的所有同步,也即实现现有技术中对DDL操作进行同步的需求和目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种基于定时调度的数据同步方法流程图;
图2为本发明实施例1提供的步骤100扩展流程图;
图3为本发明实施例1提供的步骤200扩展流程图;
图4为本发明实施例1提供的步骤300具体流程图;
图5为本发明实施例3提供的一种基于定时调度的数据同步设备结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以作出若干变形和改进。这些都属于本发明的保护范围。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
下面就参考附图和实施例结合来详细说明本发明。
实施例1:
本实施例需要先在源端数据库及目的端数据库部署同步系统,源端数据库同步系统从源端数据库读取日志,而目标端数据库同步系统则是负责把源端发过来的同步操作应用到目的端数据库;同时,源端还需要部署定时调度模块,设置定时调度模块的调度策略、生效时间和结束时间。源端还需要部署数据捕获模块,用于获取数据并与其他模块、系统交互。
如图1所示,本发明实施例提供了一种基于定时调度的数据同步方法,具体步骤如下。
步骤100:源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块。该步骤通过源端的数据捕获模块来捕获DDL新增表,并将DDL新增表的表id信息发送到定时调度模块,以使定时调度模块在达到预设时间周期后,根据表id信息进行数据装载命令的发送。
步骤200:源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端。该步骤中,定时调度模块基于表id信息定时发送数据装载命令到数据捕获模块,数据捕获模块根据数据装载命令执行数据装载,将对应的DDL新增表同步到目的端,该步骤同步的是DDL新增表的存量数据。
步骤300:源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步。该步骤中,数据捕获模块还将DDL新增表有关的后续操作筛选出来并发送到目的端进行同步,该步骤同步的是DDL新增表的增量数据。
基于上述步骤,本发明实施例可以完成DDL新增表的所有同步,也即实现现有技术中对DDL操作进行同步的需求和目的。
参考图2所示,在本优选实施例的一个具体实施方式中,步骤100的所述源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块具体包括如下步骤。
步骤101:源端的数据捕获模块在解析数据库日志时,捕获到满足过滤条件表的INSERT操作信息。在本优选实施例的一个具体实施方式中,所述满足过滤条件表的判断包括:根据模式名和表id判断是否满足过滤条件。数据捕获模块在配置文件中可以配置详细的过滤条件,配置方式为模式名.表名。数据捕获模块根据解析源端数据库归档日志可以解析出操作的模式名和表名,根据此模式名和表名判断是否满足过滤条件。
步骤102:判断本地字典文件中有没有记录该满足过滤条件表的对应信息,若没有则记录该满足过滤条件表为DDL新增表。数据捕获模块会在本地保存正在同步表信息的字典文件,若此表满足过滤条件且在本地文件中并未保存此表的表字典文件,则证明此表是在同步开启之后源端数据库新增的DDL表。另外,在本优选实施例的一个具体实施方式中,所述判断本地字典文件中有没有记录该满足过滤条件表的对应信息时,若有则跳过。若本地文件有记录,证明不是DDL新增表或者是已经经过装载加入同步的DDL新增表,可以跳过。
步骤103:将记录的DDL新增表的相应表id信息发送到定时调度模块。基于步骤101-步骤103的操作,源端数据捕获模块捕获到满足过滤条件表的INSERT操作信息,如果本地字典文件中没有记录此表的信息,则记录此表为DDL新增表,发送此表的相应信息到定时调度模块。
在本优选实施例的一个具体实施方式中,对于定时调度模块,所述定时调度模块设置有调度策略、生效时间和结束时间,其中,所述调度策略包括:设置调度频率,用来设置向数据捕获模块发送信息的时间间隔,也即用来设置多久向数据捕获模块发送信息。生效时间和结束时间则是用于约束调度策略在某时间段内生效。
在本优选实施例的一个具体实施方式中,所述定时调度模块在指定的定时执行时间点正常执行,若在定时周期内接收到了数据捕获模块发来的表id信息,则将表id信息进行整合过滤,向数据捕获模块发送相应表的数据装载命令。在本优选实施例的一个具体实施方式中,所述将表id信息进行整合过滤具体包括:判断此表id是否之前已经发送过,若已发送则丢弃。定时调度模块会记录下一段时间内发送来的表id,并进行整合(判断此表id是否之前已经发送过,若已发送则丢弃),将整合过后的表id定时发送到数据捕获模块。
参考图3所示,在本优选实施例的一个具体实施方式中,步骤200的所述源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端具体包括如下步骤。
步骤201:源端的数据捕获模块接收到定时调度模块发来的数据装载命令,基于数据装载命令携带的表id信息确定需要装载的DDL新增表。
步骤202:源端的数据捕获模块查询需要装载的DDL新增表在源端的数据,并记录此时装载时的装载LSN。
步骤203:将需要装载的DDL新增表的存量数据发送到目的端数据库进行同步,同时将该需要装载的DDL新增表的数据字典缓存在本地文件中。
基于步骤201-步骤203的操作,源端的数据捕获模块接收到定时调度模块发来的数据装载命令;源端的数据捕获模块查询装载表(需要装载的DDL新增表)在源端的数据,并记录此时装载时的装载LSN,表中存量数据会发送到目的端数据接收程序中并写入目标端数据库中,同时此表的数据字典会缓存在本地文件中。
参考图4所示,在本优选实施例的一个具体实施方式中,步骤300的所述源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步具体包括如下步骤。
步骤301:源端的数据捕获模块根据本地数据字典文件进行筛选,在读源端数据库归档日志时筛选出记录的装载LSN之后涉及到的对应DDL新增表的日志信息。
步骤302:对筛选出的日志信息进行解析。
步骤303:将解析出来的操作发送到目的端数据库进行执行,以完成对应DDL新增表的增量数据的同步。
基于步骤301-步骤303的操作,源端的数据捕获模块根据本地数据字典文件进行筛选同步,在读源端数据库归档日志时会将记录的装载LSN之后涉及到此表的操作进行同步,此表的增量数据会根据操作顺序发到执行端数据接收系统在目的端数据库执行。经历过上述所有步骤,DDL新增表完成加入同步的全部步骤。
上述实施例的所有步骤,可以解释如下:
首先,源端数据捕获模块在解析数据库日志时,捕获到满足过滤条件表的INSERT操作,如果本地字典文件中没有记录此表的信息,则记录此表为DDL新增表,发送此表的相应表id信息到定时调度模块。布置在源端的定时调度模块会定时执行数据装载命令,发送指令到源端的数据捕获模块。
其次,源端的数据捕获模块在执行装载命令的时候,会查询源端数据库,对源端新建的表锁表,记录下此时的LSN,并保存下此表的字典。
再次,源端的数据捕获模块会首先查询此表的表结构,将信息打包成特定的消息格式,将消息通过网络传输发送到对应的目的端接收程序,由目的端程序解析消息执行入库,DDL语句同步成功。其中,特定的消息格式为程序内部为了便于发送和解析将信息写入一段消息包,此消息包包含消息头和消息体。消息头存入的是lsn,op_id,trxid,模式名,表名等共有信息,消息体中存的是每条消息的特有信息。
接着,源端的数据捕获模块会查询此表的存量数据,将信息打包成特定的消息格式,将消息通过网络传输发送到对应的目的端接收程序,由目的端程序解析消息执行入库,存量数据同步成功。需说明,上一段描述的是DDL语句同步到目的端,而这一段描述的是将此表的存量数据查询出来并同步到目的端。
最后,源端的数据捕获模块在解析归档日志的时候,会根据保存的字典信息进行筛选,筛选出有效的日志信息进行解析,在装载LSN之前的归档日志信息会被丢弃,在装载LSN之后的归档日志信息解析出来的操作会发送到执行端进行执行,增量数据同步成功。
综上所述,本实施例提供一种基于定时调度的数据同步方法,源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块;数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端;通过该方法完成DDL新增表的存量同步,然后源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步;至此完成DDL新增表的所有同步,也即实现现有技术中对DDL操作进行同步的需求和目的。
另外需说明的是,在上述同步过程中,源端的数据捕获模块查询需要装载的DDL新增表在源端的数据,并记录此时装载时的装载LSN时,是需要对该表进行锁表操作的,而锁表操作在业务繁忙时可能无法锁表,也可能因为解锁时间会有较大差异,不利于现阶段越来越高要求的同步需求。所以本实施例还提供一种不上锁的方式下源端数据库定时同步的改进方式,源端数据库每次生成同步数据之后,会比对开始生成时刻的LSN和生成完的LSN是否发生变化;若未发生变化,则将同步数据直接发送给目标数据库;若发生变化,则重新生成同步数据;在上述实现过程中,源端数据库会根据发生重新生成情况的频率,将相应的同步时机设定为发生重新生成频率较小的时段,从而充分利用不上锁方式的优势。例如,在中午一段时间,源端数据库发生重新生成情况的频率高,在下午一段时间,源端数据库发生重新生成情况的频率低,说明中午一段时间数据库改动更频繁,下午一段时间数据库改动不频繁,那么就将同步时机设定为下午这段时间,进而充分发挥不上锁方式的同步优势。再者,源端数据库还可以调整同步时间间隔,获取一段时间内发生重新生成情况的次数比例,以统计出次数比例最小的同步时间间隔,例如:原本在一个时间段内每隔第一时间间隔进行一次同步,时间段内发生重新生成情况的次数比例占百分之五十;在该时间段内每隔第二时间间隔进行一次同步,时间段内发生重新生成情况的次数比例占百分之三十;在该时间段内每隔第三时间间隔进行一次同步,时间段内发生重新生成情况的次数比例占百分之十;那么就统计出次数比例最小的同步时间间隔:第三时间间隔,设置为同步时间间隔;通过该方式能提高同步成功率,能更充分的利用不上锁方式的优势。
实施例2:
基于实施例1提供的基于定时调度的数据同步方法,本实施例2通过一个具体的应用场景来对本发明进行更详细的说明。
上述方案举例如下:
对源端数据库进行如下操作,对应的时刻,LSN如下表所示:
操作编号 | 操作 | LSN |
op1 | CREATE TABLE SYSDBA.T1(ID INT,DATA1 VARchar(10)) | 1001 |
op2 | COMMIT | 1002 |
op3 | INSERT INTO SYSDBA.T1 VALUES(1,‘AAA’); | 1003 |
op4 | COMMIT | 1004 |
op5 | INSERT INTO SYSDBA.T1 VALUES(2,‘BBB’); | 1005 |
op6 | COMMIT | 1006 |
数据完整同步过程如下:
1、在操作op3时刻,源端日志解析系统解析到T1表的insert操作,T1表满足映射配置且此表的数据字典未缓存在本地(先判断是否满足过滤规则,若不满足则舍弃,若满足则在本地字典文件中寻找是否缓存了该表的数据字典,若未查询到此表的本地数据字典即满足条件),源端查询此表的表id信息并发送到相应的定时调度模块。
2、定时调度模块定时启动时,如果在前一个定时周期接收到源端数据捕获模块发送来的表id信息,则会根据表信息整合生成数据装载命令并定时向源端的数据捕获模块执行发送此装载命令。
3、源端的数据捕获模块在op5操作时刻接收到定时调度系统发送的装载命令,源端的数据捕获模块会执行装载命令,对T1表进行锁表并记录下此时的LSN数值(1005)。
4、源端的数据捕获模块会通过数据库接口去源库中查询T1表现有的数据,并发送到目标端的数据接收服务。
5、目标端的数据接收服务在接收到数据之后会通过数据库接口在目标端数据库执行,在LSN(1005)之前的存量数据通过数据装载的方式同步。
6、在源端的数据捕获模块装载数据的时候,同时会把T1表的字典缓存记录下来,通过读取解析源端数据库的日志信息,会将和T1表字典匹配的日志信息筛选出来进行同步。
7、日志筛选出来的操作在记录的LSN(1005)值之前的会过滤丢弃,而在记录值LSN(1005)之后的操作会发送到目的端进行同步。
8、在操作op5时刻之后的增量数据会通过解析归档日志的方式进行同步,至此,表T1加入到正常同步中。
综上所述,本实施例提供一种基于定时调度的数据同步方法,源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块;数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端;通过该方法完成DDL新增表的存量同步,然后源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步;至此完成DDL新增表的所有同步,也即实现现有技术中对DDL操作进行同步的需求和目的。
实施例3:
在上述实施例1至实施例2提供的基于定时调度的数据同步方法的基础上,本发明还提供了一种可用于实现上述方法的基于定时调度的数据同步设备,如图5所示,是本发明实施例的设备架构示意图。本实施例的基于定时调度的数据同步设备包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1至实施例2中的基于定时调度的数据同步方法、系统。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行基于定时调度的数据同步设备的各种功能应用以及数据处理,即实现实施例1至实施例2的基于定时调度的数据同步方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1至实施例2中的基于定时调度的数据同步方法,例如,执行以上描述的图1至图4所示的各个步骤。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ReadOnly Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以任意顺序实现,并存在如上所述的本发明的不同方面的许多其他变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于定时调度的数据同步方法,其特征在于,包括:
源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块;
源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端;
源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步。
2.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块捕获DDL新增表,并发送DDL新增表的表id信息到源端的定时调度模块具体包括:
源端的数据捕获模块在解析数据库日志时,捕获到满足过滤条件表的INSERT操作信息;
判断本地字典文件中有没有记录该满足过滤条件表的对应信息,若没有则记录该满足过滤条件表为DDL新增表;
将记录的DDL新增表的相应表id信息发送到定时调度模块。
3.根据权利要求2所述的基于定时调度的数据同步方法,其特征在于,所述满足过滤条件表的判断包括:根据模式名和表名判断是否满足过滤条件。
4.根据权利要求2所述的基于定时调度的数据同步方法,其特征在于,所述判断本地字典文件中有没有记录该满足过滤条件表的对应信息时,若有则跳过。
5.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述定时调度模块设置有调度策略、生效时间和结束时间,其中,所述调度策略包括:设置调度频率,用来设置向数据捕获模块发送信息的时间间隔;所述生效时间和结束时间用于约束调度策略在某时间段内生效。
6.根据权利要求5所述的基于定时调度的数据同步方法,其特征在于,所述定时调度模块在指定的定时执行时间点正常执行,若在定时周期内接收到了数据捕获模块发来的表id信息,则将表id信息进行整合过滤,向数据捕获模块发送相应表的数据装载命令。
7.根据权利要求5所述的基于定时调度的数据同步方法,其特征在于,所述将表id信息进行整合过滤具体包括:判断此表id是否之前已经发送过,若已发送则丢弃。
8.根据权利要求1所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块接收定时调度模块基于表id信息定时发送的数据装载命令并执行数据装载,将对应的DDL新增表同步到目的端具体包括:
源端的数据捕获模块接收到定时调度模块发来的数据装载命令,基于数据装载命令携带的表id信息确定需要装载的DDL新增表;
源端的数据捕获模块查询需要装载的DDL新增表在源端的数据,并记录此时装载时的装载LSN;
将需要装载的DDL新增表的存量数据发送到目的端数据库进行同步,同时将该需要装载的DDL新增表的数据字典缓存在本地文件中。
9.根据权利要求8所述的基于定时调度的数据同步方法,其特征在于,所述源端的数据捕获模块在解析归档日志时,筛选出与DDL新增表有关的日志信息进行解析,并将解析出的操作发送到目的端进行增量数据同步具体包括:
源端的数据捕获模块根据本地数据字典文件进行筛选,在读源端数据库归档日志时筛选出记录的装载LSN之后涉及到的对应DDL新增表的日志信息;
对筛选出的日志信息进行解析;
将解析出来的操作发送到目的端数据库进行执行,以完成对应DDL新增表的增量数据的同步。
10.一种基于定时调度的数据同步设备,其特征在于:
包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9中任一项所述的基于定时调度的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311826052.XA CN117762888A (zh) | 2023-12-27 | 2023-12-27 | 一种基于定时调度的数据同步方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311826052.XA CN117762888A (zh) | 2023-12-27 | 2023-12-27 | 一种基于定时调度的数据同步方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762888A true CN117762888A (zh) | 2024-03-26 |
Family
ID=90314328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311826052.XA Pending CN117762888A (zh) | 2023-12-27 | 2023-12-27 | 一种基于定时调度的数据同步方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762888A (zh) |
-
2023
- 2023-12-27 CN CN202311826052.XA patent/CN117762888A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460349B (zh) | 一种基于日志的测试用例生成方法和装置 | |
CN110765091B (zh) | 对账方法和系统 | |
CN109933630B (zh) | 数据库数据实时同步方法及设备 | |
CN110232093B (zh) | 数据库同步中基于闪回查询的初始化装载方法及设备 | |
CN108121827B (zh) | 一种全量数据的同步方法及装置 | |
US11836154B2 (en) | Data synchronization method and device for databases, and storage medium | |
CN108108431B (zh) | 数据同步方法和系统 | |
CN110543513A (zh) | 分布式数据库增量数据同步方法、设备及存储介质 | |
CN112559473B (zh) | 一种基于优先级的双路同步方法和同步系统 | |
CN111694798B (zh) | 一种基于日志解析的数据同步方法及数据同步系统 | |
CN111274257A (zh) | 一种基于数据的实时同步方法及系统 | |
CN110196786B (zh) | 数据库回滚同步中内存的控制方法及设备 | |
CN117762888A (zh) | 一种基于定时调度的数据同步方法和设备 | |
US7599903B2 (en) | Systems and methods for extracting data sets from an online relational database into a data warehouse | |
CN111708835B (zh) | 区块链数据存储方法及装置 | |
CN111930828B (zh) | 一种基于日志解析的数据同步方法和数据同步系统 | |
CN113348450A (zh) | 一种车载数据存储方法及系统 | |
CN110457284A (zh) | 基于SQLServer数据库的多时间点数据恢复方法及系统 | |
CN115422286A (zh) | 一种分布式数据库的数据同步方法及设备 | |
CN115658815A (zh) | 基于cdc实现的数据同步的方法 | |
CN112307118B (zh) | 基于日志解析同步的保障数据一致性的方法和同步系统 | |
CN114579662A (zh) | 内存数据库同步方法、系统、设备及存储介质 | |
CN111339184A (zh) | 一种Hive的同步方法、系统、设备以及介质 | |
CN114138802B (zh) | 数据对账方法、装置、设备及存储介质 | |
CN114442947B (zh) | 跨域桶删除方法、系统、终端及存储介质 |
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 |