CN111694798B - 一种基于日志解析的数据同步方法及数据同步系统 - Google Patents

一种基于日志解析的数据同步方法及数据同步系统 Download PDF

Info

Publication number
CN111694798B
CN111694798B CN202010329293.3A CN202010329293A CN111694798B CN 111694798 B CN111694798 B CN 111694798B CN 202010329293 A CN202010329293 A CN 202010329293A CN 111694798 B CN111694798 B CN 111694798B
Authority
CN
China
Prior art keywords
transaction
target
data synchronization
executed
synchronized
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
CN202010329293.3A
Other languages
English (en)
Other versions
CN111694798A (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.)
Wuhan Dream Database Co ltd
Original Assignee
Wuhan Dream Database 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 Wuhan Dream Database Co ltd filed Critical Wuhan Dream Database Co ltd
Priority to CN202010329293.3A priority Critical patent/CN111694798B/zh
Publication of CN111694798A publication Critical patent/CN111694798A/zh
Application granted granted Critical
Publication of CN111694798B publication Critical patent/CN111694798B/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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明一种基于日志解析的数据同步方法及数据同步系统,该数据同步方法包括:从源端数据库的日志中获取每个操作对应的事务标识号,根据事务标识号将每个操作归类到相应的事务队列;判断是否存在操作数量达到设定值的待同步事务;若存在,则将待同步事务中当前存在的操作同步至目标端数据库;在获取到属于待同步事务的操作后,以异步投递的方式将相应的操作归类到待同步事务。在本发明中,在目标端提供一种规模较大的事务不必等到确认该事务是否提交或回滚而提前执行的方法,达到缩短该类事务的同步延时。

Description

一种基于日志解析的数据同步方法及数据同步系统
技术领域
本发明属于数据同步领域,更具体地,涉及一种基于日志解析的数据同步方法及数据同步系统。
背景技术
在基于日志解析架构的数据库实时同步系统(支持异构)中,数据同步往往是按事务为单位进行同步的。在数据同步系统中,源端数据同步服务按照数据库日志生成的顺序来捕获数据库的操作,然后依次发往目标端,目标端数据同步服务则按照源端发送操作的先后顺序来接收管理事务,事务在目标端按事务ID分类,当收到某个事务的提交消息后,该事务才会被执行,因此,事务同步的延时往往取决于源端事务在日志流中的时间跨度,如果某个事务规模较大,它在源端执行花费了N秒,该事务的第一个操作和最后一个操作在日志流中的时间跨度也会是N秒,该事务同步的延时一般都会大于N秒,如何缩短这种规模较大事务的同步延时就成为业界亟待解决的技术问题。
鉴于此,克服该现有技术产品所存在的不足是本技术领域亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于日志解析的数据同步方法及数据同步系统,其目的在于,在目标端提供一种规模较大的事务不必等到确认该事务是否提交或回滚而提前执行的方法,达到缩短该类事务的同步延时。
为实现上述目的,按照本发明的一个方面,提供了一种基于日志解析的数据同步方法,所述数据同步方法包括:
从源端数据库的日志中获取每个操作对应的事务标识号,根据所述事务标识号将每个操作归类到相应的事务队列;
判断是否存在操作数量达到设定值的待同步事务;
若存在,则将所述待同步事务中当前存在的操作同步至目标端数据库;
在获取到属于所述待同步事务的操作后,以异步投递的方式将相应的操作归类到所述待同步事务。
优选地,将所述待同步事务中当前存在的操作同步至所述目标端数据库包括:
依次从所述待同步事务中取出待执行操作,其中,所述待执行操作中包含一个操作或多个操作;
获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作。
优选地,获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作包括:
若所述待执行操作为DML操作,则获取所述待执行操作的第一个操作的操作编号以及最后一个操作的操作编号,以获取所述待执行操作对应的操作编号范围;
通过所述第一个操作的操作编号和所述操作编号范围创建所述待执行操作的保存点,将所述待执行操作的保存点添加至保存点链表;
将所述待执行操作同步至所述目标端数据库。
优选地,所述数据同步方法还包括:
若所述待执行操作为部分回滚操作,则获取所述部分回滚操作需要回滚到的目标操作编号;
根据所述目标操作编号,在所述保存点链表中,获取包含所述目标操作编号的目标保存点;
将所述待同步事务回滚至所述目标保存点。
优选地,将所述待同步事务回滚至所述目标保存点之后还包括:
补充执行在回滚至所述目标保存点时,不属于回滚范围的操作。
优选地,所述补充执行在回滚至所述目标保存点时,不属于回滚范围的操作包括:
获取所述目标保存点中全部的操作编号;
判断所述目标保存点中是否存在小于所述目标操作编号的操作编号;
若存在,则补充执行小于所述目标操作编号的操作编号对应的操作。
优选地,在将所述待同步事务回滚至所述目标保存点之前还包括:
判断所述目标保存点是否已经被回滚过;
若所述目标保存点未被回滚过,则将所述待同步事务回滚至所述目标保存点;
若所述目标保存点已经被回滚过,则无需再进行回滚。
优选地,获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作包括:当所述待执行操作为DML操作时,判断相邻的两个操作是否为同类型操作,若相邻的两个操作为同类型操作,则将对应的操作归类为同一待执行操作,以便于批量执行。
优选地,所述数据同步方法还包括:
若所述待执行操作为提交操作,则提交整个事务;
若所述待执行操作为回滚操作,则回滚整个事务。
为实现上述目的,按照本发明的另一个方面,提供了一种数据同步系统,所述数据同步系统包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的数据同步方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:根据事务的规模自适应调整同步策略,对于大规模的事务,当事务达到特定的规模后,便将已经接收到的操作同步到目标端,无需在接收到提交信息后再进行数据同步,可以复用事务在源端所经历的时间跨度,在源端执行提交操作后,目标端可以紧随源端执行提交操作,可以有效缩短规模较大的事务在目标端开始执行的时间与源端该事务起始时间的间隔,从而缩短了该事务同步的延时。
附图说明
图1是本发明实施例提供的一种基于日志解析的数据同步方法的流程示意图;
图2是本发明实施例基于待执行操作的操作类型执行数据同步方法的流程示意图;
图3是本发明实施例提供的一种数据同步系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
在实际应用场景下,在源端部署源端数据同步系统,在目标端部署目标端数据同步系统,所述源端数据同步系统用于将源端数据库的日志发送至所述目标端数据同步系统,所述目标端数据同步系统用于解析所述源端数据库的日志,以将源端数据库的同步操作应用到所述目标端数据库。
源端数据库的在执行操作时,针对操作会产生各种日志,包括普通的DML日志、提交、回滚日志或部分回滚日志。日志捕获服务在捕获到这些日志以后,需要在源端做一些分析处理,还原出这些操作后再发送到目标端,本发明重点是在目标端提供一种规模较大的事务不必等到确认该事务是否提交或回滚而提前执行的方法,达到缩短该类事务的同步延时。
如图1所示,在本实施例中,一种基于日志解析的数据同步方法具体包括如下步骤:
步骤101:从源端数据库的日志中获取每个操作对应的事务标识号,根据所述事务标识号将每个操作归类到相应的事务队列。
源端数据库在执行各个操作时,会产生日志记录相应的操作,日志中会记录操作所属事务的事务标识号(事务ID)以及该操作在其所属的事务中的操作编号。
目标端数据同步服务获取源端数据库的日志流,对源端数据库的日志进行解析,获取每个操作对应的事务标识号,根据该事务标识号将每个操作归类到相应的事务队列中。
步骤102:判断是否存在操作数量达到设定值的待同步事务。
目前,在进行数据同步时,针对每一个事务,目标端数据同步服务在接收到该事务的提交操作后,再将该事务对应的所有操作发送至目标端数据库,进行数据同步。针对大规模的数据同步事务,从第一个操作到提交操作,所经历的时间较长,若在接收到大规模事务的提交操作后,才进行数据同步,会造成同步延时。
为了解决此问题,在本实施例中,目标端数据同步服务依据事务ID分类管理事务,通过判断事务当前已经接收到操作的数量规模是否达到了某个设定值,如果达到了,则把事务提前执行,不再等待该事务的提交确认消息,从而缩短该类事务的同步时间延迟。
其中,设定值可以依据实际情况而定,具体的设定值与事务的类型有关。
步骤103:若存在,则将所述待同步事务中当前存在的操作同步至目标端数据库。
若某个事务中当前存在的操作的人数量达到设定值,则说明待同步事务的规模较大时,将该事务标定为待同步事务,将待同步事务投入到待执行队列,然后将待同步事务中当前已经存在的操作,同步至所述目标端数据库。
若某个事务中当前存在的操作数量未达到设定值,可以继续接收下一个操作,然后实时获取当前存在的操作的数量,在操作数量达到设定值后,将该事务标定为待同步事务,并将所述待同步事务投入到待执行队列。
步骤104:在获取到属于所述待同步事务的操作后,以异步投递的方式将相应的操作归类到所述待同步事务。
针对后续接到所述待同步事务的操作,将以异步投递的方式归类到所述待同步事务中,直至事务结束。
在本实施例中,根据事务的规模自适应调整同步策略,对于大规模的事务,当事务达到特定的规模后,便将已经接收到的操作同步到目标端,无需在接收到提交信息后再进行数据同步,可以复用事务在源端所经历的时间跨度,在源端执行提交操作后,目标端可以紧随源端执行提交操作,可以有效缩短规模较大的事务在目标端开始执行的时间与源端该事务起始时间的间隔,从而缩短了该事务同步的延时。
虽然在现实的应用场景中,存在很多事务回滚的情况,如果目标端在未确认事务是否提交时预先执行,会导致回滚这些事务操作给目标端数据库带来额外的开销,有可能反而会影响同步的整体性能。但在大多数的应用场景中,回滚事务的数量远远小于提交的事务数,所以就算在源端回滚的事务在目标端上先运行了,回滚这些事务的代价也比较小,仍然有助于同步性能的整体提升。而且,本申请增加了配置事务规模的设定值,一般的小事务则可以有效的规避这种复杂的处理逻辑,小事务在确认回滚以后可以直接丢弃,从而可以有效的平衡该优化方案带来的不利影响。
对于一个事务,该事务包括对个操作,其中,操作类型包括DML(DataManipulation Language,简写为DML)操作、提交操作、回滚操作和部分回滚操作。
其中,回滚操作用于把整个事务进行回滚,部分回滚操作用于根据部分回滚操作定位的操作,对事务进行部分回滚,部分回滚操作指的是源端某个事务在执行时,回滚了已经执行过的一部分操作但不是全部操作。
举例而言,下面事务中包含部分回滚操作:
INSERT INTO T(C)VALUES(1);
SAVEPOINT SP1;
INSERT INTO T(C)VALUES(2);
ROLLBACK TO SAVEPOINT SP1;//部分回滚操作
COMMIT;
结合前述代码,该事务回滚了向T表插入2的操作(INSERT INTO T(C)VALUES(2),前述操作被回滚),事务提交时,整个事务只向表插入了1行。
因此,在实际应用场景下,在步骤103中,具体包括依次从所述待同步事务中取出待执行操作,其中,所述待执行操作中包含一个操作或多个操作;获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作。
具体地,依次取出待同步事务中的操作,当待执行操作为DML操作时,判断相邻的两个操作是否为同类型操作,若相邻的两个操作为同类型操作,则将对应的操作归类为同一待执行操作,以便于批量执行,提高同步的效率。
结合图2,在步骤103中,获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作具体执行过程如下:
当所述待执行操作为DML操作时,按照下述情况(1)进行数据同步,当所述待执行操作为部分回滚操作,按照下述情况(2)进行数据同步,若所述待执行操作为提交操作,按照下述情况(3)进行数据同步,若所述待执行操作为回滚操作,按照下述情况(4)进行数据同步。
情况(1):若所述待执行操作为DML操作,获取待执行操作对应的操作编号,创建保存点,并将所述待执行操作同步至所述目标端数据库。
具体地,待执行操作可以是一行数据也可以是多行数据,获取所述待执行操作的第一个操作的操作编号以及最后一个操作的操作编号,以获取所述待执行操作对应的操作编号范围,其中,DML操作包括插入操作(insert)、更新操作(update)和删除(delete)操作,操作编号为DML操作在事务中的编号。
通过所述第一个操作的操作编号和所述操作编号范围创建所述待执行操作的保存点,将所述待执行操作的保存点添加至保存点链表。其中,保存点的命名规则为用该次执行的第一个操作中标记的操作编号来命名,然后记录下该保存点包含的操作编号范围。
在创建好保存点,并将该保存点添加到保存点链表后,将所述待执行操作同步至所述目标端数据库。其中,后续待同步事务出现部分回滚操作时,需要通过保存点进行部分回滚操作的定位。
情况(2):在实际应用场景下,存在事务部分回滚的情况,按照本发明的方法,有可能会出现源端已经部分回滚的事务操作,在目标端被同步,因此,在目标端需要根据保存点进行这部分操作的回滚。
若所述待执行操作为部分回滚操作,则获取所述部分回滚操作需要回滚到的目标操作编号;根据所述目标操作编号,在所述保存点链表中,获取包含所述目标操作编号的目标保存点;将所述待同步事务回滚至所述目标保存点。
由于每个保存点可能包含多个操作(批量执行),在回滚该保存点时,操作编号在部分回滚操作所指向的操作编号之前的操作也会被回滚掉,所以在进行后续操作时,要把这部分被误回滚的操作补充执行,为了保证数据的一致性,在将所述待同步事务回滚至所述目标保存点之后还包括:补充执行在回滚至所述目标保存点时,不属于回滚范围的操作。
具体地,可以根据如下方式进行补充:获取所述目标保存点中全部的操作编号;判断所述目标保存点中是否存在小于所述目标操作编号的操作编号;若存在,则补充执行小于所述目标操作编号的操作编号对应的操作。
在实际应用场景下,在回滚到保存点前要判断该保存点是否已经回滚,因为一个保存点包含了一批操作,在部分回滚时可能会多次定位到该保存点,如果已经回滚过则无需再次回滚。
在优选的实施例中,在将所述待同步事务回滚至所述目标保存点之前还包括:判断所述目标保存点是否已经被回滚过;若所述目标保存点未被回滚过,则将所述待同步事务回滚至所述目标保存点;若所述目标保存点已经被回滚过,则无需再进行回滚。
情况(3):若所述待执行操作为提交操作,则提交整个事务,并清理与被提交的事务相关的所有保存点。
情况(4):若所述待执行操作为回滚操作,则回滚整个事务,并清理与被会馆事务相关的所有保存点。
实施例2:
为便于理解前述实施例1的数据同步方法,本实施例提供一具体实例下面例子简化了事务的规模,用最简单的方式举例如下:
源数据库现有表T(C INT),拥有1行数据,C列值为1,在源端执行下列操作:
DELETE FROM T WHERE C=1;
SAVEPOINT SP1;
INSERT INTO T(C)VALUES(2);
SAVEPOINT SP2;
INSERT INTO T(C)VALUES(3);
ROLLBACK TO SAVEPOINT SP2;
INSERT INTO T(C)VALUES(4);
COMMIT;
上述事务在源端数据库日志中依次会生成如下操作:DELETE(C=1)+INSERT(C=2)+INSERT(C=3)+ROLLBACK(C=3)+INSERT(4)+COMMIT
源端日志解析服务捕获到这些操作后,会提取到该事务的ID以及这些操作在事务内的操作编号如下:
Figure BDA0002464372750000101
按照上述实施例1的数据同步方法,执行过程如下:
(1)每次执行时,都要在目标端数据库中设置一个保存点,并且保存点命名规则采用执行操作的第一个操作的操作编号来命名,先设置保存点SAVEPOINT SAVEPOINT_1;再执行DELETE FROM T WHERE C=1;执行完以后,该保存点覆盖的操作编号范围是(1到1);
(2)紧接着后面两个连续的INSERT操作,一次批量执行。先设置保存点SAVEPOINTSAVEPOINT_2;再执行INSERT INTO T(C)VALUES(2)(3);执行完以后,该保存点覆盖的操作编号范围是(2到3);
(3)接着下一个是部分回滚操作,获得回滚的目标操作编号为3,在前面事务的保存点链表中搜索,发现该目标操作编号在保存点SAVEPOINT_2中,所以回滚到上述保存点:ROLLBACK TO SAVEPOINT_2,执行完以后,第2步插入的2和3会都被回滚掉;
(4)由于编号为2的操作被第3步回滚掉了,需要补充执行后,通过对比操作编号,把SAVEPOINT_2保存点中操作编号比3小的操作进行补充执行INSERT INTO T(C)VALUES(2);
(5)补充完成以后继续执行下一个INSERT操作,先设置保存点SAVEPOINTSAVEPOINT_4;再执行INSERT INTO T(C)VALUES(4);执行完以后,该保存点覆盖的操作编号范围是(4到4);
(6)最后碰到提交操作,执行COMMIT完成同步。
实施例3:
请参阅图3,图3是本发明实施例提供的一种数据同步系统的结构示意图。本实施例的数据同步系统包括一个或多个处理器61以及存储器62。其中,图3中以一个处理器61为例。
处理器61和存储器62可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器62作为一种基于数据同步的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的数据同步的方法以及对应的程序指令。处理器61通过运行存储在存储器62中的非易失性软件程序、指令以及模块,从而执行数据同步的方法的各种功能应用以及数据处理,实现前述实施例的数据同步的方法的功能。
其中,存储器62可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器62可选包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至处理器61。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
关于数据同步的方法请前述实施例中相关的文字描述在此,不再赘述。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(RandomAccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于日志解析的数据同步方法,其特征在于,所述数据同步方法包括:
从源端数据库的日志中获取每个操作对应的事务标识号,根据所述事务标识号将每个操作归类到相应的事务队列;
判断是否存在操作数量达到设定值的待同步事务;
若存在,则将所述待同步事务中当前存在的操作同步至目标端数据库;
在获取到属于所述待同步事务的操作后,以异步投递的方式将相应的操作归类到所述待同步事务。
2.根据权利要求1所述的数据同步方法,其特征在于,将所述待同步事务中当前存在的操作同步至所述目标端数据库包括:
依次从所述待同步事务中取出待执行操作,其中,所述待执行操作中包含一个操作或多个操作;
获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作。
3.根据权利要求2所述的数据同步方法,其特征在于,获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作包括:
若所述待执行操作为DML操作,则获取所述待执行操作的第一个操作的操作编号以及最后一个操作的操作编号,以获取所述待执行操作对应的操作编号范围;
通过所述第一个操作的操作编号和所述操作编号范围创建所述待执行操作的保存点,将所述待执行操作的保存点添加至保存点链表;
将所述待执行操作同步至所述目标端数据库。
4.根据权利要求3所述的数据同步方法,其特征在于,所述数据同步方法还包括:
若所述待执行操作为部分回滚操作,则获取所述部分回滚操作需要回滚到的目标操作编号;
根据所述目标操作编号,在所述保存点链表中,获取包含所述目标操作编号的目标保存点;
将所述待同步事务回滚至所述目标保存点。
5.根据权利要求4所述的数据同步方法,其特征在于,将所述待同步事务回滚至所述目标保存点之后还包括:
补充执行在回滚至所述目标保存点时,不属于回滚范围的操作。
6.根据权利要求5所述的数据同步方法,其特征在于,所述补充执行在回滚至所述目标保存点时,不属于回滚范围的操作包括:
获取所述目标保存点中全部的操作编号;
判断所述目标保存点中是否存在小于所述目标操作编号的操作编号;
若存在,则补充执行小于所述目标操作编号的操作编号对应的操作。
7.根据权利要求4所述的数据同步方法,其特征在于,在将所述待同步事务回滚至所述目标保存点之前还包括:
判断所述目标保存点是否已经被回滚过;
若所述目标保存点未被回滚过,则将所述待同步事务回滚至所述目标保存点;
若所述目标保存点已经被回滚过,则无需再进行回滚。
8.根据权利要求2所述的数据同步方法,其特征在于,获取所述待执行操作的类型,根据所述待执行操作的类型执行相应的同步操作包括:
当所述待执行操作为DML操作时,判断相邻的两个操作是否为同类型操作,若相邻的两个操作为同类型操作,则将对应的操作归类为同一待执行操作,以便于批量执行。
9.根据权利要求2~8任一项所述的数据同步方法,其特征在于,所述数据同步方法还包括:
若所述待执行操作为提交操作,则提交整个事务;
若所述待执行操作为回滚操作,则回滚整个事务。
10.一种数据同步系统,其特征在于,所述数据同步系统包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~9任一项所述的数据同步方法。
CN202010329293.3A 2020-04-23 2020-04-23 一种基于日志解析的数据同步方法及数据同步系统 Active CN111694798B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010329293.3A CN111694798B (zh) 2020-04-23 2020-04-23 一种基于日志解析的数据同步方法及数据同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010329293.3A CN111694798B (zh) 2020-04-23 2020-04-23 一种基于日志解析的数据同步方法及数据同步系统

Publications (2)

Publication Number Publication Date
CN111694798A CN111694798A (zh) 2020-09-22
CN111694798B true CN111694798B (zh) 2023-04-25

Family

ID=72476534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010329293.3A Active CN111694798B (zh) 2020-04-23 2020-04-23 一种基于日志解析的数据同步方法及数据同步系统

Country Status (1)

Country Link
CN (1) CN111694798B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307118B (zh) * 2020-09-30 2024-03-22 武汉达梦数据库股份有限公司 基于日志解析同步的保障数据一致性的方法和同步系统
CN112307117B (zh) * 2020-09-30 2023-12-12 武汉达梦数据库股份有限公司 一种基于日志解析的同步方法和同步系统
US11436110B2 (en) * 2021-02-11 2022-09-06 Huawei Technologies Co., Ltd. Distributed database remote backup

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929935A (zh) * 2012-09-25 2013-02-13 上海证券交易所 一种基于事务的大容量数据读写方法
CN106503007A (zh) * 2015-09-08 2017-03-15 阿里巴巴集团控股有限公司 数据库操作方法及装置
CN109241165A (zh) * 2018-08-30 2019-01-18 联动优势科技有限公司 一种数据库同步延时的确定方法、装置和设备
CN109241185A (zh) * 2018-08-27 2019-01-18 武汉达梦数据库有限公司 一种数据同步的方法以及数据同步装置
CN109669988A (zh) * 2018-12-17 2019-04-23 武汉达梦数据库有限公司 一种查询建表事物的拆分同步方法及系统
WO2019109257A1 (zh) * 2017-12-05 2019-06-13 华为技术有限公司 一种日志管理方法、服务器和数据库系统
CN109933630A (zh) * 2019-03-19 2019-06-25 武汉达梦数据库有限公司 数据库数据实时同步方法及设备
CN110008284A (zh) * 2019-03-18 2019-07-12 武汉达梦数据库有限公司 基于数据页预加载及回滚的数据库数据同步方法及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929935A (zh) * 2012-09-25 2013-02-13 上海证券交易所 一种基于事务的大容量数据读写方法
CN106503007A (zh) * 2015-09-08 2017-03-15 阿里巴巴集团控股有限公司 数据库操作方法及装置
WO2019109257A1 (zh) * 2017-12-05 2019-06-13 华为技术有限公司 一种日志管理方法、服务器和数据库系统
CN109241185A (zh) * 2018-08-27 2019-01-18 武汉达梦数据库有限公司 一种数据同步的方法以及数据同步装置
CN109241165A (zh) * 2018-08-30 2019-01-18 联动优势科技有限公司 一种数据库同步延时的确定方法、装置和设备
CN109669988A (zh) * 2018-12-17 2019-04-23 武汉达梦数据库有限公司 一种查询建表事物的拆分同步方法及系统
CN110008284A (zh) * 2019-03-18 2019-07-12 武汉达梦数据库有限公司 基于数据页预加载及回滚的数据库数据同步方法及设备
CN109933630A (zh) * 2019-03-19 2019-06-25 武汉达梦数据库有限公司 数据库数据实时同步方法及设备

Also Published As

Publication number Publication date
CN111694798A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN111694798B (zh) 一种基于日志解析的数据同步方法及数据同步系统
CN111694800B (zh) 一种提升数据同步性能的方法和数据同步系统
CN109656999B (zh) 大数据量的数据同步方法、设备、存储介质及装置
CN104809201A (zh) 一种数据库同步的方法和装置
CN111694799B (zh) 基于日志解析同步的并行日志解析方法和数据同步系统
CN111241094B (zh) 一种基于日志解析的数据库删除列同步方法和装置
CN112559473B (zh) 一种基于优先级的双路同步方法和同步系统
CN111694893B (zh) 一种基于日志解析的部分回滚解析方法和数据同步系统
CN112559626B (zh) 一种基于日志解析的ddl操作的同步方法和同步系统
US8600990B2 (en) Interacting methods of data extraction
US7958083B2 (en) Interacting methods of data summarization
CN113779094B (zh) 基于批流一体的数据处理方法、装置、计算机设备和介质
CN111858504B (zh) 基于日志解析同步的操作合并执行方法和数据同步系统
CN109165225A (zh) 一种基于字节流格式的kudu数据导入系统及方法
CN103530375A (zh) 数据源的匹配方法和装置
CN109669988B (zh) 一种查询建表事务的拆分同步方法及系统
CN111046077A (zh) 数据的获取方法及装置、存储介质、终端
CN114296885A (zh) 一种基于事务合并的并行执行方法及设备
CN114528049A (zh) 一种基于InfluxDB实现API调用信息统计的方法及系统
CN111241193B (zh) 一种基于日志解析的数据库添加列同步方法和装置
CN115168434A (zh) 一种共享存储集群数据库的数据同步方法及设备
CN112035464B (zh) 一种基于日志解析的数据同步的过滤方法和同步装置
CN112307118B (zh) 基于日志解析同步的保障数据一致性的方法和同步系统
CN112948410A (zh) 数据处理方法、装置、设备及介质
CN114297291B (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
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co.,Ltd.

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Huang Haiming

Inventor after: Sun Feng

Inventor after: Yu Yuanlan

Inventor before: Fu Quan

Inventor before: Huang Haiming

Inventor before: Sun Feng

Inventor before: Yu Yuanlan

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant