CN116541206B - 分布式数据集群的数据恢复方法、装置和电子设备 - Google Patents

分布式数据集群的数据恢复方法、装置和电子设备 Download PDF

Info

Publication number
CN116541206B
CN116541206B CN202310412584.2A CN202310412584A CN116541206B CN 116541206 B CN116541206 B CN 116541206B CN 202310412584 A CN202310412584 A CN 202310412584A CN 116541206 B CN116541206 B CN 116541206B
Authority
CN
China
Prior art keywords
distributed
time
data cluster
transaction
processed
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
CN202310412584.2A
Other languages
English (en)
Other versions
CN116541206A (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.)
Zetuo Technology Shenzhen Co ltd
Original Assignee
Zetuo Technology Shenzhen 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 Zetuo Technology Shenzhen Co ltd filed Critical Zetuo Technology Shenzhen Co ltd
Priority to CN202310412584.2A priority Critical patent/CN116541206B/zh
Publication of CN116541206A publication Critical patent/CN116541206A/zh
Application granted granted Critical
Publication of CN116541206B publication Critical patent/CN116541206B/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本申请实施例公开了分布式数据集群的数据恢复方法、装置和电子设备,可以提升数据恢复的准确性,同时提高数据恢复的效率。该数据恢复方法包括:将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中;通过查询旧数据集群的事务提交记录日志,获取回档时刻之前所有的分布式事务;针对新数据集群中每个分片,对回档时刻之前所有的分布式事务进行分类,得到每个分片上需要处理的分布式事务;结合旧数据集群中从备份时间至回档时刻之间的增量日志,重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。

Description

分布式数据集群的数据恢复方法、装置和电子设备
技术领域
本申请涉及分布式数据集群技术领域,尤其涉及分布式数据集群的数据恢复方法、装置和电子设备。
背景技术
随着大数据时代的到来,数据的使用量成倍增长,使得对数据的存储和恢复有着越来越高的要求。对象存储,也叫做基于对象的存储,是一种非结构化数据的存储方式。分布式存储将不同存储节点如服务器上的空闲磁盘通过网络连接在一起,并对外提供统一的存储接口。分布式对象存储系统可以在一个持久稳固且高度可用的系统中存储任意的对象,用户和应用等可以在对象存储中使用简单的应用程序接口(Application ProgrammingInterface,API)访问数据对象,例如,该数据对象可以为一个数据块等。
目前,在上述分布式存储中当发生数据损毁时,可以使用数据回档操作调用备份数据进行数据恢复,但是由于备份数据的备份时间是固定的,只在固定时刻对数据进行备份,而发生数据损毁的时刻与备份时间不同,导致使用备份数据恢复只能恢复到备份时间的数据状态并不能恢复至数据损失时刻的数据状态,从而导致数据恢复前后对应的数据之间存在数据偏差,并不准确。
发明内容
基于此,有必要针对上述问题,本申请提出了分布式数据集群的数据恢复方法、装置和电子设备,可以提升数据恢复的准确性,同时提高数据恢复的效率。
第一方面,本申请提供了一种分布式数据集群的数据恢复方法,包括:
将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中;其中,旧数据集群为当前待恢复的分布式数据集群,回档时刻为旧数据集群的任意一个历史时刻,新数据集群为将旧数据集群恢复至回档时刻的数据状态创建的分布式数据集群;
通过查询旧数据集群的事务提交记录日志,获取回档时刻之前所有的分布式事务;
针对新数据集群中每个分片,对回档时刻之前所有的分布式事务进行分类,得到每个分片上需要处理的分布式事务;
结合旧数据集群中从备份时间至回档时刻之间的增量日志,重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。
可选的,在第一方面的一种可能的实现方式中,针对新数据集群中每个分片,对回档时刻之前所有的分布式事务进行分类,得到每个分片需要处理的分布式事务,包括:
针对新数据集群中每一个计算节点,对回档时刻之前所有的分布式事务进行分类,得到每一个计算节点发起的所有分布式事务;
针对新数据集群中每个分片,对每一个计算节点发起的所有分布式事务再次分类,得到每个分片需要处理的分布式事务。
可选的,在第一方面的一种可能的实现方式中,每个分片需要处理的分布式事务中的每一个分布式事务均是通过预提交时间戳最大的事务标识进行标识。
可选的,在第一方面的一种可能的实现方式中,结合旧数据集群中从备份时间至回档时刻之间的增量日志,重新执行每一个分片需要处理的分布式事务,包括:
从备份时间至回档时刻之间的时间段内选取一个起始时刻;
获取起始时刻至回档时刻之间的增量日志中所有的分布式事务;
当起始时刻至回档时刻之间的增量日志中所有的分布式事务与每个分片上需要处理的分布式事务相同时,重新执行该相同的分布式事务,并将其事务状态标记为已处理状态。
可选的,在第一方面的一种可能的实现方式中,起始时刻为备份时间与回档时刻之间的平均时刻。
可选的,在第一方面的一种可能的实现方式中,在重新执行每一个分片需要处理的分布式事务之前,还包括:
记录回档时刻之前所有的分布式事务中事务状态为终止的分布式事务;
当重新执行每一个分片需要处理的分布式事务时,丢弃每一个分片需要处理的分布式事务中事务状态为终止的分布式事务,不重新执行。
可选的,在第一方面的一种可能的实现方式中,上述方法还包括:
对于每一个分片需要处理的分布式事务中事务状态为预提交的分布式事务,若预提交时间戳小于或等于回档时刻,对其执行事务提交操作;
若预提交时间戳小于或等于回档时刻,对其执行事务回滚操作。
第二方面,本申请提供了一种分布式数据集群的数据恢复装置,包括:
恢复模块、获取模块、分类模块和执行模块;
恢复模块用于:将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中;
其中,旧数据集群为当前待恢复的分布式数据集群,回档时刻为旧数据集群的任意一个历史时刻,新数据集群为将旧数据集群恢复至回档时刻的数据状态创建的分布式数据集群;
获取模块用于:通过查询旧数据集群的事务提交记录日志,获取回档时刻之前所有的分布式事务;
分类模块用于:针对新数据集群中每个分片,对回档时刻之前所有的分布式事务进行分类,得到每个分片上需要处理的分布式事务;
执行模块用于:结合旧数据集群中从备份时间至回档时刻之间的增量日志,重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。
第三方面,本申请提供了一种电子设备,包括:
存储器和处理器,存储器上存储有可执行指令;
当可执行指令被处理器所调用时,使得电子设备执行如第一方面及其实现方式任一项中所述的分布式数据集群的数据恢复方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有可执行指令;当可执行指令被电子设备的处理器所调用时,使得电子设备执行第一方面及其实现方式任一项中所述的分布式数据集群的数据恢复方法。
本申请提供的技术方案具有以下有益效果:
本申请技术方案中,在使用历史冷备文件中的数据进行数据恢复基础上,通过查询事务提交记录日志,获取回档时刻之前所有的分布式事务;并针对每个分片对获取到的分布式事务进行分类,得到每个分片上需要处理的分布式事务,最终,结合旧数据集群中从所述备份时间至所述回档时刻之间的增量日志,进行日志重放即重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。通过上述技术方案可以在使用历史冷备文件中的数据进行数据恢复基础上,针对每个分片,结合事务提交记录日志和增量日志,重新恢复执行从备份时间至回档时刻之间的分布式事务,恢复至回档时刻的数据状态,从而准确地将数据状态恢复至回档时刻,并且回档时刻可以是任意时刻,提升数据恢复的数据准确性,同时数据恢复的效率也得到提高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1为本申请实施例中分布式数据集群的数据恢复方法的一个实施例示意图;
图2为本申请实施例中分布式数据集群的数据恢复装置的一个结构示意图;
图3为本申请实施例中提供的电子设备的一个结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本申请实施例中提供了分布式数据集群的数据恢复方法、装置和电子设备,用于分布式数据集群中的数据恢复,尤其适用于昆仑分布式数据集群kunlun_cluster的全局一致性数据恢复场景中,可以提升数据恢复的准确性,同时提高数据恢复的效率。
为了便于理解本申请实施例的技术方案,下面将结合具体实施例对其进行详细说明,具体如下:
图1为本申请实施例中分布式数据集群的数据恢复方法的一个实施例示意图。
如图1所示,本申请实施例中分布式数据集群的数据恢复方法,包括:
101、将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中。
在本申请实施例中,旧数据集群为当前待恢复的分布式数据集群,回档时刻为旧数据集群的任意一个历史时刻,新数据集群为将旧数据集群恢复至回档时刻的数据状态创建的分布式数据集群。
历史冷备文件是分布式数据集群每间隔一定时长如12小时等,产生一个全量的备份文件。比如,如果分布式数据集群运行了50小时,此时产生4个冷备文件。
102、通过查询旧数据集群的事务提交记录日志,获取回档时刻之前所有的分布式事务。
在本申请实施例中,事务提交记录日志为commit-log表,获取获取回档时刻之前所有的分布式事务具体可以是:根据回档时刻,在commit-log表中执行查询操作,以获取回档时刻之前所有的分布式事务。进一步的,获取到的分布式事务的状态包括预提交或者终止。
103、针对新数据集群中每个分片,对回档时刻之前所有的分布式事务进行分类,得到每个分片上需要处理的分布式事务。
本申请实施例中,针对每个分片对回档时刻之间所有的分布式事务进行分类具体可以执行以下操作:
针对新数据集群中每一个计算节点,对回档时刻之前所有的分布式事务进行分类,得到每一个计算节点发起的所有分布式事务;
针对新数据集群中每个分片,对每一个计算节点发起的所有分布式事务再次分类,得到每个分片需要处理的分布式事务。
可选的,在本申请实施例的一些实施方式中,每个分片需要处理的分布式事务中的每一个分布式事务均是通过预提交时间戳最大的事务标识进行标识。
104、结合旧数据集群中从备份时间至回档时刻之间的增量日志,重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。
在本申请实施例中,重新执行每一个分片需要处理的分布式事务具体可以执行以下操作:
从备份时间至回档时刻之间的时间段内选取一个起始时刻;
获取起始时刻至回档时刻之间的增量日志中所有的分布式事务;
当起始时刻至回档时刻之间的增量日志中所有的分布式事务与每个分片上需要处理的分布式事务相同时,重新执行该相同的分布式事务,并将其事务状态标记为已处理状态。
可选的,在本申请实施例的一些实施方式中,上述起始时刻可选取为备份时间与回档时刻之间的平均时刻。
可选的,在本申请实施例的一些实施方式中,在重新执行每一个分片需要处理的分布式事务之前,还包括:
记录回档时刻之前所有的分布式事务中事务状态为终止的分布式事务;当重新执行每一个分片需要处理的分布式事务时,丢弃每一个分片需要处理的分布式事务中事务状态为终止的分布式事务,不重新执行。
可选的,在本申请实施例的另外一些实施方式中,上述方法还包括以下操作:
对于每一个分片需要处理的分布式事务中事务状态为预提交的分布式事务,若预提交时间戳小于或等于回档时刻,对其执行事务提交操作;若预提交时间戳小于或等于回档时刻,对其执行事务回滚操作。
在本申请实施例中,在使用历史冷备文件中的数据进行数据恢复基础上,通过查询事务提交记录日志,获取回档时刻之前所有的分布式事务;并针对每个分片对获取到的分布式事务进行分类,得到每个分片上需要处理的分布式事务,最终,结合旧数据集群中从所述备份时间至所述回档时刻之间的增量日志,进行日志重放即重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。通过上述技术方案可以在使用历史冷备文件中的数据进行数据恢复基础上,针对每个分片,结合事务提交记录日志和增量日志,重新恢复执行从备份时间至回档时刻之间的分布式事务,恢复至回档时刻的数据状态,从而准确地将数据状态恢复至回档时刻,并且回档时刻可以是任意时刻,提升数据恢复的数据准确性,同时数据恢复的效率也得到提高。
进一步的,以kunlun_cluster为例,对本申请实施例中的数据恢复方案进行举例说明,具体如下:
假设当前存在一个kunlunBase集群cluster1已经运行了至少48小时,并每12个小时产生一个全量的备份,因此当前至少产生了4个冷备文件「coldbackup-12,coldbackup-24,coldebackup-36,coldbackup-48」.该kunlunBase集群包含两个shard「shard1,shard2」以及两个计算节点「comput1,comput2」。
假设当前时刻,是cluster1运行的第50个小时,此刻需要在一个新的集群中恢复第49个小时的数据,具体操作如下步骤1-步骤4:
步骤1:选择与回档时间最近的历史冷备文件,在新的集群中恢复。
当前的回档时间是第49小时,因此在cluster1的所有的冷备文件中,离第49个小时最近的冷备文件为coldbackup-48。获取该冷备文件并将数据恢复到新的集群cluster2中。恢复使用xtrabackup工具来完成。
在完成了这个步骤后,cluster2中的数据状态为第48个小时的状态。距离回档时间第49个小时,还有一个小时的数据状态变更没有恢复。并且此刻,cluster2中的两个shard「shard3,shard4」其最后一笔提交的事务ID为「10-shard1,9-shard2」。
步骤2:处理commit-log。
具体流程见下文中commit-log预处理流程;假设待处理提交事务标识停止点stop-commit-id集合为:
「35-shard1-cn1,37-shard1-cn2,35-shard2-cn2,37-shard2-cn2」。
终止提交标识Abort-coommit-id集合为「30-shard1-cn1」。
步骤3:开始处理数据库增量日志binlog。
增量日志Binlog应用的起始位置为当前shard3,shard4的最终的提交事务ID。然后一直遍历且应用知道满足终止条件为止。
其中,遍历操作且应用具体操作如下:
遍历binlog中的所有事务event;
如果event xid在abort-commit-id-set终止提交标识集合中,丢弃该事件并继续处理下一个事件;
如果event xid与stop-commit-id待处理提交事务标识集合中的某个值相同,应用该事件;并且标记stop-commit-id集合中的该值为已处理状态;
其他情况,应用该事件并继续。
如果stop-commit-id集合中仍有值不是已处理状态;继续读取binlog中的事件并继续处理;
否则,当前shard的增量日志重放结束。
步骤4:处理未决事务。
在shard3上和shard 4上执行两阶段事务恢复xa recover。假设此时得到shard3上包含了未决事务38-shard1-cn1,那么通过metadata-cluster,我们得到该分布式事务是处于提交状态,那么这里就主动的对该事务进行提交。如何判断该ID标识的分布式事务是否要提交。
Commit-log的预处理是增量日志在存储节点能够正确且快速的处理的重要基础。Commit-log预处理的目标是要针对每个分片shard产生一个终止提交标识stop-commit-id的集合,该集合标识了在当前的shard增量日志的重放过程中,需要确定那些分支事务标识xid一定要被处理到,才能认为当前shard的增量日志重放已经结束。下面对上述步骤2中commit-log的预处理算法进行说明。
Commit-log是昆仑数据库记录全局分布式事务信息的一张表,其中重要的信息包含了全局分布式事务完成所有相关shard节点prepare操作的时间点,参与当前分布式事务的shard信息,即shard-id列表,以及全局事务的id。
1、当需要恢复一个昆仑分布式数据库到历史的某个时间点的状态的时候,需要给出一个时间点(即回档时刻)Trs(time to restore),预处理过程会首先对commit-log表执行查询,获取对Trs前的所有的记录ID-SET1,该表记录表明了,所有在该结果中的分布式事务,都需要在恢复出来的新的集群中处于提交状态。
2、以计算节点ID为维度,对ID-SET1中的所有值进行分类得到,计算节点发起的所有分布式事务的集合,记为:
{id-subset1-cn1,id-subset2-cn2,...id-subsetn-cnn}
3、针对每个id-subsetn-cnn,以shard id为维度,再次进行分类,得到每个shard需要处理的commit id。如shard1会得到如下集合:
{id-subset1-cn1-s1,id-subset2-cn2-s1,...id-subsetn-cnn-s1}。
针对第三步得到的集合,选在预提交时间戳prepare_ts最大的作为当前shard的stop-commit-id集合,例如shard1,其stop-commit-id集合为:
{maxts(id-subset1-cn1-s1),maxts(id-subset2-cn2-s1),...maxts(id-subsetn-cnn-s1)}。
与前述应用功能实现方法实施例相对应,本申请还提供了分布式数据集群的数据恢复装置、电子设备及相应的实施例。
图2为本申请实施例中分布式数据集群的数据恢复装置的一个结构示意图。
如图2所示,本申请实施例中分布式数据集群的数据恢复装置20,包括:
恢复模块201、获取模块202、分类模块203和执行模块204;
恢复模块201用于:将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中;
其中,旧数据集群为当前待恢复的分布式数据集群,回档时刻为旧数据集群的任意一个历史时刻,新数据集群为将旧数据集群恢复至回档时刻的数据状态创建的分布式数据集群;
获取模块202用于:通过查询旧数据集群的事务提交记录日志,获取回档时刻之前所有的分布式事务;
分类模块203用于:针对新数据集群中每个分片,对回档时刻之前所有的分布式事务进行分类,得到每个分片上需要处理的分布式事务;
执行模块204用于:结合旧数据集群中从备份时间至回档时刻之间的增量日志,重新执行每一个分片需要处理的分布式事务,恢复新数据集群的状态至回档时刻。
可选的,在数据恢复装置20的一种实施方式中,分类模块203具体用于执行以下操作:针对新数据集群中每一个计算节点,对回档时刻之前所有的分布式事务进行分类,得到每一个计算节点发起的所有分布式事务;针对新数据集群中每个分片,对每一个计算节点发起的所有分布式事务再次分类,得到每个分片需要处理的分布式事务。
可选的,在数据恢复装置20的一种实施方式中,分类模块203分类得到的每个分片需要处理的分布式事务中的每一个分布式事务均是通过预提交时间戳最大的事务标识进行标识。
可选的,在数据恢复装置20的一种实施方式中,执行模块204具体用于执行以下操作:从备份时间至回档时刻之间的时间段内选取一个起始时刻;获取起始时刻至回档时刻之间的增量日志中所有的分布式事务;当起始时刻至回档时刻之间的增量日志中所有的分布式事务与每个分片上需要处理的分布式事务相同时,重新执行该相同的分布式事务,并将其事务状态标记为已处理状态。
可选的,在数据恢复装置20的一种实施方式中,执行模块204选取的起始时刻为备份时间与回档时刻之间的平均时刻。
可选的,在数据恢复装置20的一种实施方式中,执行模块204在重新执行每一个分片需要处理的分布式事务之前,还执行以下操作:记录回档时刻之前所有的分布式事务中事务状态为终止的分布式事务;当重新执行每一个分片需要处理的分布式事务时,丢弃每一个分片需要处理的分布式事务中事务状态为终止的分布式事务,不重新执行。
可选的,在数据恢复装置20的一种实施方式中,执行模块204还用于执行以下操作:对于每一个分片需要处理的分布式事务中事务状态为预提交的分布式事务,若预提交时间戳小于或等于回档时刻,对其执行事务提交操作;若预提交时间戳小于或等于回档时刻,对其执行事务回滚操作。
关于上述实施例中的装置,其中各个模块执行操作的具体方式及其有益效果已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图3为本申请实施例中提供的电子设备的一个结构示意图。
如图3所示,本申请实施例中电子设备30包括存储器301和处理器302。存储器上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上述任一实施例中的方法。
处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器301可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器302或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器301可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器301可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器301上存储有可执行代码,当可执行代码被处理器302处理时,可以使处理器302执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当可执行代码(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (8)

1.一种分布式数据集群的数据恢复方法,其特征在于,包括:
将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中;
其中,所述旧数据集群为当前待恢复的分布式数据集群,所述回档时刻为所述旧数据集群的任意一个历史时刻,所述新数据集群为将所述旧数据集群恢复至所述回档时刻的数据状态创建的分布式数据集群;
通过查询所述旧数据集群的事务提交记录日志,获取所述回档时刻之前所有的分布式事务;
针对所述新数据集群中每一个分片,对所述回档时刻之前所有的分布式事务进行分类,得到每一个分片上需要处理的分布式事务;
结合所述旧数据集群中从所述备份时间至所述回档时刻之间的增量日志,重新执行所述每一个分片需要处理的分布式事务,恢复所述新数据集群的状态至所述回档时刻;
所述结合所述旧数据集群中从所述备份时间至所述回档时刻之间的增量日志,重新执行所述每一个分片需要处理的分布式事务,包括:
从所述备份时间至所述回档时刻之间的时间段内选取一个起始时刻;
获取所述起始时刻至所述回档时刻之间的增量日志中所有的分布式事务;
当所述起始时刻至所述回档时刻之间的增量日志中所有的分布式事务与所述每一个分片上需要处理的分布式事务相同时,重新执行该相同的分布式事务,并将其事务状态标记为已处理状态;
在重新执行所述每一个分片需要处理的分布式事务之前,还包括:
记录所述回档时刻之前所有的分布式事务中事务状态为终止的分布式事务;
当重新执行所述每一个分片需要处理的分布式事务时,丢弃所述每一个分片需要处理的分布式事务中事务状态为终止的分布式事务,不重新执行。
2.根据权利要求1所述的方法,其特征在于,所述针对所述新数据集群中每一个分片,对所述回档时刻之前所有的分布式事务进行分类,得到每一个分片需要处理的分布式事务,包括:
针对所述新数据集群中每一个计算节点,对所述回档时刻之前所有的分布式事务进行分类,得到每一个计算节点发起的所有分布式事务;
针对所述新数据集群中每一个分片,对所述每一个计算节点发起的所有分布式事务再次分类,得到所述每一个分片需要处理的分布式事务。
3.根据权利要求1或2所述的方法,其特征在于,所述每一个分片需要处理的分布式事务中的每一个分布式事务均是通过预提交时间戳最大的事务标识进行标识。
4.根据权利要求1所述的方法,其特征在于,所述起始时刻为所述备份时间与所述回档时刻之间的平均时刻。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述每一个分片需要处理的分布式事务中事务状态为预提交的分布式事务,若预提交时间戳小于或等于所述回档时刻,对其执行事务提交操作;
若预提交时间戳小于或等于所述回档时刻,对其执行事务回滚操作。
6.一种分布式数据集群的数据恢复装置,其特征在于,包括:
恢复模块、获取模块、分类模块和执行模块;
所述恢复模块用于:将旧数据集群中与回档时刻最接近的备份时间对应的历史冷备文件中的数据恢复至新数据集群中;
其中,所述旧数据集群为当前待恢复的分布式数据集群,所述回档时刻为所述旧数据集群的任意一个历史时刻,所述新数据集群为将所述旧数据集群恢复至所述回档时刻的数据状态创建的分布式数据集群;
所述获取模块用于:通过查询所述旧数据集群的事务提交记录日志,获取所述回档时刻之前所有的分布式事务;
所述分类模块用于:针对所述新数据集群中每一个分片,对所述回档时刻之前所有的分布式事务进行分类,得到每一个分片上需要处理的分布式事务;
所述执行模块用于:结合所述旧数据集群中从所述备份时间至所述回档时刻之间的增量日志,重新执行所述每一个分片需要处理的分布式事务,恢复所述新数据集群的状态至所述回档时刻;从所述备份时间至所述回档时刻之间的时间段内选取一个起始时刻;获取所述起始时刻至所述回档时刻之间的增量日志中所有的分布式事务;当所述起始时刻至所述回档时刻之间的增量日志中所有的分布式事务与所述每一个分片上需要处理的分布式事务相同时,重新执行该相同的分布式事务,并将其事务状态标记为已处理状态;记录所述回档时刻之前所有的分布式事务中事务状态为终止的分布式事务;当重新执行所述每一个分片需要处理的分布式事务时,丢弃所述每一个分片需要处理的分布式事务中事务状态为终止的分布式事务,不重新执行。
7.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器上存储有可执行指令;
当所述可执行指令被所述处理器所调用时,使得所述电子设备执行如权利要求1-5任一项中所述的分布式数据集群的数据恢复法。
8.一种计算机可读存储介质,其上存储有可执行指令;当所述可执行指令被电子设备的处理器所调用时,使得所述电子设备执行如权利要求1-5任一项中所述的分布式数据集群的数据恢复方法。
CN202310412584.2A 2023-04-10 2023-04-10 分布式数据集群的数据恢复方法、装置和电子设备 Active CN116541206B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310412584.2A CN116541206B (zh) 2023-04-10 2023-04-10 分布式数据集群的数据恢复方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310412584.2A CN116541206B (zh) 2023-04-10 2023-04-10 分布式数据集群的数据恢复方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN116541206A CN116541206A (zh) 2023-08-04
CN116541206B true CN116541206B (zh) 2024-05-07

Family

ID=87446133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310412584.2A Active CN116541206B (zh) 2023-04-10 2023-04-10 分布式数据集群的数据恢复方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN116541206B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016180160A1 (zh) * 2015-10-23 2016-11-17 中兴通讯股份有限公司 数据快照的恢复方法和装置
US9823982B1 (en) * 2015-06-19 2017-11-21 Amazon Technologies, Inc. Archiving and restoration of distributed database log records
CN110309227A (zh) * 2018-05-28 2019-10-08 腾讯科技(深圳)有限公司 分布式数据回档方法、装置和计算机可读存储介质
CN115658239A (zh) * 2022-12-23 2023-01-31 安超云软件有限公司 一种快照管理方法、系统及计算机可读介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823982B1 (en) * 2015-06-19 2017-11-21 Amazon Technologies, Inc. Archiving and restoration of distributed database log records
WO2016180160A1 (zh) * 2015-10-23 2016-11-17 中兴通讯股份有限公司 数据快照的恢复方法和装置
CN106610876A (zh) * 2015-10-23 2017-05-03 中兴通讯股份有限公司 数据快照的恢复方法及装置
CN110309227A (zh) * 2018-05-28 2019-10-08 腾讯科技(深圳)有限公司 分布式数据回档方法、装置和计算机可读存储介质
CN115658239A (zh) * 2022-12-23 2023-01-31 安超云软件有限公司 一种快照管理方法、系统及计算机可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种数据备份与恢复系统体系设计;刘英 等;《通信技术》;20110131;第44卷(第1期);第66-68页 *

Also Published As

Publication number Publication date
CN116541206A (zh) 2023-08-04

Similar Documents

Publication Publication Date Title
CN108241555B (zh) 一种分布式数据库的备份、恢复方法、装置和服务器
US8015430B1 (en) Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery
US10133746B1 (en) Persistent file system objects for management of databases
US20080086515A1 (en) Method and System for a Soft Error Collection of Trace Files
US20130117237A1 (en) Distributed Database Log Recovery
US9542279B2 (en) Shadow paging based log segment directory
US20160203201A1 (en) Data backup method and apparatus
CN102982067A (zh) 以可重复方式遍历数据
CN105573859A (zh) 一种数据库的数据恢复方法和设备
US8429359B1 (en) Method and apparatus for dynamically backing up database files
CN109491834B (zh) 一种应用于数据库的数据恢复方法及装置
CN112000522A (zh) 一种分布式数据库系统的还原方法、装置及计算机可读存储介质
US8271454B2 (en) Circular log amnesia detection
WO2017028705A1 (zh) 计算机系统任务备份方法、系统状态恢复方法及其装置
US10528436B2 (en) Micro-journal based transaction logging
CN116541206B (zh) 分布式数据集群的数据恢复方法、装置和电子设备
CN107402841B (zh) 大规模分布式文件系统数据修复方法及设备
CN112000521B (zh) 分布式数据库系统的全量备份方法、装置及计算机可读存储介质
US20140149697A1 (en) Memory Pre-Allocation For Cleanup and Rollback Operations
US20120011099A1 (en) File backup apparatus and method
US11157367B1 (en) Promotional logic during database differential backup
JPS62245348A (ja) データベース更新方法
US8131928B2 (en) Restoring striped volumes of data
CN112882866B (zh) 一种适用于海量文件的备份方法
CN112650447B (zh) 一种ceph分布式块存储的备份方法、系统及装置

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