CN108073658B - 一种数据同步***及方法 - Google Patents
一种数据同步***及方法 Download PDFInfo
- Publication number
- CN108073658B CN108073658B CN201611033544.3A CN201611033544A CN108073658B CN 108073658 B CN108073658 B CN 108073658B CN 201611033544 A CN201611033544 A CN 201611033544A CN 108073658 B CN108073658 B CN 108073658B
- Authority
- CN
- China
- Prior art keywords
- queue
- processed
- information
- module
- processing time
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
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
本发明公开了一种数据同步***及方法,包括:在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;预估各待处理队列的处理时长;根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。采用本发明,能够减少数据库同步时的时延。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据同步***及方法。
背景技术
为保障数据库的安全,通常建设容灾应急库,用以在生产库发生数据丢失、性能瓶颈时起到容灾、应急作用。采用数据库同步软件可以在同步数据后产生一个可定制的应急库,而数据库同步的时延是关注的重点。
图1为数据库同步软件架构示意图,如图所示,现有数据库软件通过对ORACLE日志进行分析获取跟踪源端数据库的交易指令,再根据不同业务的需求进行过滤和转化,产生与应用相吻合的指令发送到目标端数据库。
现有技术的不足在于:现有的数据同步机制会导致时延。
发明内容
本发明提供了一种数据同步***及方法,用以减少数据库***在数据同步过程中产生的时延。
本发明实施例中提供了一种数据同步***,包括:
接收模块,用于在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;
队列选择模块,用于预估各待处理队列的处理时长;
加载模块,用于根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。
较佳地,接收模块进一步用于通过调用队列选择模块获取新增的指令文件的队列编号。
较佳地,队列选择模块进一步用于根据从队列配置信息中获取的以下信息之一或者其组合预估各待处理队列的处理时长:
Insert的操作个数、Update的操作个数、Delete的操作个数、DDL的操作个数、Insert的操作时长、Update的操作时长、Delete的操作时长、DDL的操作时长。
较佳地,进一步包括:
监控模块,用于通过指令加载信息获取处理时长信息,根据该处理时长信息更新预估的各待处理队列的处理时长。
较佳地,进一步包括:读、排序模块以及若干分析模块,其中:
读、排序模块,用于在源端读取日志以及排序后,发送至归属于各通道的分析模块;
分析模块,用于将发送至本通道的日志分析后形成指令文件传输。
本发明实施例中还提供了一种数据同步方法,包括:
在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;
在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;
预估各待处理队列的处理时长;
根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。
较佳地,所述队列编号是新增的指令文件的队列编号是通过调用队列选择模块获取的。
较佳地,预估各待处理队列的处理时长,是根据从队列配置信息中获取的以下信息之一或者其组合进行预估的:
Insert的操作个数、Update的操作个数、Delete的操作个数、DDL的操作个数、Insert的操作时长、Update的操作时长、Delete的操作时长、DDL的操作时长。
较佳地,进一步包括:
通过指令加载信息获取处理时长信息;
根据该处理时长信息更新预估的各待处理队列的处理时长。
较佳地,进一步包括:
在源端读取日志以及排序后,发送至归属于各通道的分析模块分析后形成指令文件传输。
本发明有益效果如下:
在本发明实施例提供的技术方案中,在目标端,当收到指令文件后,即可进行处理,或则新增一行,或者使其操作数增加,使得接收到的每一个指令都能够进入队列被处理,无需顺序进行也就无需等待,从而减少了时延。进一步的,处理时,根据预估时长处理,从而能够保证即使在批量操作的对象发生变化时也能及时的对相应的队列进行处理,进一步减少了时延。
进一步的,在源端,在读取日志以及排序后,发送至归属于各通道的分析模块分析后形成指令文件传输。将日志读取、排序、分析模块划分成日志读取、排序模块和分析模块,由于是将ORACLE RAC环境下的每一个节点产生的日志由一个统一的模块进行读取、排序,然后交由归属于每一个通道的分析模块去进行分析,减少重复的日志读取、排序工作,使得日志预读功能不会成为分析速度的制约,同时也不存在分析过后对日志事务进行排序的时延。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为背景技术中数据库同步软件架构示意图;
图2为本发明实施例中数据同步***结构示意图;
图3为本发明实施例中接收模块工作流程示意图;
图4为本发明实施例中队列选择模块工作流程示意图;
图5为本发明实施例中接收模块工作流程示意图;
图6为本发明实施例中监控模块工作流程示意图;
图7为本发明实施例中数据同步方法实施流程示意图。
具体实施方式
发明人在发明过程中注意到:
现有的数据同步机制会导致时延,下面进行分析说明。
1、源端的时延分析。
为了提高分析速度,数据库同步程序会对归档日志进行预读。然而,在ORACLE RAC(real application clusters,实时应用集群)环境下经常会出现一个节点产生的归档日志少,另外一个节点产生归档日志多的情况。在这种情况下,日志预读功能反而成了影响分析速度的软肋,因为归档日志分析速度不一,读、分析、排序模块将两个节点之间有差别的、且已提交过的数据缓存到文件***上的事务量较平时就更大。
每分析一次归档日志都会对这些已经提交过缓存的事务进行一次排序,这无疑会增加处理时间。例如,在后台批量操作巨大时(经常达7-8万个,且是针对单节点执行,避免ORACLE RAC间交互),对于这么大量的事务进行排序,每分析一次都需要花费30-60秒钟时间(缓存已经提交的事务越多,花费的时间越长)。而目前读、排序、分析模块担负着读日志、排序、分析等工作,每个通道部署一个该模块,则所导致的数据同步时延就更大。以实例分析如下:
假设Redo(重做)日志组大小为2GB,数据量较多的月末、月初出帐期间产生日志1500个。一共有7个通道。读取日志就会产生:7*2GB*1500=21TB。数据排序需要做:7次(在RAC中批量业务只在一个节点上跑的环境下,排序消耗90%的时间,分析会越来越慢)。分析过滤也需要做:7次。
可见,在数据量增多导致日志量巨大时,重复进行读取、排序的工作量将给数据同步时延带来成倍的影响。
2、目标端静态负载分配与加载的时延分析。
目标端对于指令文件的队列分配采用静态分配的方式,在首次同步前,需要根据维护经验等信息配置静态分配方案,写入队列配置文件。目标端接收源端发来的指令文件,读取表对象名称信息并与队列配置文件匹配。设指令文件队列用Q表示,设指令文件有队列编号为0……n,Q0,Q1,Q2,Q3,……Qn。如果某表预配置为在队列Qn中加载,那么接收器就将该指令文件发送到队列Qn的指令文件容器,供加载器读取、加载、应用。
由于每一个表相关的指令文件有且只能在一个队列中被加载,且加载是顺序进行的,所以可保证数据操作的顺序性,进而保障数据操作的一致性。如果某一个表预配置在队列Q0中加载,则可以不用在队列配置文件中显式配置。每月新增的表默认都会归入队列Q0中。
每月批量操作的对象会发生变化,每月也会有新增的对象,现有静态负载配置无法做到自适应处理、动态调整,则会造成队列的指令文件分配不均,导致某些队列延迟严重,进而影响数据库整体同步时延。
基于此,本发明实施例中提出了一种数据同步方案以缩短数据库同延。方案中,针对源端分析时延存在的问题,提出将日志读取、排序、分析模块划分成日志读取、排序模块和分析模块,减少重复的日志读取、排序工作。
针对目标端加载时延存在的问题,提出在目标端增加一个监控功能模块收集各对象操作统计信息,增加一个队列选择功能模块根据队列负载选择队列,并对指令文件接收、装载及相应的配置信息进行优化、设计。下面结合附图对本发明的具体实施方式进行说明。
首先对实施环境进行说明。
针对业务操作特性,及其对数据库同步软件同步时延的影响,本发明实施例提供的技术方案是在现有数据库同步软件架构上进行优化,主要针对源端分析时延、目标端加载时延的问题进行研究,通过将源端日志读取、排序与分析、过滤功能分离,减少对于大批量日志重复读取、排序的巨大工作量;在目标端引入根据队列负载情况,动态、自适应选择队列的机制,以缩短数据库同步时延。图2为数据同步***结构示意图,如图所示,与图1所示的现有数据库同步***相比,与图1相比,图中加粗的功能模块示意方框为新的数据库同步机制的修改或新增部分。主要为源端的读、排序模块,分析模块;目标端的接收模块、队列选择模块、加载模块、监控模块等,下面对这些功能模块进行说明。为示区分,对于在现有架构上进行优化的模块、配置信息,其名称前面冠以LB.,LB意为负载均衡,LB仅用于区分,并不隐含其它含义或者限定。
接收模块,用于在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;
队列选择模块,用于预估各待处理队列的处理时长;
加载模块,用于根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。
下面分别说明。
其中涉及的部分英文含义为:
DDL(Data Definition Language,数据库定义语言),DDL是SQL语言的四大功能之一。用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束。
insert***:insert into表名(列名)values(各个字段的值),列名可以省略,也可以另一种形式,没有VALUES的insert into表名查询结果,如:insert into a,select”,”,”--这里的列要与表a定义相符才能正常***。
update修改:update表名set列名=值where条件,如:update a set a.a1='1'where a.a2='3',把a2=3的所有a1修改为1。
delete删除:删除表格中的记录,delete from表名where条件,如:删除a.a1='1'的所有记录,delete from a where a.a1='1'。
1、接收模块(图中示意为LB.接收模块),目标端接收到源端发来的指令文件后,将做一个判定,对于不在LB.队列配置文件中的对象,则调用队列选择模块获取当前队列中待处理的指令文件队列编号。之后,将指令文件放进该队列,同时在LB.队列配置文件中新增一行;对于已经在LB.队列配置文件中的对象,则将放进该对象的既定队列,L的值增加1。
实施中,新增一行是指在LB.队列配置信息中新增一行,其内容包含Q(队列)、对象名、L(锁数量:意为某队列中某对象的操作数)、Insert个数、Update个数、Delete个数、DDL个数、时长估计(PT)等字段。LB.队列配置信息文件的一行对应于一个队列等,后面的实施例中还会给出具体实施说明。
图3为接收模块工作流程示意图,如图所示,可以包括如下步骤:
步骤301、开始;
步骤302、接收新的指令文件;
其中,指令文件是源端发送到目标端的。
步骤303、判断是否有新的指令文件,是则转入步骤304,否则转入步骤301;
步骤304、读取指令文件中的对象名s及操作数;
其中,对象名s为当前读取的对象。
步骤305、获取LB.队列配置信息,读取LB.队列配置信息。
步骤306、判断对象是否已在队列中,是则转入步骤310,否则转入步骤307;
步骤307、调用队列选择模块;
步骤308、确定选择的队列编号;
步骤309、更新LB.队列配置信息,新增一行后转入步骤312;
新增一行的具体的计算机命令可以如下:
Q=Q(队列选择);锁数量设置L=1
Insert=s.Insert
Update=s.Update
Delete=s.Delete
DDL=s.DDL
其中,s.Insert意为当前读取对象的***操作数量;
s.Update意为当前读取对象的更新操作数量;
s.Delete意为当前读取对象的删除操作数量;
s.DDL意为当前读取对象的DDL操作数量。
步骤310、对象s已在队列中,更新LB.队列配置信息,将当前锁数量L值加1;
将L值加1的具体的计算机命令可以如下:
L=L+1
Insert+=s.Insert
Update+=s.Update
Delete+=s.Delete
DDL+=s.DDL
其中,s.Insert意为当前读取对象的***操作数量;
s.Update意为当前读取对象的更新操作数量;
s.Delete意为当前读取对象的删除操作数量;
s.DDL意为当前读取对象的DDL操作数量。
步骤311、更新LB.队列配置文件,更新现有行转入步骤312;
步骤312、将指令文件发往队列Q。
发往队列Q后,进入队列中,可以表示如下:./队列Qn/。
2、队列选择模块(图中示意为LB.队列选择模块),用于读取LB.队列配置信息、LB.对象处理均长信息,根据队列中的Insert、Update、Delete、DDL操作个数,以及Insert、Update、Delete、DDL单个操作时长,计算、更新LB.队列配置信息中的预估时长,分别汇总各队列的预估时长之和。之后,选择预估时长最小的队列。
图4为队列选择模块工作流程示意图,如图所示,可以包括如下步骤:
步骤401、开始;
步骤402、获取LB.队列配置信息,读取LB.队列配置信息;
步骤403、s=0;Min(PT)=999999;
其中,s为行号变量,初始化设置行号变量s为0,Min(PT)为一个大值。从第0行开始,一直到最后一行,选取预估时长(PT)值最小那一行的队列编号。
步骤404、比较PTs和Min(PT);
将当前行的预估时长(PTs)的值与Min(PT)做比较。
步骤405、判断PTs<=Min(PT),若小于等于则转入步骤406,否则转入步骤407;
步骤406、Min(PT)=PTs;
步骤407、s=s+1;
步骤408、判断s>Q(max),是则转入步骤409,否则转入步骤404;
步骤409、Q=Qs,放入LB.选定队列;
其中,Q为队列。
其中,Qs意为LB.队列配置信息中预估时长最小那一行的队列编号,Q=Qs为根据规则选取的预估时长(PT)值最小的队列选择结果。
步骤410、结束。
3、加载模块(图中示意为LB.加载模块),假设每个同步子***都有n个队列,则有n个加载器(loader进程)与队列一一对应。每个加载器分别从各自队列的指令文件容器中读取指令文件,并加载、应用。指令文件被加载并应用了之后,也将修改LB.队列配置文件,L的值减1。当L的值为0时,该行将被删除。
图5为接收模块工作流程示意图,如图所示,可以包括如下步骤:
步骤501、开始;
步骤502、从队列文件./LB.Qn/中,读取指令文件;
步骤503、判断是否有新的指令文件,有则转入步骤504,否则转入步骤501;
步骤504、应用指令文件;
步骤505、写指令加载信息,写入LB.指令加载信息;
步骤506、更新LB.队列配置信息,更新对应的行L=L-1后,写入LB.队列配置信息;
步骤507、判断L=0,等于则转入步骤508,否则转入步骤502;
步骤508、更新LB.队列配置信息,删去对应的行后,写入LB.队列配置信息,转入步骤502。
4、实施中,还可以进一步包括:
监控模块,用于通过指令加载信息获取处理时长信息,根据该处理时长信息更新预估的各待处理队列的处理时长。
监控模块(图中示意为LB.监控模块),读取指令加载信息,并进行分析、计算,得到对象处理均长信息,并更新LB.队列配置信息中的预估时长。
图6为监控模块工作流程示意图,如图所示,可以包括如下步骤:
步骤601、开始;
步骤602、获取LB.指令装载信息,读取LB.指令装载信息;
步骤603、分析指令装载信息;
步骤604、计算对象处理均长;
步骤605、更新对象处理均长,写入LB.对象处理均长信息;
步骤606、获取LB.对象处理均长信息,读取LB.对象处理均长信息;
步骤607、计算对象处理预估时长;
步骤608、更新对象处理预估时长后写入LB.队列配置信息;
步骤609、结束。
下面对实施过程中涉及到的配置信息的实施进行说明,同样,LB仅用以标识以示与现有技术的区别。
1、LB.队列配置信息。
LB.队列配置文件与队列配置文件相比,可以增加几列。LB.队列配置信息包含:Q(队列)、对象名、L(锁数量:意为某队列中某对象的操作数)、Insert个数、Update个数、Delete个数、DDL个数、时长估计(PT)等字段。
2、选定队列信息。
选定队列信息包含队列编号等字段。
3、指令加载信息。
指令加载信息可以包含:对象名、Insert个数、Update个数、Delete个数、DDL个数、Insert时长、Update时长、Delete时长、DDL时长等字段。
4、对象处理均长信息。
对象处理均长信息可以包含:对象名、单个Insert处理时长、单个Update处理时长、单个Delete处理时长、单个DDL处理时长等字段。
考虑到对源端的时延处理,实施中还可以进一步包括:读、排序模块以及若干分析模块,其中:
读、排序模块,用于在源端读取日志以及排序后,发送至归属于各通道的分析模块;
分析模块,用于将发送至本通道的日志分析后形成指令文件传输。
实施中,针对源端分析时延存在的问题,可以将日志读取、排序、分析模块划分成日志读取、排序模块和分析模块,减少重复的日志读取、排序工作。
具体的,是将ORACLE RAC环境下的每一个节点产生的日志由一个统一的模块进行读取、排序,然后交由归属于每一个通道的分析模块去进行分析,使得日志预读功能不会成为分析速度的制约,同时也不存在分析过后对日志事务进行排序的时延。
通过将源端日志读取、排序与分析、过滤功能分离,减少了对于大批量日志重复读取、排序的巨大工作量。
基于同一发明构思,本发明实施例中还提供了一种数据同步方法,由于该方法解决问题的原理与一种数据同步***相似,因此该方法的实施可以参见***的实施,重复之处不再赘述。
图7为数据同步方法实施流程示意图,如图所示,可以包括:
步骤701、在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;
步骤702、在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;
步骤703、预估各待处理队列的处理时长;
步骤704、根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。
实施中,所述队列编号是新增的指令文件的队列编号是通过调用LB.队列选择模块获取的。
实施中,预估各待处理队列的处理时长,是根据从队列配置信息中获取的以下信息之一或者其组合进行预估的:
Insert的操作个数、Update的操作个数、Delete的操作个数、DDL的操作个数、Insert的操作时长、Update的操作时长、Delete的操作时长、DDL的操作时长。
实施中,还可以进一步包括:
通过指令加载信息获取处理时长信息;
根据该处理时长信息更新预估的各待处理队列的处理时长。
实施中,还可以进一步包括:
在源端读取日志以及排序后,发送至归属于各通道的分析模块分析后形成指令文件传输。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
综上所述,在本发明实施例中提供了数据库同步的方案,以缩短数据库同延。
针对源端分析时延存在的问题,提出将日志读取、排序、分析模块划分成日志读取、排序模块和分析模块,减少重复的日志读取、排序工作。
针对目标端加载时延存在的问题,提出在目标端增加一个监控模块收集各对象操作统计信息,增加一个队列选择模块根据队列的负载选择队列,并对指令文件接收模块、装载模块及相应的配置信息进行优化、设计。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据同步***,其特征在于,包括:
接收模块,用于在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;
队列选择模块,用于预估各待处理队列的处理时长;
加载模块,用于根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。
2.如权利要求1所述的数据同步***,其特征在于,接收模块进一步用于通过调用队列选择模块获取新增的指令文件的队列编号。
3.如权利要求1所述的数据同步***,其特征在于,队列选择模块进一步用于根据从队列配置信息中获取的以下信息之一或者其组合预估各待处理队列的处理时长:
Insert的操作个数、Update的操作个数、Delete的操作个数、DDL的操作个数、Insert的操作时长、Update的操作时长、Delete的操作时长、DDL的操作时长。
4.如权利要求1所述的数据同步***,其特征在于,进一步包括:
监控模块,用于通过指令加载信息获取处理时长信息,根据该处理时长信息更新预估的各待处理队列的处理时长。
5.如权利要求1至4任一所述的数据同步***,其特征在于,进一步包括:读、排序模块以及若干分析模块,其中:
读、排序模块,用于在源端读取日志以及排序后,发送至归属于各通道的分析模块;
分析模块,用于将发送至本通道的日志分析后形成指令文件传输。
6.一种数据同步方法,其特征在于,包括:
在目标端接收源端发送的指令文件后,读取指令文件中对象的信息后放入相应的待处理队列;
在放入相应的待处理队列时,若对象不在待处理队列中,则在队列配置文件中新增一行,若对象已在待处理队列中,则将队列配置文件中的该对象的锁数量L值加1;
预估各待处理队列的处理时长;
根据处理时长进行加载待处理队列,并在加载后将L值减1,以及删除L值为0的行。
7.如权利要求6所述的方法,其特征在于,所述队列编号是新增的指令文件的队列编号是通过调用队列选择模块获取的。
8.如权利要求6所述的方法,其特征在于,预估各待处理队列的处理时长,是根据从队列配置信息中获取的以下信息之一或者其组合进行预估的:
Insert的操作个数、Update的操作个数、Delete的操作个数、DDL的操作个数、Insert的操作时长、Update的操作时长、Delete的操作时长、DDL的操作时长。
9.如权利要求6所述的方法,其特征在于,进一步包括:
通过指令加载信息获取处理时长信息;
根据该处理时长信息更新预估的各待处理队列的处理时长。
10.如权利要求6至9任一所述的方法,其特征在于,进一步包括:
在源端读取日志以及排序后,发送至归属于各通道的分析模块分析后形成指令文件传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611033544.3A CN108073658B (zh) | 2016-11-16 | 2016-11-16 | 一种数据同步***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611033544.3A CN108073658B (zh) | 2016-11-16 | 2016-11-16 | 一种数据同步***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073658A CN108073658A (zh) | 2018-05-25 |
CN108073658B true CN108073658B (zh) | 2020-06-12 |
Family
ID=62161304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611033544.3A Active CN108073658B (zh) | 2016-11-16 | 2016-11-16 | 一种数据同步***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073658B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113782A (zh) * | 2019-04-29 | 2019-08-09 | 惠州Tcl移动通信有限公司 | 数据传输方法、装置及存储介质 |
CN111159020B (zh) * | 2019-12-20 | 2021-11-05 | 武汉达梦数据库股份有限公司 | 一种应用于同步软件测试的方法和装置 |
CN113704354B (zh) * | 2021-08-30 | 2023-10-20 | 康键信息技术(深圳)有限公司 | 一种数据同步方法及装置、计算机设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护***和方法 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7870563B2 (en) * | 2005-12-30 | 2011-01-11 | Sap Ag | Triggering workflows based on middleware events |
-
2016
- 2016-11-16 CN CN201611033544.3A patent/CN108073658B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108073658A (zh) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11341139B2 (en) | Incremental and collocated redistribution for expansion of online shared nothing database | |
US10783198B2 (en) | Row-based data filtering at a database level | |
US7769714B2 (en) | Automatic error correction for replication and instantaneous instantiation | |
US8224845B2 (en) | Transaction prediction modeling method | |
US9135071B2 (en) | Selecting processing techniques for a data flow task | |
US8364751B2 (en) | Automated client/server operation partitioning | |
US8280917B1 (en) | Batching content management operations to facilitate efficient database interactions | |
CN109643310B (zh) | 用于数据库中数据重分布的***和方法 | |
WO2019148713A1 (zh) | Sql语句处理方法、装置、计算机设备和存储介质 | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN108073658B (zh) | 一种数据同步***及方法 | |
US8898677B2 (en) | Data arrangement calculating system, data arrangement calculating method, master unit and data arranging method | |
KR102264119B1 (ko) | CaseDB: 엣지컴퓨팅을 위한 저비용 Put-Intensive 키-벨류 저장장치 | |
CN107301214A (zh) | 在hive中数据迁移方法、装置及终端设备 | |
US9305067B2 (en) | Creation of change-based data integration jobs | |
US8676850B2 (en) | Prioritization mechanism for deletion of chunks of deduplicated data objects | |
US7958083B2 (en) | Interacting methods of data summarization | |
US8600990B2 (en) | Interacting methods of data extraction | |
EP3267329A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
CN111414422B (zh) | 一种数据分布方法、装置、设备和存储介质 | |
CN110825734B (zh) | 平衡树的并发更新方法及读写*** | |
WO2013066010A1 (ko) | 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법 | |
US9256626B2 (en) | Maintaining multiple copy versions of component values in a system | |
CN110515989B (zh) | 一种基于财务数据管理平台的数据实时统计方法 | |
Qu et al. | HBelt: Integrating an incremental ETL pipeline with a big data store for real-time analytics |
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 |