CN110147355B - 数据同步方法、装置及服务器 - Google Patents

数据同步方法、装置及服务器 Download PDF

Info

Publication number
CN110147355B
CN110147355B CN201710857493.4A CN201710857493A CN110147355B CN 110147355 B CN110147355 B CN 110147355B CN 201710857493 A CN201710857493 A CN 201710857493A CN 110147355 B CN110147355 B CN 110147355B
Authority
CN
China
Prior art keywords
record
log
database
data
lost
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
CN201710857493.4A
Other languages
English (en)
Other versions
CN110147355A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN201710857493.4A priority Critical patent/CN110147355B/zh
Publication of CN110147355A publication Critical patent/CN110147355A/zh
Application granted granted Critical
Publication of CN110147355B publication Critical patent/CN110147355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Abstract

本申请实施例提供一种数据同步方法、装置及服务器。其中,所述方法包括:确定丢失的日志记录的下一条日志记录;根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录;从主数据库获取所述丢失的数据库记录对应的记录数据;基于所述记录数据,更新备用数据库存储的数据。本申请实施例提供的技术方案提高了数据恢复的效率。

Description

数据同步方法、装置及服务器
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种数据同步方法、装置及服务器。
背景技术
在使用日志的数据库系统中,更新操作会首先写入日志文件,日志文件由多条日志记录构成,每一次更新操作可以生成一个或多个日志记录。之后,再基于日志文件中的日志记录对存储的数据进行更新。
为了保证数据的可靠性,数据库系统通常采用主备架构,由一个主数据库以及一个或多个备用数据库构成。主数据库会不断将生成的日志记录发送至备用数据库,备用数据库通过回放日志,即可以基于日志记录中记录的更新数据对存储的数据进行修改,实现主数据库与备用数据库的数据同步。
由于主数据库与备用数据库进行日志记录传输时,可能由于网络等问题出现中断,导致丢失一条或多条日志记录,为了使得主数据库和备用数据库的数据状态保持一致,现有技术中,备用数据库需要从主数据库中拷贝存储的所有数据以及日志文件,才能恢复数据的正确性,耗时较长。
发明内容
本申请实施例提供一种数据同步方法、装置及服务器,用以解决现有技术中数据恢复耗时较长的技术问题。
第一方面,本申请实施例中提供了一种数据同步方法,包括:
确定丢失的日志记录的下一条日志记录;
根据所述下一条日志记录携带的其之前多条日志记录的数据库记录标识,确定丢失的数据库记录;
从主数据库获取所述丢失的数据库记录对应的记录数据;
基于所述记录数据,更新备用数据库存储的数据。
可选地,所述从主数据库获取所述丢失的数据库记录对应的记录数据之后,所述方法还包括:
确定所述主数据库中当前最后一条日志记录;
所述基于所述记录数据,更新备用数据库存储的数据之后,所述方法还包括:
从所述下一条日志记录开始,对接收获得的日志记录进行回放;
如果回放至所述最后一条日志记录或者所述最后一条日志记录之后的任一条日志记录,确定数据恢复正确。
可选地,所述基于所述记录数据,更新备用数据库存储的数据包括:
将与所述记录数据属于同一事务的日志记录进行回放,确定更新数据;
基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
可选地,还包括:
从主数据库查找是否存在所述丢失的日志记录;
所述确定丢失的日志记录的下一条日志记录包括:
如果所述主数据库不存在所述丢失的日志记录,确定丢失的日志记录的下一条日志记录。
可选地,每一条日志记录携带其之前第一数量的日志记录的数据库记录标识;
所述方法还包括:
判断所述丢失的日志记录的条数是否小于或等于所述第一数量;
如果是,执行所述根据所述下一条日志记录携带的其之前连续的多条日志记录的数据库记录标识,确定丢失的数据库记录的步骤;
如果否,基于所述主数据库的所有数据,更新所述备用数据库存储的数据。
可选地,所述任一条日志记录为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录。
可选地,所述确定丢失的日志记录的下一条日志记录之前,所述方法还包括:
根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
可选地,每一条日志记录具体携带其之前连续的多条日志记录的日志记录标识及数据库记录标识;
所述根据所述下一条日志记录携带的其之前多条日志记录的数据库记录标识,确定丢失的数据库记录包括:
基于所述丢失的日志记录的日志记录标识,查找所述下一条日志记录携带日志记录标识以及数据库记录标识,确定丢失的数据库记录。
第二方面,本申请实施例中提供了一种数据同步装置,包括:
第一日志确定模块,用于确定丢失的日志记录的下一条日志记录;
记录确定模块,用于根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录;
数据获取模块,用于从主数据库获取所述丢失的数据库记录对应的记录数据;
数据同步模块,用于基于所述记录数据,更新备用数据库存储的数据。
可选地,还包括:
第二日志确定模块,用于确定所述主数据库中当前最后一条日志记录;
日志回放模块,用于从所述下一条日志记录开始,对接收获得的日志记录进行回放;如果回放至所述最后一条日志记录或者所述最后一条日志记录之后的任一条日志记录,确定数据恢复正确。
可选地,所述数据同步模块具体用于:将与所述记录数据属于同一事务的日志记录进行回放,确定更新数据;基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
可选地,还包括:
日志查找模块,用于从主数据库查找是否存在所述丢失的日志记录;如果所述主数据库不存在所述丢失的日志记录,触发所述第一日志确定模块。
可选地,每一条日志记录携带其之前第一数量的日志记录的数据库记录标识;
所述装置还包括:
数量判断模块,用于判断所述丢失的日志记录的条数是否小于或等于所述第一数量;如果是,触发所述记录确定模块;
数据恢复模块,用于如果所述数量判断模块判断结果为否,如果否,基于所述主数据库的所有数据,更新所述备用数据库存储的数据。
可选地,所述任一条日志记录为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录。
可选地,还包括:
日志判断模块,用于根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
可选地,每一条日志记录具体携带其之前连续的多条日志记录的日志记录标识及数据库记录标识;
所述记录确定模块具体用于基于所述丢失的日志记录的日志记录标识,查找所述下一条日志记录携带日志记录标识以及数据库记录标识,确定丢失的数据库记录。
第三方面,本申请实施例中提供了一种服务器,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器用于:
确定丢失的日志记录的下一条日志记录;
根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录;
从主数据库获取所述丢失的数据库记录对应的记录数据;
基于所述记录数据,更新存储的数据。
本申请实施例中,每一条日志记录携带其之前的多条日志记录中的数据记录标识,如果存在丢失的日志记录,备用数据库可以基于丢失的日志记录的下一条日志记录携带的数据记录标识,确定丢失的数据库记录,从而只需从主数据库获取所述丢失的数据库记录对应的记录数据,基于该记录数据更新备用数据库存储的数据,即可以实现数据恢复,使得备用数据库可以及时与主数据保持一致的数据状态,无需从主数据库拷贝所有数据,降低了耗时时间,提高了数据恢复效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的一种数据同步方法一个实施例的流程图;
图2示出了本申请提供的一种数据同步方法又一个实施例的流程图;
图3示出了本申请提供一种数据同步装置一个实施例的结构示意图;
图4示出了本申请提供的一种服务器一个实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请实施例的技术方案可以适用于多种类型的数据库系统中,例如关系型数据库系统等。目前的数据库系统为了保证数据可靠性,通常采用一主一备或者一主多备的主备架构,对于使用日志进行数据更新的数据库系统,主数据库会不断将日志文件中生成的日志记录发送至备用数据库,其中,日志记录中可以包括事务标识、被更新的数据库记录标识、以及数据库记录标识对应的更新数据等。备用数据库通过不断回放日志记录,可以确定日志记录中的数据库记录标识对应的更新数据,进而可以依据更新数据,对备用数据库中相应数据库记录标识对应的数据进行更新,以保证与主数据库数据状态保持一致。其中,本申请实施例中的所述主数据库以及备用数据库均是指数据服务器,可以存储数据或者可以将数据存储至其它设备中。
正如背景技术中所述,可能由于网络中断等原因,导致备用数据库接收到的日志记录可能丢失一条或多条,为了恢复数据,备用数据库需要从主数据库拷贝所有数据,耗时较长,影响数据恢复效率。
为了减少数据恢复时间,提高数据恢复效率,发明人经过一系列研究提出了本申请的技术方案,在本申请实施例中,每一条日志记录携带其之前连续的多条日志记录中的数据记录标识,如果存在丢失的日志记录,备用数据库可以基于丢失的日志记录的下一条日志记录携带的数据记录标识,确定丢失的数据库记录,从而只需从主数据库获取所述丢失的数据库记录对应的记录数据,基于该记录数据更新备用数据库存储的数据,即可以实现数据恢复,使得备用数据库可以及时与主数据保持一致的数据状态,无需从主数据库拷贝所有数据,耗时较短,提高了数据恢复效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种数据同步方法一个实施例的流程图,该方法可以包括以下几个步骤:
101:确定丢失的日志记录的下一条日志记录。
其中,丢失的日志记录可以包括丢失的一条或多条连续的日志记录,当存在丢失的多条连续的日志记录时,该丢失的日志记录的下一条日志记录也即是指该丢失的多条连续的日志记录中最后一条丢失的日志记录之后的下一条日志记录。
主数据库可以根据日志记录的生成顺序,依次对生成的日志记录进行编号,获得每一日志记录的日志记录标识,通过日志记录标识进行区分不同的日志记录。
因此,可选地,可以根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
如果相邻两次接收到的两条日志记录的日志记录标识为相邻编号,则可以确定日志记录未丢失;否则,即可以确定存在丢失的日志记录,该丢失的日志记录之后的下一条日志记录也即为该相邻两次接收到的两条日志记录中后一次接收到的日志记录。
102:根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录。
其中,数据库记录是指数据库中的一行(record)信息,为数据表中的一条结构化的记录。数据更新操作产生的更新数据以数据库记录为单位进行存储。
其中,该下一条日志记录与其对应的该多条日志记录为连续的日志记录。
由上文描述可知,日志记录中可以包括事务标识、事务标识对应的数据记录标识以及数据记录标识对应的更新数据。
每一条日志记录可以记录一条事务对应的数据更新操作,也可以记录多条事务对应的数据更新操作,当然一条事务也可以跨多条日志记录,也即记录在多条日志记录中。因此,一条日志记录中可以记录至少一个事务标识,以及每一个事务标识对应的数据记录标识及数据记录标识对应的更新数据。
本申请实施例中,每一条日志记录可以携带其之前的多条日志记录数据库记录标识。每一条日志记录与其对应的该多条日志记录为连续的日志记录,也即每一条日志记录携带其之前连续的且与其相邻的多条日志记录。
多条日志记录通过日志记录标识区分。因此每一条日志记录可以是携带其之前连续的多条日志记录的每一条日志记录的日志记录标识以及数据库记录标识等。
其中,如果一条日志记录记录多条事务对应数据更新操作,可选地,每一条日志记录可以是携带其之前连续的多条日志记录的每一条日志记录的日志记录标识、事务标识以及每一事务标识对应的数据库记录标识等。
可以是将该下一条日志记录携带的所有数据库记录标识对应的数据库记录作为丢失的数据库记录。
当然,可选地,为了进一步提高数据恢复效率,可以基于丢失的日志记录的日志记录标识,从下一条日志记录携带的信息中,查找获得丢失的日志记录的日志记录标识对应的数据库记录标识,以确定丢失的数据库记录。其中,如果携带事务标识,可以是基于丢失的日志记录的日志记录标识,从下一条日志记录携带的信息中,查找获得丢失的日志记录的日志记录标识对应的事务标识以及每一事务标识对应的数据库记录标识,以确定每一事务对应的丢失的数据库记录。
103:从主数据库获取所述丢失的数据库记录对应的记录数据。
104:基于所述记录数据,更新备用数据库存储的数据。
具体可以基于丢失的数据库记录的数据库记录标识从主数据库中查询并拷贝对应的记录数据。从而可以将丢失的数据库记录的数据库记录标识及对应的记录数据覆盖至备用数库中,以更新备用数据库存储的数据,实现备用数据库的数据恢复。
可选地,每一条日志记录还包括事务标识时,具体的是基于丢失的日志记录的日志记录标识,查找丢失的事务以丢失的事务对应的丢失的数据库记录。具体是将记录数据以及记录数据对应的数据库记录标识以及数据库记录标识对应的事务标识覆盖备用数据库。
本申请实施例中,如果存在丢失的日志记录,无需全部拷贝主数据库的数据,只需要基于丢失的日志记录之后的下一条日志记录携带的数据库记录标识,仅需要拷贝丢失的数据库记录对应的记录数据,即可以实现数据恢复,耗时较短,提高了数据恢复的效率。
其中,如果一条事务对应多条日志记录时,日志回放时需将同一事务对应的多条日志记录一起进行回放,以保障数据同步正确性。
因此,在某些实施例中,所述基于所述记录数据,更新备用数据库存储的数据可以包括:
将与所述记录数据属于同一事务的日志记录进行回放,确定更新数据;
基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
此外,如果丢失的日志记录未被永久删除,则可以首先从主数据库中查询是否存在丢失的日志记录,如果存在丢失的日志记录,则可以直接获取该丢失的日志记录,通过回放,即可以恢复数据。
因此,在某些实施例中,该方法还可以包括:
从主数据库查找是否存在所述丢失的日志记录;
所述确定丢失的日志记录之后的下一条日志记录可以包括:
如果所述主数据库不存在所述丢失的日志记录,确定丢失的日志记录之后的下一条日志记录。
相应的,如果所述主数据库存在所述丢失的日志记录,则可以获取所述丢失的日志记录并进行回放,以确定所述丢失的日志记录对应的更新数据,并基于该更新数据,更新所述备用数据库存储的数据。
可选地,如果主数据库中不存在所述丢失的日志记录;还可以从其它备用数据库中查找是否存在所述丢失的日志记录,如果主数据库以及其它备用数据库均不存在所述丢失的日志记录时,再确定丢失的日志记录之后的下一条日志记录。
本申请实施例中,主数据库生成每一条日志记录时,每一条日志记录携带其之前连续的多条日志记录的数据库记录标识。
每一条日志记录可以携带其之前连续的第一数量的日志记录的数据库记录标识,第一数量假设为N,其中,N为大于0的整数。也即每一条日志记录可以携带前N条日志记录的数据库记录标识,可选地,每一条日志记录可以具体携带前N条日志记录的每一条日志记录的日志记录标识、事务标识以数据库记录标识。
该第一数量可以结合实际情况进行具体设置,以可以满足丢失的日志记录的最大条数小于或等于该第一数量。
因此,在某些实施例中,所述方法还可以包括:
判断所述丢失的日志记录的条数是否小于或等于所述第一数量;
如果是,执行所述根据所述下一条日志记录携带的其之前连续的多条日志记录的数据库记录标识,确定丢失的数据库记录的步骤;
如果否,基于所述主数据库的所有数据,更新所述备库存储的数据。
也即如果丢失的日志记录的条数大于该第一数量,则需要采用现有技术的方式,从主数据库中拷贝所有数据以及日志文件,以覆盖备用数据库。
此外,为了保证数据恢复可靠性,在某些实施例中,所述从主数据库获取所述丢失的数据库记录对应的记录数据之后,所述方法还包括:
确定所述主数据库中当前最后一条日志记录;
所述基于所述记录数据,更新备用数据库存储的数据之后,所述方法还包括:
从所述下一条日志记录开始,对接收获得的日志记录进行回放;
如果回放至所述最后一条日志记录或者所述最后一条日志之后的任一条日志记录,确定数据恢复正确。
由于主数据库可能会一直存在数据更新操作,不断生成日志记录,为了保证数据恢复可靠性,获取记录数据之后,可以查看当前主数据库中的最后一条日志记录,记录该最后一条日志记录的日志记录标识。从而备用数据库需要基于该最后一条日志记录的日志记录标识,从下一条日志记录直至回放至该最后一条日志记录或者该最后一条日志记录之后的任一条日志记录为止,再确认数据恢复正确,确认主数据库与备用数据库数据恢复一致。
确定数据恢复正确之后,该备用数据库即可以正常运行,例如处理查询事务,对之后接收到日志记录进行正常回放等。
其中,该任一条日志记录可以为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录。根据最后一条日志记录的日志记录标识以及该第二数量,即可以确定该任一条日志记录的日志记录标识,从而基于该任一条日志记录的日志记录标识,可以确定是否回放至该任一条日志记录。
该第二数量可以结合实际情况确定。
图2为本申请实施例提供的一种数据同步方法又一个实施例的流程图。由图2可知,主数据库100基于数据更新操作生成日志记录201并发送至备用数据库,每一日志记录携带其前N条日志记录的元信息,该元信息可以包括日志记录标识、事务标识以及数据库记录标识。
对于使用日志的数据库系统,数据更新操作会首先写入日志文件,再基于日志文件的日志记录进行对存储的数据进行数据更新。
备用数据库200基于主数据库100不断发送的日志记录,判断是否存在丢失的日志记录202,可选地,可以是根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
如果存在丢失的日志记录,备用数据库200首先从主数据库100查找是否存在所述丢失的日志记录203,如果是,则从主数据库100中获取所述丢失的日志记录并进行回放204。如果否,确定丢失的日志记录的下一条日志记录205,其中,该下一条日志记录也即相邻两次接收到的两条日志记录中后一次接收到的日志记录。
本申请实施例中,每一条日志记录可以携带其前N条日志记录的元信息,该元信息可以包括日志记录标识、事务标识以及数据库记录标识。因此基于该下一条日志记录携带的前N条日志记录的元信息,判断丢失的日志记录的条数K是否小于等于N(206),如果丢失的日志记录的条数K小于等于N,之后即可以基于下一条日志记录携带的元信息,确定丢失的数据库记录207,也即根据丢失的日志记录的日志记录标识,该丢失的日志记录的日志记录可以根据相邻两次接收到的两条日志记录的日志记录标识确定,例如如果日志记录采用阿拉伯数字编号,相邻两次接收到的两条日志记录的日志记录标识分别为10以及15,则可以确定丢失的日志记录标识即为11、12、13以及14,日志记录15携带前6条日志记录的元信息,也即携带日志记录9、日志记录10、日志记录11、日志记录12、日志记录13以及日志记录14的元信息,通过查询日志记录15携带的元信息,即可以确定丢失的日志记录对应的数据库记录,也即丢失的数据库记录。
基于丢失的数据库记录即可以从主数据库100获取所述丢失的数据库记录对应的记录数据208;
从而基于所述记录数据,即可以更新备用数据库存储的数据209。可选地,可以首先判断是否存在与所述记录数据属于同一事务的日志记录如果否,则基于所述记录数据,更新备用数据库存储的数据;如果是,则将与所述记录数据属于同一事务的日志记录进行回放,首先确定更新数据;之后基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
为了保证数据恢复可靠性,备用数据库200从主数据库100获取记录数据之后,还可以确定所述主数据库100中当前最后一条日志记录210。
从而从所述下一条日志记录开始,对接收获得的日志记录进行回放211,直至回放至所述最后一条日志记录,即可以确定数据恢复正确。
可选地,还可以是从所述下一条日志记录开始,接收获得的日志记录进行回放,直至回放至所述最后一条日志记录之后的任一条日志记录。该任一条日志记录可以为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录,以可以进一步提高数据恢复的可靠性。
其中,如果丢失的日志记录的条数K小于等于N,则需要从主数据库拷贝所有数据,以完全重搭备用数据库,也即基于所述主数据库的所有数据,更新所述备用数据库存储的数据212。
通过本申请实施例的技术方案,可以大大减少数据恢复时间,提高数据恢复效率,可以及时使得备用数据库与主数据库保持数据状态一致。
图3为本申请实施例提供的一种数据同步装置一个实施例的结构示意图,该装置可以包括:
第一日志确定模块301,用于确定丢失的日志记录的下一条日志记录。
其中,可以根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
因此,作为又一个实施例,该装置还可以包括:
日志判断模块,用于根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
记录确定模块302,用于根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录。
数据获取模块303,用于从主数据库获取所述丢失的数据库记录对应的记录数据。
数据同步模块304,用于基于所述记录数据,更新备用数据库存储的数据。
数据同步模块可以是将记录数据以及记录数据对应的数据库记录标识,覆盖备用数据库,以更新备用数据库存储的数据。
其中,每一条日志记录可以具体携带其之前连续的多条日志记录的日志记录标识及数据库记录标识;
所述记录确定模块可以具体用于基于所述丢失的日志记录的日志记录标识,查找所述下一条日志记录携带日志记录标识以及数据库记录标识,确定丢失的数据库记录。
本申请实施例中,如果存在丢失的日志记录,无需全部拷贝主数据库的数据,只需要基于丢失的日志记录之后的下一条日志记录携带的数据库记录标识,仅需要拷贝丢失的数据库记录对应的记录数据,即可以实现数据恢复,耗时较短,提高了数据恢复的效率。
其中,如果一条事务对应多条日志记录时,日志回放时需将同一事务对应的多条日志记录一起进行回放,以保障数据同步正确性。
因此,在某些实施例中,所述数据同步模块可以具体用于:
将与所述记录数据属于同一事务的日志记录进行回放,确定更新数据;基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
此外,如果丢失的日志记录未被删除,则可以首先从主数据库中查询是否存在丢失的日志记录,如果存在丢失的日志记录,则可以直接获取该丢失的日志记录,通过回放,即可以恢复数据。
因此,在某些实施例中,该装置还可以包括:
日志查找模块,用于从主数据库查找是否存在所述丢失的日志记录;如果所述主数据库不存在所述丢失的日志记录,触发所述第一日志确定模块。
此外,还可以包括日志获取模块,用于日志查找模块查找结果为是,获取所述丢失的日志记录并进行回放,以确定所述丢失的日志记录对应的更新数据,并基于该更新数据,更新所述备用数据库存储的数据。
其中,每一条日志记录可以携带其之前连续的第一数量的日志记录的数据库记录标识。在某些实施例中,该装置还可以包括:
数量判断模块,用于判断所述丢失的日志记录的条数是否小于或等于所述第一数量;如果是,触发所述记录确定模块;
数据恢复模块,用于如果所述数量判断模块判断结果为否,基于所述主数据库的所有数据,更新所述备用数据库存储的数据。
也即如果丢失的日志记录的条数大于该第一数量,则需要采用现有技术的方式,从主数据库中拷贝所有数据以及日志文件,以覆盖备用数据库。
此外,为了保证数据恢复可靠性,在某些实施例中,该装置还可以包括:
第二日志确定模块,用于确定所述主数据库中当前最后一条日志记录;
日志回放模块,用于从所述下一条日志记录开始,对接收获得的日志记录进行回放;如果回放至所述最后一条日志记录或者所述最后一条日志记录之后的任一条日志记录,确定数据恢复正确。
确定数据恢复正确之后,该备用数据库即可以正常运行,例如处理查询事务等。
其中,该任一条日志记录可以为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录。
该第二数量可以结合实际情况确定。
其中,本申请实施例中所述的数据同步装置可以执行上述任一实施例所述的数据同步方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据同步装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图3所示实施例的数据同步装置可以实现为一服务器,作为数据库系统中的备用数据库,如图4所示,该服务器可以包括处理组件401以及存储器402;其中,
所述存储器402用于存储一条或多条计算机指令,所述一条或多条计算机指令供所述处理组件调用执行;
所述处理组件401用于:
确定丢失的日志记录的下一条日志记录;
根据所述下一条日志记录携带的其之前的多条日志记录中的数据库记录标识,确定丢失的数据库记录;
从主数据库获取所述丢失的数据库记录对应的记录数据;
基于所述记录数据,更新存储的数据。
可选地,该处理组件可以用于执行上述任一实施例所述的数据同步方法。
其中,处理组件401可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储其402被配置为存储各种类型的数据以支持在XX设备的操作。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当然,该服务器必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
通信组件被配置为便于服务器和其他设备之间有线或无线方式的通信,例如和主数据库进行通信等。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1~图2任一实施例的数据同步方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (17)

1.一种数据同步方法,其特征在于,包括:
确定丢失的日志记录的下一条日志记录;
根据所述下一条日志记录携带的其之前多条日志记录的数据库记录标识,确定丢失的数据库记录;
从主数据库获取所述丢失的数据库记录对应的记录数据;
基于所述记录数据,更新备用数据库存储的数据。
2.根据权利要求1所述的方法,其特征在于,所述从主数据库获取所述丢失的数据库记录对应的记录数据之后,所述方法还包括:
确定所述主数据库中当前最后一条日志记录;
所述基于所述记录数据,更新备用数据库存储的数据之后,所述方法还包括:
从所述下一条日志记录开始,对接收获得的日志记录进行回放;
如果回放至所述最后一条日志记录或者所述最后一条日志记录之后的任一条日志记录,确定数据恢复正确。
3.根据权利要求1所述的方法,其特征在于,所述基于所述记录数据,更新备用数据库存储的数据包括:
将与所述记录数据属于同一事务的日志记录进行回放,确定更新数据;
基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
4.根据权利要求1所述的方法,其特征在于,还包括:
从主数据库查找是否存在所述丢失的日志记录;
所述确定丢失的日志记录的下一条日志记录包括:
如果所述主数据库不存在所述丢失的日志记录,确定丢失的日志记录的下一条日志记录。
5.根据权利要求1所述的方法,其特征在于,每一条日志记录携带其之前第一数量的日志记录的数据库记录标识;
所述方法还包括:
判断所述丢失的日志记录的条数是否小于或等于所述第一数量;
如果是,执行所述根据所述下一条日志记录携带的其之前连续的多条日志记录的数据库记录标识,确定丢失的数据库记录的步骤;
如果否,基于所述主数据库的所有数据,更新所述备用数据库存储的数据。
6.根据权利要求2所述的方法,其特征在于,所述任一条日志记录为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录。
7.根据权利要求1所述的方法,其特征在于,所述确定丢失的日志记录的下一条日志记录之前,所述方法还包括:
根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
8.根据权利要求1所述的方法,其特征在于,每一条日志记录具体携带其之前连续的多条日志记录的日志记录标识及数据库记录标识;
所述根据所述下一条日志记录携带的其之前多条日志记录的数据库记录标识,确定丢失的数据库记录包括:
基于所述丢失的日志记录的日志记录标识,查找所述下一条日志记录携带日志记录标识以及数据库记录标识,确定丢失的数据库记录。
9.一种数据同步装置,其特征在于,包括:
第一日志确定模块,用于确定丢失的日志记录的下一条日志记录;
记录确定模块,用于根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录;
数据获取模块,用于从主数据库获取所述丢失的数据库记录对应的记录数据;
数据同步模块,用于基于所述记录数据,更新备用数据库存储的数据。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二日志确定模块,用于确定所述主数据库中当前最后一条日志记录;
日志回放模块,用于从所述下一条日志记录开始,对接收获得的日志记录进行回放;如果回放至所述最后一条日志记录或者所述最后一条日志记录之后的任一条日志记录,确定数据恢复正确。
11.根据权利要求9所述的装置,其特征在于,所述数据同步模块具体用于:将与所述记录数据属于同一事务的日志记录进行回放,确定更新数据;基于所述更新数据以及所述记录数据,更新所述备用数据库中所述事务对应的数据。
12.根据权利要求9所述的装置,其特征在于,还包括:
日志查找模块,用于从主数据库查找是否存在所述丢失的日志记录;如果所述主数据库不存在所述丢失的日志记录,触发所述第一日志确定模块。
13.根据权利要求9所述的装置,其特征在于,每一条日志记录携带其之前第一数量的日志记录的数据库记录标识;
所述装置还包括:
数量判断模块,用于判断所述丢失的日志记录的条数是否小于或等于所述第一数量;如果是,触发所述记录确定模块;
数据恢复模块,用于如果所述数量判断模块判断结果为否,如果否,基于所述主数据库的所有数据,更新所述备用数据库存储的数据。
14.根据权利要求10所述的装置,其特征在于,所述任一条日志记录为与所述最后一条日志记录间隔第二数量的日志记录的一条日志记录。
15.根据权利要求9所述的装置,其特征在于,还包括:
日志判断模块,用于根据相邻两次接收到的两条日志记录的日志记录标识,确定是否存在丢失的日志记录。
16.根据权利要求9所述的装置,其特征在于,每一条日志记录具体携带其之前连续的多条日志记录的日志记录标识及数据库记录标识;
所述记录确定模块具体用于基于所述丢失的日志记录的日志记录标识,查找所述下一条日志记录携带日志记录标识以及数据库记录标识,确定丢失的数据库记录。
17.一种服务器,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,所述一条或多条计算机指令供所述处理器调用执行;
所述处理器用于:
确定丢失的日志记录的下一条日志记录;
根据所述下一条日志记录携带的其之前多条日志记录中的数据库记录标识,确定丢失的数据库记录;
从主数据库获取所述丢失的数据库记录对应的记录数据;
基于所述记录数据,更新存储的数据。
CN201710857493.4A 2017-09-21 2017-09-21 数据同步方法、装置及服务器 Active CN110147355B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710857493.4A CN110147355B (zh) 2017-09-21 2017-09-21 数据同步方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710857493.4A CN110147355B (zh) 2017-09-21 2017-09-21 数据同步方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN110147355A CN110147355A (zh) 2019-08-20
CN110147355B true CN110147355B (zh) 2023-09-22

Family

ID=67588082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710857493.4A Active CN110147355B (zh) 2017-09-21 2017-09-21 数据同步方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN110147355B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868492B2 (en) * 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
CN104951474B (zh) * 2014-03-31 2021-10-01 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN105468475A (zh) * 2015-11-16 2016-04-06 北京奇虎科技有限公司 数据库的备份方法及备份装置

Also Published As

Publication number Publication date
CN110147355A (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
US9367598B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
CN107391628B (zh) 数据同步方法及装置
US9183268B2 (en) Partition level backup and restore of a massively parallel processing database
US20150213100A1 (en) Data synchronization method and system
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN110321383A (zh) 大数据平台数据同步方法、装置、计算机设备及存储介质
US10459804B2 (en) Database rollback using WAL
CN111444192B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
KR101643729B1 (ko) 시간 기반 데이터에 대한 백업, 리스토어, 및 마운트를 위한 데이터 관리 시스템 및 방법
CN109491834B (zh) 一种应用于数据库的数据恢复方法及装置
WO2017067397A1 (zh) 一种数据恢复方法和装置
CN113419897A (zh) 一种文件处理方法、装置、电子设备及其存储介质
CN112000623A (zh) 一种元数据的存取方法、装置和计算机可读存储介质
CN110147355B (zh) 数据同步方法、装置及服务器
CN112988880A (zh) 数据同步方法、装置、电子设备及计算机存储介质
CN109791541B (zh) 日志序列号生成方法、装置及可读存储介质
US10922301B1 (en) Apparatus, computer program, and method for trigger-based tracking of database modifications
CN108614838B (zh) 一种用户群索引处理方法、装置及系统
CN115617580B (zh) 基于共享sst文件的增量备份、恢复方法和系统
CN116700906A (zh) 一种数据库事务的处理方法及相关设备
CN116089526A (zh) 一种区块链智能合约状态数据同步方法及系统
CN116521692A (zh) 数据同步方法及装置、电子设备和存储介质
CN115357597A (zh) 一种数据记录方法和装置
CN115168444A (zh) 基于区块链的状态数据的重建方法、装置和存储介质
CN116340430A (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
TA01 Transfer of patent application right

Effective date of registration: 20210909

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211129

Address after: No.12, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province, 310012

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant