CN111400104B - 数据同步方法及装置、电子设备、存储介质 - Google Patents
数据同步方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111400104B CN111400104B CN202010211913.3A CN202010211913A CN111400104B CN 111400104 B CN111400104 B CN 111400104B CN 202010211913 A CN202010211913 A CN 202010211913A CN 111400104 B CN111400104 B CN 111400104B
- Authority
- CN
- China
- Prior art keywords
- execution
- data
- abnormal
- type
- task
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
本说明书提供一种数据同步方法及装置、电子设备、存储介质,所述方法包括:在同步任务执行失败的情况下,获取导致所述同步任务执行失败的异常原因,所述同步任务用于实施源数据表向目的数据表的数据同步操作;在确定所述异常原因的类型为可恢复类型的情况下,根据所述同步任务的执行参数确定重试执行条件;在满足重试执行条件的情况下,尝试执行所述同步任务的未完成部分,直到执行成功,以继续实施所述源数据表向所述目的数据表的数据同步操作。通过对数据同步任务的优化,提高了数据同步的容错性,且无需另设存储空间对未同步成功的数据进行标记,减小了资源消耗,同时提高了数据同步的效率。
Description
技术领域
本说明书涉及大数据技术领域,尤其涉及数据同步方法及装置、电子设备、存储介质。
背景技术
目前数据同步过程中,特别是全量数据的同步,若数据同步任务失败,会直接抛出异常,导致该同步任务失败终止。由于全量数据的同步任务难以标记失败的点,也就无法确定哪些数据同步成功,哪些数据未同步成功,若再次执行该同步任务,需要重新将之前同步过的数据再次同步,容易造成资源浪费,成本过高。
发明内容
为克服相关技术中存在的问题,本说明书提供了数据同步方法及装置、电子设备、存储介质。
根据本说明书实施例的第一方面,提供一种数据同步方法,所述数据同步方法包括:
在同步任务执行失败的情况下,获取导致所述同步任务执行失败的异常原因,所述同步任务用于实施源数据表向目的数据表的数据同步操作;
在确定所述异常原因的类型为可恢复类型的情况下,根据所述同步任务的执行参数确定重试执行条件;
在满足重试执行条件的情况下,尝试执行所述同步任务的未完成部分,直到执行成功,以继续实施所述源数据表向所述目的数据表的数据同步操作。
可选地,在确定所述异常原因的类型之前,还包括:
判断所述同步任务的执行时长是否小于时长阈值,或已同步数据量是否小于数据量阈值;
若判断为是,则重新执行所述同步任务和/或生成报警信息;
若判断为否,则执行确定所述异常原因的类型的步骤。
可选地,所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
根据所述同步任务的执行参数确定重试执行条件,包括:
根据时长系数与所述执行参数确定所述尝试执行时间段,所述时长系数由所述异常原因的历史统计恢复时长确定;
和/或,根据次数系数与所述执行参确定所述最大尝试次数,所述次数系数由所述异常原因的历史统计恢复时长确定。
可选地,所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
所述执行参数包含执行时长和/或已同步数据量;
所述尝试执行时间段的时长的计算公式为:
T=a*t,或T=b*S;
所述最大尝试次数的计算公式为:
I=c*t,或I=d*S;
其中,T表示所述尝试执行时间段的时长,t表示所述执行时长,S表示所述已同步数据量,a表示第一时长系数,b表示第二时长系数,I表示所述最大尝试次数,c表示第一次数系数,d表示第二次数系数。
可选地,若经过所述尝试执行时间段或尝试执行次数大于所述最大尝试次数,仍未成功,则重新执行所述同步任务和/或生成报警信息。
可选地,所述数据同步方法还包括:
在接收到类型设置请求的情况下,根据所述类型设置请求配置异常类型列表,所述异常类型列表包含异常原因信息;
确定所述异常原因的类型为可恢复类型,包括:
若所述异常类型列表中存在与所述异常原因相匹配的异常原因信息,则确定所述异常原因的类型为可恢复类型。
可选地,所述数据同步方法还包括:
在确定所述异常原因的类型为可恢复类型的情况下,若异常类型列表不包含于所述异常原因对应的异常原因信息,则将与所述异常原因对应的异常原因信息添加至所述异常类型列表,所述异常类型列表用于记载可恢复类型的异常原因信息。
根据本说明书实施例的第二方面,提供一种数据同步装置,所述数据同步装置包括:
获取模块,用于在同步任务执行失败的情况下,获取导致所述同步任务执行失败的异常原因,所述同步任务用于实施源数据表向目的数据表的数据同步操作;
确定模块,用于在确定所述异常原因的类型为可恢复类型的情况下,根据所述同步任务的执行参数确定重试执行条件;
执行模块,用于在满足重试执行条件的情况下,尝试执行所述同步任务的未完成部分,直到执行成功,以继续实施所述源数据表向所述目的数据表的数据同步操作。
可选地,所述数据同步装置还包括:
判断模块,用于判断所述同步任务的执行时长是否小于时长阈值,或已同步数据量是否小于数据量阈值;
所述判断模块,还用于在判断为是的情况下,重新执行所述同步任务和/或生成报警信息;在判断为否的情况下,调用所述确定模块。
可选地,所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
在根据所述同步任务的执行参数确定重试执行条件时,所述确定模块用于:
根据时长系数与所述执行参数确定所述尝试执行时间段,所述时长系数由所述异常原因的历史统计恢复时长确定;
和/或,根据次数系数与所述执行参确定所述最大尝试次数,所述次数系数由所述异常原因的历史统计恢复时长确定。
可选地,若经过所述尝试执行时间段或尝试执行次数大于所述最大尝试次数,仍未成功,所述执行模块还用于重新执行所述同步任务和/或生成报警信息。
可选地,所述数据同步装置还包括:
配置模块,用于在接收到类型设置请求的情况下,根据所述类型设置请求配置异常类型列表,所述异常类型列表包含异常原因信息;
在确定所述异常原因的类型时,所述确定模块用于:
若所述异常类型列表中存在与所述异常原因相匹配的异常原因信息,则确定所述异常原因的类型为可恢复类型。
根据本说明书实施例的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的数据同步方法。
根据本说明书实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的数据同步方法的步骤。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,数据同步失败捕获到异常原因时,不直接停止同步任务,而是判断该异常原因是否是可恢复的异常。如果是,则根据同步任务的执行参数确定重试执行条件,并在满足该重试执行条件的情况下,周期性地尝试继续执行同步任务的未完成部分,直到执行成功,将未同步成功的数据同步至目的数据表,对于已经同步成功的无需重新同步。从而,通过对数据同步任务的优化,提高了数据同步的容错性,且无需另设存储空间对未同步成功的数据进行标记,减小了资源消耗,同时提高了数据同步的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种数据同步方法的流程图。
图2是本说明书根据一示例性实施例示出的另一种数据同步方法的流程图。
图3是本说明书根据一示例性实施例示出的另一种数据同步方法的流程图。
图4是本说明书根据一示例性实施例示出的一种数据同步装置的框图。
图5本说明书根据一示例性实施例示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本说明书相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
相关技术中,数据同步过程中,特别是全量数据的同步,若同步任务因网络或数据库环境等问题导致数据不能成功写入数据表,会直接抛出异常,判定同步任务执行失败,导致该同步任务失败终止。对于全量数据的同步,由于全量数据的同步任务难以标记失败的点,也即不会标记哪些数据同步成功,哪些数据未同步成功,等到网络或者数据库恢复正常后,若再次执行同步任务,会对之前同步成功的数据进行再次同步,以确保同步任务执行的正确性。全量数据的同步任务执行一次,数据量通常很大,在已经同步了大量数据的情况下,下次启动该任务时,又重新将之前同步过的数据再次同步,成本很高,效率也较低。
目前,若全量数据同步的过程中,任务执行失败,也可以通过分配存储区域来存储未完成同步的数据和/或对应的标识,以对任务失败的点进行标记,但是该方式需要另外分配资源空间存储未完成同步的数据和/或对应的标识,代价较大。
基于上述问题,本说明书提供一种数据同步方法,在数据库同步过程中,出现可恢复的异常原因时,根据同步任务的已经执行情况确定同步任务的重试执行条件,并根据重试执行条件重复尝试执行同步任务的未完成部分,直至执行成功,从而对于已经成功同步的数据无需再次同步,提高了数据同步的效率,且不会造成资源浪费。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种数据同步方法的流程图,包括以下步骤:
步骤101、在同步任务执行失败的情况下,获取导致同步任务执行失败的异常原因。
本实施例中,可以但不限于采用ETL(数据仓库技术)同步工具执行同步任务,以实施源数据表向目的数据表的数据同步操作,也即从源数据表获取全量数据,并将获取的全量数据写入目的数据表。
若同步任务执行失败,数据库会反馈错误码和/或具体错误信息,数据同步工具可根据数据库反馈的错误码和/或具体错误信息确定导致同步任务执行失败的原因,而不会直接判定该同步任务执行失败。
步骤102、在确定异常原因的类型为可恢复类型的情况下,根据同步任务的执行参数确定重试执行条件。
其中,执行参数包括:执行时长和/或已同步数据量。重试执行条件包括尝试执行时间段和/或最大尝试次数。
可以理解的,通过同步任务的执行参数确定重试执行条件,由于不同的同步任务执行参数一般不同,所以不同的同步任务确定的重试执行条件一般是不同的;同一同步任务在两次遇到异常原因的过程中,执行参数也不同,因此也具有不同的重试执行条件。
步骤102中,若确定异常原因为可恢复类型,说明该异常原因短时间段内会恢复,则同步任务进入等待状态并执行步骤103;若确定异常原因为不可恢复类型,说明该异常原因短时间段内不会恢复,即便多次尝试执行同步任务的未完成部分,也不会成功,此种情况下,则不执行步骤103,而是判定同步任务失败并停止该同步任务,同时可以生成报警信息,以便通知运维人员及时检修。其中,报警信息可以但不限于通过短信和/或邮件的方式发送给运维人员。
在一个实施例中,用户可根据实际需求自行设置哪些异常原因是可恢复的,哪些异常原因是不可恢复的,例如,将数据库连接异常(通过重启或者修复数据库可恢复)、网络震荡(稍后可自动恢复)等异常原因设置为可恢复类型,将其他异常原因,例如数据库的硬件故障设置为不可恢复类型。
在另一个实施例中,还可提供用于设置异常类型的用户界面,支持用户手动添加自己需要的异常原因。用户可依据经验通过该用户界面选择、设置哪些导致同步任务执行失败的异常原因是可恢复的。用户界面上可以罗列一些数据库的异常原因,根据用户的选择生成类型设置请求,然后根据类型设置请求配置异常类型列表,其中,异常类型列表记录了用户选择的异常原因的相关信息。用户还可根据实际需求修改异常类型列表。
在另一个实施例中,可以通过对数据库的异常原因的历史信息进行统计分析,例如通过对异常原因发生时间、结束时间、持续时长、是否自动恢复等信息进行统计分析,若持续时长较短且可自动恢复可将该异常原因的类型确定为可恢复类型。统计分析的结果可以但不限于以异常类型列表的形式保存,其中,异常类型列表记录了用户选择的异常原因的相关信息。
在另一个实施例中,上述两种配置异常类型列表的方式可以组合使用,用户可在异常类型列表中自行手动添加一些异常原因,同时可以通过对异常原因的历史信息的统计分析结果更新异常类型列表。
数据同步过程中,若判断一个导致同步任务失败的异常原因为可恢复的原因,而异常类型列表中不包含与该异常原因对应的异常原因信息,则将该异常原因信息添加至异常类型列表中。
步骤102中,确定异常原因的类型时,数据同步工具可调用异常类型列表,并将步骤101获取的异常原因与异常类型列表中的信息进行匹配,若异常类型列表中存在与该异常原因的类型相匹配的可恢复类型信息,则确定异常原因的类型为可恢复类型,可执行步骤103。其中,可恢复类型信息可以但不限于包括异常原因的名称、错误码、其他错误信息等。
步骤103、在满足重试执行条件的情况下,尝试继续执行同步任务的未完成部分,直到执行成功,以继续实施源数据表向目的数据表的数据同步操作。
相关技术中,数据同步工具设有缓存区域用于保存从源数据表获取的少量数据,写数据时,从缓存区域依次获取一条数据并写入目的数据表的对应位置。若写数据动作暂停,且缓存区域存满了,读数据动作也就暂停了。只要当前执行的同步任务没有被判定为执行失败,缓存区域中的这部分数据就会继续缓存,直到同步任务被判定为执行失败,才会清空缓存区域中的数据,因此可借助缓存区域标记任务执行失败的点,无需另设存储区域。
步骤103中,若满足重试执行条件,则循环尝试执行同步任务的未完成部分,直到执行成功。举例来说,若异常原因为网络震荡,假设10分钟后能正常恢复,10:00同步任务执行失败,步骤103中以8分钟一次的频率尝试执行同步任务的未完成部分;10:00进行第一次尝试,由于网络状态未恢复,尝试失败;10:08进行第二次尝试,由于网络状态未恢复,尝试失败;10:16进行第三次尝试,由于第三次尝试之前网络状态已经恢复(在10:10恢复),第三次尝试成功,数据同步工具继续从缓存区域依次获取数据并写入目的数据表的对应位置,相应的数据同步工具从源数据表中依次获取数据并存入缓存区域。对于已经同步成功的数据无需再次进行同步。
步骤103中,若不满足重试执行条件,例如重试次数超过最大尝试次数还未执行成功,或者超过尝试执行时间段还未执行成功,说明异常原因未被消除,此种情况下,同步任务会被判定为执行失败,此时会将缓存区域的数据清除,同时生成报警信息,以便通知运维人员及时检修,剩余数据不会继续同步。待异常原因消除后,重新执行同步任务,将所有数据重新同步,包括之前已经成功同步的数据。
本实施例中,数据同步失败捕获到异常原因时,不直接停止同步任务,而是判断该异常原因是否是可恢复的异常。如果是,则根据同步任务的执行参数有针对性的确定重试执行条件,并在满足该重试执行条件的情况下,周期性地尝试继续执行同步任务的未完成部分,直到执行成功,将未同步成功的数据同步至目的数据表,对于已经同步成功的无需重新同步。从而,通过对数据同步任务的优化,提高了数据同步的容错性,且无需另设存储空间对未同步成功的数据进行标记,减小了资源消耗,同时提高了数据同步的效率。
在另一个实施例中,执行步骤102之前,可以先判断同步任务的执行时长是否小于时长阈值,或已同步数据量是否小于数据量阈值。
若判断为是,说明数据同步任务只执行了一小部分,对于已经同步的数据即便重新进行同步,数据量也很小,此时无需进入循环尝试执行同步任务的未完成部分的必要,可判定任务失败并停止该同步任务,同时可以生成报警信息。待异常原因消除后,重新执行同步任务,已经成功同步的数据需要重新同步一次。
若判断为否,说明同步任务已经将一定数据量的数据同步成功了,若要再次同步该部分数据需要消耗较大的资源,此种情况下,则执行步骤102。
图2是根据一示例性实施例示出的另一种数据同步方法的流程图,本实施例在前述实施例的基础上,描述了根据执行时长确定重试执行条件,并进行数据同步操作的过程,包括如下步骤:
步骤201、在同步任务执行失败的情况下,获取导致同步任务执行失败的异常原因。
其中,步骤201的具体实现方式与步骤101类似,此处不再赘述。
步骤202、在确定异常原因的类型为可恢复类型的情况下,根据同步任务的执行时长确定重试执行条件。
其中,重试执行条件包括尝试执行时间段和/或最大尝试次数。尝试执行时间段由时长系数和执行时长确定,时长系数可以但不限于根据经验确定,时长系数还可以由异常原因的历史统计恢复时长确定。最大尝试次数由次数系数和执行时长确定,次数系数可以但不限于根据经验确定,次数系数还可以由异常原因的历史统计恢复时长确定。
尝试执行时间段的时长的计算公式可以但不限于表示如下:
T=a*t;
最大尝试次数的计算公式可以但不限于表示如下:
I=c*t;
其中,T表示尝试执行时间段的时长,t表示执行时长,a表示时长系数,I表示最大尝试次数,c表示次数系数。
举例来说,若时长系数为1/8,次数系数为1/32;那么若同步任务已执行8小时,可以但不限于将时长系数与执行时长的乘积,也即将1小时作为尝试执行时间段时长;将次数系数与执行时长的乘积,也即将4作为最大尝试次数。1小时内尝试4次,尝试执行的频率为毎20分钟执行一次。
步骤203、在尝试执行时间段内,尝试继续执行同步任务的未完成部分,直到执行成功,以继续实施源数据表向目的数据表的数据同步操作。
步骤203中,尝试执行的频率根据尝试执行时间段与最大执行次数确定,若尝试执行时间段为1小时,最大执行次数为5次,则尝试执行频率为毎15分钟执行一次。也即在1小时内,以15分钟一次的频率循环执行同步任务的未完成部分,直到执行成功。
其中,尝试执行时间段的起点时刻可以是判断出异常原因的类型为可恢复类型的时刻,也即若判断出异常原因的类型为可恢复类型,则开始第一次尝试,也可以经过预设时长后,进行第一次尝试。
举例来说,若异常原因为网络震荡,假设10分钟后能正常恢复,9:59同步任务执行失败,步骤103中以15分钟一次的频率尝试执行同步任务的未完成部分;10:00进行第一次尝试,由于网络状态未恢复,尝试失败;10:15进行第二次尝试,由于第二次尝试之前网络状态已经恢复(10:09恢复),则第二次尝试成功,数据同步工具继续从缓存区域依次获取数据并写入目的数据表的对应位置,相应的数据同步工具从源数据表中依次获取数据并存入缓存区域,对于已经同步成功的数据无需再次进行同步。
步骤203中,若经过尝试执行时间段或重试次数超过最大尝试次数还未执行成功,说明异常原因未被消除,此种情况下,同步任务会被判定为执行失败,此时会将缓存区域的数据清除,同时生成报警信息,以便通知运维人员及时检修,剩余数据不会继续同步。待异常原因消除后,重新执行同步任务,将所有数据重新同步,包括之前已经成功同步的数据。
在另一个实施例中,执行步骤202之前,可以先判断同步任务的执行时长是否小于时长阈值,时长阈值例如设置为30分钟。
若判断为是,说明数据同步任务只执行了一小部分,对于已经同步的数据即便重新进行同步,数据量也很小,此时无需进入循环尝试执行同步任务的未完成部分的必要,可判定任务失败并停止该同步任务,同时可以生成报警信息。待异常原因消除后,重新执行同步任务,已经成功同步的数据需要重新同步一次。
若判断为否,说明同步任务已经将一定数据量的数据同步成功了,若要再次同步该部分数据需要较大的资源消耗,此种情况下,则执行步骤202。
图3是根据一示例性实施例示出的另一种数据同步方法的流程图,本实施例在前述实施例的基础上,描述了根据已同步数据量确定重试执行条件,并进行数据同步操作的过程,包括如下步骤:
步骤301、在同步任务执行失败的情况下,获取导致同步任务执行失败的异常原因。
其中,步骤301的具体实现过程与步骤101类似,此处不再赘述。
步骤302、在确定异常原因的类型为可恢复类型的情况下,根据同步任务的已同步数据量确定重试执行条件。
其中,重试执行条件包括尝试执行时间段和/或最大尝试次数。尝试执行时间段由时长系数和已同步数据量确定,时长系数可以但不限于根据经验确定,时长系数还可以由异常原因的历史统计恢复时长确定。最大尝试次数由次数系数和已同步数据量确定,次数系数可以但不限于根据经验确定,次数系数还可以由异常原因的历史统计恢复时长确定。
尝试执行时间段的时长的计算公式可以但不限于表示如下:
T=b*S;
最大尝试次数的计算公式可以但不限于表示如下:
I=d*S;
其中,T表示尝试执行时间段的时长,S表示已同步数据量,b表示时长系数,I表示最大尝试次数,d表示次数系数。
举例来说,若时长系数为1/10000,次数系数为1/30000;那么若同步任务已经同步了300000条数据(已同步数据量),可以但不限于将时长系数与已同步数据量的乘积,也即将30分钟作为尝试执行时间段;可以但不限于将次数系数与已同步数据量的乘积,也即10次作为最大尝试次数,从而30分钟之内毎3分钟尝试执行一次。
步骤303、在尝试执行时间段内,尝试继续执行同步任务的未完成部分,直到执行成功,以继续实施源数据表向目的数据表的数据同步操作。
步骤303中,尝试执行的频率根据尝试执行时间段与最大执行次数确定,若尝试执行时间段为30分钟,最大执行次数为10次,则尝试执行频率为毎3分钟执行一次。也即在30分钟内,以3分钟一次的尝试执行频率循环执行同步任务的未完成部分,直到执行成功。
其中,尝试执行时间段的起点时刻可以是判断出异常原因的类型为可恢复类型的时刻,也即若判断出异常原因的类型为可恢复类型,则开始第一次尝试,也可以经过预设时长后,进行第一次尝试。
举例来说,若异常原因为网络震荡,假设10分钟后能正常恢复,9:59同步任务执行失败,步骤303中以3分钟一次的频率尝试执行同步任务的未完成部分;10:03进行第一次尝试,由于网络状态未恢复,尝试失败;10:06进行第二次尝试,由于网络状态未恢复,尝试失败;10:09进行第三次尝试,此时网络状态已经恢复(10:09恢复),则第三次尝试成功,数据同步工具继续从缓存区域依次获取数据并写入目的数据表的对应位置,相应的数据同步工具从源数据表中依次获取数据并存入缓存区域。对于已经同步成功的数据无需再次进行同步。
步骤303中,若经过尝试执行时间段或重试次数超过最大尝试次数还未执行成功,说明异常原因未被消除,此种情况下,同步任务会被判定为执行失败,此时会将缓存区域的数据清除,同时生成报警信息,以便通知运维人员及时检修,剩余数据不会继续同步。待异常原因消除后,重新执行同步任务,将所有数据重新同步,包括之前已经成功同步的数据。
在另一个实施例中,执行步骤302之前,可以先判断已同步数据量是否小于数据量阈值,数据量阈值例如设为同步任务总数据量的1/10。
若判断为是,说明数据同步任务只执行了一小部分,对于已经同步的数据即便重新进行数据同步,数据量也很小,此时无需进入循环尝试执行同步任务的未完成部分的必要,可判定任务失败并停止该同步任务,同时可以生成报警信息。待异常原因消除后,重新执行同步任务,已经成功同步的数据需要重新同步一次。
若判断为否,说明同步任务已经将一定数据量的数据同步成功了,若要再次同步该部分数据需要较大的资源消耗,此种情况下,则执行步骤202。
上述任意一个实施例中,对于同一个同步任务,重试执行条件(尝试执行时间段和最大尝试次数)是根据同步任务的执行情况确定的,同步任务启动时,重试执行条件并没有确定,只有在导致任务执行失败的异常原因为可恢复的情况下,才会根据同步任务的执行情况确定尝试执行时间段和最大尝试次数,同步任务的执行时长或者已同步的数据量都会直接影响到尝试执行时间段和最大尝试次数。这种动态确定执行时间段和最大尝试次数的方式,有利于降低全量数据同步的异常处理成本。
与前述数据同步方法的实施例相对应,本说明书还提供了数据同步装置及其所应用的终端的实施例。
图4是本说明书根据一示例性实施例示出的一种数据同步装置的模块示意图,所述数据同步装置包括:获取模块41、确定模块42和执行模块43。
获取模块41,用于在同步任务执行失败的情况下,获取导致所述同步任务执行失败的异常原因,所述同步任务用于实施源数据表向目的数据表的数据同步操作;
确定模块42,用于在确定所述异常原因的类型为可恢复类型的情况下,根据所述同步任务的执行参数确定重试执行条件;
执行模块43,用于在满足重试执行条件的情况下,尝试执行所述同步任务的未完成部分,直到执行成功,以继续实施所述源数据表向所述目的数据表的数据同步操作。
可选地,所述数据同步装置还包括:
判断模块,用于判断所述同步任务的执行时长是否小于时长阈值,或已同步数据量是否小于数据量阈值;
所述判断模块,还用于在判断为是的情况下,重新执行所述同步任务和/或生成报警信息;在判断为否的情况下,调用所述确定模块。
可选地,所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
在根据所述同步任务的执行参数确定重试执行条件时,所述确定模块用于:
根据时长系数与所述执行参数确定所述尝试执行时间段,所述时长系数由所述异常原因的历史统计恢复时长确定;
和/或,根据次数系数与所述执行参确定所述最大尝试次数,所述次数系数由所述异常原因的历史统计恢复时长确定。
可选地,若经过所述尝试执行时间段或尝试执行次数大于所述最大尝试次数,仍未成功,所述执行模块还用于重新执行所述同步任务和/或生成报警信息。
可选地,所述数据同步装置还包括:
配置模块,用于在接收到类型设置请求的情况下,根据所述类型设置请求配置异常类型列表,所述异常类型列表包含异常原因信息;
在确定所述异常原因的类型时,所述确定模块用于:
若所述异常类型列表中存在与所述异常原因相匹配的异常原因信息,则确定所述异常原因的类型为可恢复类型。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
图5是本发明一示例实施例示出的一种电子设备的结构示意图,示出了适于用来实现本发明任一实施例的示例性电子设备50的框图。图5显示的电子设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备50可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同***组件(包括存储器52和处理器51)的总线53。
总线53包括数据总线、地址总线和控制总线。
存储器52可以包括易失性存储器,例如随机存取存储器(RAM)521和/或高速缓存存储器522,还可以进一步包括只读存储器(ROM)523。
存储器52还可以包括具有一组(至少一个)程序模块524的程序工具525(或实用工具),这样的程序模块524包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器51通过运行存储在存储器52中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的方法。
电子设备50也可以与一个或多个外部设备54(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口55进行。并且,模型生成的电子设备50还可以通过网络适配器56与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与模型生成的电子设备50的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
本说明书实施例还一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (12)
1.一种数据同步方法,其特征在于,所述数据同步方法包括:
在同步任务执行失败的情况下,获取导致所述同步任务执行失败的异常原因,所述同步任务用于实施源数据表向目的数据表的数据同步操作;
在确定所述异常原因的类型为可恢复类型的情况下,根据所述同步任务的执行参数确定重试执行条件;
所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
根据所述同步任务的执行参数确定重试执行条件,包括:
根据时长系数与所述执行参数确定所述尝试执行时间段,所述时长系数由所述异常原因的历史统计恢复时长确定;
和/或,根据次数系数与所述执行参数 确定所述最大尝试次数,所述次数系数由所述异常原因的历史统计恢复时长确定;
在满足重试执行条件的情况下,尝试执行所述同步任务的未完成部分,直到执行成功,以继续实施所述源数据表向所述目的数据表的数据同步操作。
2.如权利要求1所述的数据同步方法,其特征在于,在确定所述异常原因的类型之前,还包括:
判断所述同步任务的执行时长是否小于时长阈值,或已同步数据量是否小于数据量阈值;
若判断为是,则重新执行所述同步任务和/或生成报警信息;
若判断为否,则执行确定所述异常原因的类型的步骤。
3.如权利要求1所述的数据同步方法,其特征在于,所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
所述执行参数包含执行时长和/或已同步数据量;
所述尝试执行时间段的时长的计算公式为:
T=a*t,或T=b*S;
所述最大尝试次数的计算公式为:
I=c*t,或I=d*S;
其中,T表示所述尝试执行时间段的时长,t表示所述执行时长,S表示所述已同步数据量,a表示第一时长系数,b表示第二时长系数,I表示所述最大尝试次数,c表示第一次数系数,d表示第二次数系数。
4.如权利要求1或3所述的数据同步方法,其特征在于,若经过所述尝试执行时间段或尝试执行次数大于所述最大尝试次数,仍未成功,则重新执行所述同步任务和/或生成报警信息。
5.如权利要求1所述的数据同步方法,其特征在于,所述数据同步方法还包括:
在接收到类型设置请求的情况下,根据所述类型设置请求配置异常类型列表,所述异常类型列表包含异常原因信息;
确定所述异常原因的类型为可恢复类型,包括:
若所述异常类型列表中存在与所述异常原因相匹配的异常原因信息,则确定所述异常原因的类型为可恢复类型。
6.如权利要求1所述的数据同步方法,其特征在于,所述数据同步方法还包括:
在确定所述异常原因的类型为可恢复类型的情况下,若异常类型列表不包含所述异常原因对应的异常原因信息,则将与所述异常原因对应的异常原因信息添加至所述异常类型列表,所述异常类型列表用于记载可恢复类型的异常原因信息。
7.一种数据同步装置,其特征在于,所述数据同步装置包括:
获取模块,用于在同步任务执行失败的情况下,获取导致所述同步任务执行失败的异常原因,所述同步任务用于实施源数据表向目的数据表的数据同步操作;
确定模块,用于在确定所述异常原因的类型为可恢复类型的情况下,根据所述同步任务的执行参数确定重试执行条件;
所述重试执行条件包含尝试执行时间段和/或最大尝试次数;
在根据所述同步任务的执行参数确定重试执行条件时,所述确定模块用于:
根据时长系数与所述执行参数确定所述尝试执行时间段,所述时长系数由所述异常原因的历史统计恢复时长确定;
和/或,根据次数系数与所述执行参数 确定所述最大尝试次数,所述次数系数由所述异常原因的历史统计恢复时长确定;
执行模块,用于在满足重试执行条件的情况下,尝试执行所述同步任务的未完成部分,直到执行成功,以继续实施所述源数据表向所述目的数据表的数据同步操作。
8.如权利要求7所述的数据同步装置,其特征在于,所述数据同步装置还包括:
判断模块,用于判断所述同步任务的执行时长是否小于时长阈值,或已同步数据量是否小于数据量阈值;
所述判断模块,还用于在判断为是的情况下,重新执行所述同步任务和/或生成报警信息;在判断为否的情况下,调用所述确定模块。
9.如权利要求7所述的数据同步装置,其特征在于,若经过所述尝试执行时间段或尝试执行次数大于所述最大尝试次数,仍未成功,所述执行模块还用于重新执行所述同步任务和/或生成报警信息。
10.如权利要求7所述的数据同步装置,其特征在于,所述数据同步装置还包括:
配置模块,用于在接收到类型设置请求的情况下,根据所述类型设置请求配置异常类型列表,所述异常类型列表包含异常原因信息;
在确定所述异常原因的类型时,所述确定模块用于:
若所述异常类型列表中存在与所述异常原因相匹配的异常原因信息,则确定所述异常原因的类型为可恢复类型。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的数据同步方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211913.3A CN111400104B (zh) | 2020-03-24 | 2020-03-24 | 数据同步方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211913.3A CN111400104B (zh) | 2020-03-24 | 2020-03-24 | 数据同步方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400104A CN111400104A (zh) | 2020-07-10 |
CN111400104B true CN111400104B (zh) | 2021-09-28 |
Family
ID=71436514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211913.3A Active CN111400104B (zh) | 2020-03-24 | 2020-03-24 | 数据同步方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400104B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347189A (zh) * | 2020-11-05 | 2021-02-09 | 江苏电力信息技术有限公司 | 基于云计算的财务数据一致性失效的发现与恢复方法 |
CN112800134A (zh) * | 2021-01-27 | 2021-05-14 | 北京明略软件***有限公司 | 一种数据同步方法及*** |
CN113051349A (zh) * | 2021-04-02 | 2021-06-29 | 广东美电贝尔科技集团股份有限公司 | 一种执勤***数据同步方法 |
CN114064803A (zh) * | 2021-11-11 | 2022-02-18 | 北京沃东天骏信息技术有限公司 | 一种数据同步方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081665A (zh) * | 2008-12-10 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN109086295A (zh) * | 2018-06-13 | 2018-12-25 | 中国平安人寿保险股份有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612921B2 (en) * | 2013-03-01 | 2017-04-04 | Teradata Us, Inc. | Method and system for load balancing a distributed database providing object-level management and recovery |
-
2020
- 2020-03-24 CN CN202010211913.3A patent/CN111400104B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081665A (zh) * | 2008-12-10 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN109086295A (zh) * | 2018-06-13 | 2018-12-25 | 中国平安人寿保险股份有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111400104A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400104B (zh) | 数据同步方法及装置、电子设备、存储介质 | |
US11210185B2 (en) | Method and system for data recovery in a data system | |
US7779298B2 (en) | Distributed job manager recovery | |
CN102681917B (zh) | 一种操作***及其修复方法 | |
CN109194514B (zh) | 一种双机监测方法、装置、服务器及存储介质 | |
US20150317175A1 (en) | Virtual machine synchronization system | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
CN111198662B (zh) | 一种数据存储方法、装置和计算机可读存储介质 | |
CN103678051A (zh) | 一种集群数据处理***中的在线故障容错方法 | |
CN110109772B (zh) | 一种cpu的重启方法、通信设备及可读存储介质 | |
CN110196749B (zh) | 虚拟机的恢复方法及装置、存储介质及电子装置 | |
CN112631761A (zh) | 一种任务调度监控方法和装置 | |
CN107943617B (zh) | 数据的修复方法、装置及服务器集群 | |
CN109257396B (zh) | 一种分布式锁调度方法及装置 | |
CN110798339A (zh) | 一种基于分布式任务调度框架的任务容灾方法 | |
CN107943567B (zh) | 一种基于amqp协议的高可靠性任务调度方法和*** | |
CN109165181A (zh) | 一种多板卡自构型及任务自分布***及方法 | |
CN111880947A (zh) | 一种数据传输方法及装置 | |
CN115190046B (zh) | 一种服务器集群的检测方法、检测装置及计算设备 | |
CN115017235B (zh) | 数据同步方法及电子设备、存储介质 | |
US20090106781A1 (en) | Remote call handling methods and systems | |
CN113778744B (zh) | 任务处理方法、设备、***以及存储介质 | |
JP2595833B2 (ja) | 遠隔保守装置 | |
JP2000330778A (ja) | 修正ロードモジュール置換後の復旧方法ならびに装置 | |
CN111177232B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |