CN107451013B - 基于分布式系统的数据恢复方法、装置及系统 - Google Patents

基于分布式系统的数据恢复方法、装置及系统 Download PDF

Info

Publication number
CN107451013B
CN107451013B CN201710555261.3A CN201710555261A CN107451013B CN 107451013 B CN107451013 B CN 107451013B CN 201710555261 A CN201710555261 A CN 201710555261A CN 107451013 B CN107451013 B CN 107451013B
Authority
CN
China
Prior art keywords
data
time point
backup
recovery
cluster
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
CN201710555261.3A
Other languages
English (en)
Other versions
CN107451013A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201710555261.3A priority Critical patent/CN107451013B/zh
Publication of CN107451013A publication Critical patent/CN107451013A/zh
Application granted granted Critical
Publication of CN107451013B publication Critical patent/CN107451013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1448Management of the data involved in backup or backup restore
    • 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
    • G06F11/1464Management of the backup or restore process for networked environments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明公开了一种基于分布式系统的数据恢复方法、装置及系统。该方法包括:分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录;根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。本发明能够分别针对各个数据分片集群进行数据备份,从而准确高效地实现了分布式系统的数据恢复。

Description

基于分布式系统的数据恢复方法、装置及系统
技术领域
本发明涉及计算机技术领域,具体涉及一种基于分布式系统的数据恢复方法、装置及系统。
背景技术
数据的存储和恢复在互联网业务中起着至关重要的作用。无论是执行了误操作之后,还是存储系统宕机之后,都需要进行数据恢复。传统的数据恢复方式都是在数据备份的基础上进行的。例如,在传统的非分布式系统中,针对存储系统中的全部数据进行备份,得到存储系统中基于某一时间点的全量数据,然后,在全量数据的基础上,根据日志文件即可将存储系统中的全部数据恢复至指定的时间点所对应的存储状态。
在实现本发明实施例的过程中,发明人发现现有技术中至少存在如下问题:随着技术的不断发展,数据的海量增加,需要大量的存储空间来存储互联网业务中的海量数据。因此,传统的非分布式系统已经难以应对海量数据的存储需求,相应地,分布式系统便应运而生了。由于分布式系统能够将一份完整数据切分为多个数据分片并将其存储在不同的数据分片集群中,因此分布式系统的存储方式在存储空间上具有无限扩展性。但是,恰恰由于分布式系统中的一份完整数据分布在多个数据分片集群中的特性,目前尚无法针对各个数据分片集群存储的全部数据进行全量备份,由此导致传统的数据恢复方式无法适用于分布式系统,因此,基于分布式系统的数据恢复难以进行。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于分布式系统的数据恢复方法、装置及系统。
根据本发明的一个方面,提供了一种基于分布式系统的数据恢复方法,其中,该分布式系统至少包括多个分布式的数据分片集群,该方法包括:分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录;以及根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。
根据本发明的另一方面,提供了一种基于分布式系统的数据恢复装置。该装置包括:一致性确定模块,适于分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;查询模块,适于针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;操作记录确定模块,适于根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录;以及数据恢复模块,适于根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于分布式系统的数据恢复方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于分布式系统的数据恢复方法对应的操作。
在本发明提供的基于分布式系统的数据恢复方法、装置及系统中,首先分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;并针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;然后根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录;最后根据上述数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。由此可见,本发明能够分别针对各个数据分片集群进行数据备份,并且,由于各个数据分片集群往往不能同步完成数据备份,因此,本发明进一步根据配置日志确定各个数据分片集群的备份时间点与恢复时间点之间对应的数据操作记录,从而准确高效地实现了分布式系统的数据恢复。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例一提供的基于分布式系统的数据恢复方法的流程图;
图2a示出了本发明实施例二提供的分布式系统的结构示意图;
图2b示出了本发明实施例二提供的分布式系统中每个数据分片集群包含的数据节点的示意图;
图3示出了本发明实施例二提供的基于分布式系统的数据恢复方法的流程图;
图4示出了本发明实施例三提供的基于分布式系统的数据恢复装置的结构框图;
图5示出了本发明实施例四提供的分布式系统的结构框图;
图6示出了根据本发明实施例六提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了本发明实施例一提供的基于分布式系统的数据恢复方法的流程图。如图1所示,该方法包括以下步骤:
步骤S110:分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致。
其中,本实施例中的分布式系统至少包括多个分布式的数据分片集群。具体地,在分布式系统中,为了提升存储容量,可以将待存储的数据切分为多个分片,将各个分片分别存储在不同的数据分片集群上。因此,数据分片集群的具体数量可以根据待存储的数据量进行设定或调整,本发明对此不做限定。
具体地,在本实施例中,每个数据分片集群按照预设的备份规则定期对本集群中存储的全部数据进行备份。由于各个数据分片集群上存储的数据内容各不相同,所以,各个数据分片集群上的数据总量也无法实现绝对均衡,加之各个数据分片集群的性能差异、传输时延等各种因素,导致每个数据分片集群每次完成备份的时间点也各不相同。因此,在本实施例中,需要分别确定每个数据分片集群进行数据备份时所对应的备份时间点。然后,分别将每个数据分片集群进行数据备份时所对应的备份时间点与预设的恢复时间点进行比较。该恢复时间点的确定方式可以有多种,例如可以根据误操作的时间来确定,也可以根据分布式系统的故障时间来确定,本发明对此不做限定。
步骤S120:针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志。
其中,备份时间点与恢复时间点不一致的数据分片集群的数量可能为一个,也可能为多个。若备份时间点与恢复时间点不一致的数据分片集群的数量为多个,则需要分别针对每个备份时间点与恢复时间点不一致的数据分片集群执行本步骤中的操作。
具体地,配置日志中保存有各个数据分片集群对应的元数据信息,其存储在分布式系统的配置节点中。元数据信息具体为用于记录已存储的数据的属性信息的信息,例如,记录各条存储数据的具体内容、存储位置、数据大小等信息。利用元数据信息能够实现历史数据查询、资源查找、文件记录等多种功能。具体地,对于备份时间点与恢复时间点不一致的数据分片集群,查询与该数据分片集群对应的配置日志中记录的元数据信息,从而确定该数据分片集群上的存储数据所对应的数据操作过程。
步骤S130:根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录。
具体地,对与备份时间点与恢复时间点不一致的数据分片集群,通过查询与该数据分片集群对应的配置日志中记录的元数据信息,在配置日志中确定该数据分片集群在备份时间点与恢复时间点之间这一时间段内对应的数据操作记录。其中,上述数据操作可以是针对数据进行的插入操作记录、删除操作记录或者其它类似操作记录等等。
步骤S140:根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。
具体地,数据恢复的目的是要将各个数据分片集群上的存储数据都恢复至与恢复时间点相对应的存储状态。因此,对于备份时间点与恢复时间点不一致的数据分片集群,首先要判断与该数据分片集群对应的备份时间点与恢复时间点在时间上的前后关系,然后根据判断结果以及数据操作记录对备份数据执行对应操作,从而实现数据恢复。例如,若判断备份时间点早于恢复时间点,则可以根据数据操作记录对数据分片集群中的备份数据执行与上述数据操作记录一致的操作,然后根据执行上述操作后的备份数据进行数据恢复;若备份时间点晚于恢复时间点,则可以根据数据操作记录对该数据分片集群的备份数据执行与上述操作记录相反的操作。其中,删除操作的逆操作为插入操作,插入操作的逆操作为删除操作,等等。然后根据执行上述操作后的备份数据进行数据恢复。
由此可见,在本发明提供的基于分布式系统的数据恢复方法中,首先分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;并针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;然后根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录;最后根据上述数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。由此可见,本发明能够分别针对各个数据分片集群进行数据备份,并且,由于各个数据分片集群往往不能同步完成数据备份,因此,本发明进一步根据配置日志确定各个数据分片集群的备份时间点与恢复时间点之间对应的数据操作记录,从而准确高效地实现了分布式系统的数据恢复。
实施例二
在介绍本实施例之前,首先对本实施例中的分布式系统进行简单介绍。如图2a和图2b所示,本实施例中的分布式系统至少包括多个分布式的数据分片集群。图2a示出了本发明中的分布式系统200的结构示意图;图2b示出了分布式系统200中每个数据分片集群包含的数据节点的示意图。
具体地,分布式系统200包括路由节点210、配置节点(也叫config节点)220、以及与路由节点210相连接的多个数据分片集群230。其中,图2a 所示的分布式系统200包含一个路由节点210、以及一个配置节点220。但是具体实施中,为了提升灾备能力,路由节点210、以及配置节点220分别可以有多个。路由节点210中设置有路由规则,路由规则用于为将一个完整数据切分所得的多个数据分片分配对应的数据分片集群,使各个数据分片能够存储在与其对应的数据分片集群中;在从分布式系统获取上述完整数据时,路由规则用于从各个数据分片集群中获取与该完整数据对应的多个数据分片,从而获取一份完整的数据。具体实施中,路由规则一般包括范围规则和哈希规则(也称为随机规则)两种规则类型。其中,范围规则为根据数据分片的范围信息为各个数据分片分配对应的数据分片集群,例如,一共有30 个数据分片,编号分别为1、2、3…30,一共有三个数据分片集群,分别为集群1、集群2以及集群3,则根据范围规则为各个数据分片分配对应的数据分片集群的过程可以为:将上述编号为1-10的数据分片对应分配存储到集群 1、将上述编号为11-20的数据分片对应分配存储到集群2、将上述编号为 21-30的数据分片对应分配存储到集群3;哈希规则为根据对各个数据分片的哈希计算结果为各个数据分片分配对应的数据分片集群。
配置节点220用于记录配置日志。其中,配置日志中记录有与各个数据分片集群中存储的数据对应的数据大小信息、位置信息、历史操作记录信息等与该数据相关的全部信息,并且,配置节点220与各个数据分片集群相连,还用于记录各个数据分片集群之间数据的迁移操作信息。
图2b示出了分布式系统200中每个数据分片集群包含的数据节点的示意图。具体地,每个数据分片集群中进一步包括三个数据节点,分别为图2b 所示的M节点(主节点)、S节点(从节点)以及A节点(投票节点)。其中,S节点中存储的数据是M节点数据的镜像数据,相当于M节点的备份数据。当M节点的数据出现故障时,通过A节点使S节点与M节点进行调换,以此来保证存储数据的安全与准确。
下面来详细介绍本实施例中的方案。图3示出了本发明实施例二提供的基于分布式系统的数据恢复方法的流程图。如图3所示,该方法包括以下步骤:
步骤S310:按照预设策略分别对各个数据分片集群进行数据备份。
其中,本实施例中的分布式系统至少包括多个分布式的数据分片集群。具体地,在分布式系统中,为了提升存储容量,可以将待存储的数据切分为多个分片,将各个分片分别存储在不同的数据分片集群上。因此,数据分片集群的具体数量可以根据待存储的数据量进行设定或调整,本发明对此不做限定。
具体地,预设策略可以由本领域技术人员根据实际情况进行设置,本发明对此不作限制。例如,可以每隔预设时间间隔触发一次备份操作,例如每隔1小时或者每隔一天对各个数据分片集群执行一次备份操作;或者每当数据分片集群中新增的数据量大于预设阈值时触发一次备份操作。例如,当预设阈值为150M时,若新增的数据量为200M(200>150),则执行一次备份操作,若新增的数据量为100M(100<150),则不执行备份操作。其中,上述预设时间以及预设阈值的设置可以根据实际情况而定,本发明对此不作限制。另外,本领域技术人员能够理解的是,为了便于恢复,在本步骤中,各个数据分片集群每次进行数据备份时,均对本集群上存储的全部数据进行备份,即全量备份。
步骤S320:分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致。
具体地,在本实施例中,每个数据分片集群按照上述的预设策略定期对本集群中存储的全部数据进行备份。由于各个数据分片集群上存储的数据内容各不相同,所以,各个数据分片集群上的数据总量也无法实现绝对均衡,加之各个数据分片集群的性能差异、传输时延等各种因素,导致各个数据分片集群每次完成备份的时间点也各不相同。因此,在本实施例中,需要分别确定每个数据分片集群进行数据备份时所对应的备份时间点。这里,每个数据分片集群进行数据备份时所对应的备份时间点是指:该数据分片集群本次 (即距离当前时间最近的一次)备份完毕时的时间点。具体地,对于每个数据分片集群,每当在步骤S310中执行一次新的备份操作后,则将该次备份操作执行完毕时的时间点确定为该数据分片集群进行数据备份时所对应的备份时间点。
恢复时间点的确定方式可以有多种,例如可以根据误操作的时间来确定,也可以根据分布式系统的故障时间来确定,本发明对此不做限定。在本实施例中,执行数据恢复的最终目的在于:将各个数据分片集群中的数据全部恢复至与恢复时间点相对应的存储状态。具体地,在本实施例中,恢复时间点可以根据接收到的误操作恢复指令中包含的误操作时间确定。例如,将误操作恢复指令中包含的误操作时间确定为恢复时间点。另外,恢复时间点还可以根据后台运营人员的具体指示进行设置,例如,后台运营人员想要恢复某个特定时间点的数据,则将上述特定时间点设置为恢复时间点。在确定每个数据分片集群进行数据备份时所对应的备份时间点与恢复时间点是否一致时,通过比较备份时间点对应的时间戳与恢复时间点对应的时间戳是否相同来确定,若比较结果为相同,即确定该数据分片集群进行数据备份时所对应的备份时间点与恢复时间点一致,此时,可以直接根据该数据分片集群中的当前备份数据对该数据分片集群中的数据进行恢复;若比较结果为不同,即确定该数据分片集群进行数据备份时所对应的备份时间点与恢复时间点不一致,则进一步执行步骤S330。
步骤S330:针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志。
配置日志中保存有各个数据分片集群对应的元数据信息,其存储在分布式系统的配置节点中。元数据信息具体为用于记录已存储的数据的属性信息的信息,例如,记录各条存储数据的具体内容、存储位置、数据大小等信息。利用元数据信息能够实现历史数据查询、资源查找、文件记录等多种功能。另外,元数据信息中还记录有针对数据分片集群中的各条数据执行的数据操作。由于数据分片集群中的每条数据都是通过执行对应的数据操作而存入的,因此,利用配置日志中的元数据信息可以确定各个时间点对应的数据操作,进而根据数据操作反推相应时间点的数据存储状态。具体地,对于备份时间点与恢复时间点不一致的数据分片集群,查询与该数据分片集群对应的配置日志中记录的元数据信息。
步骤S340:根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录。
具体地,由于配置日志中按照时间顺序和/或操作顺序记录了各个时间点对应的数据操作,因此,对于备份时间点与恢复时间点不一致的数据分片集群,通过查询与该数据分片集群对应的配置日志中记录的元数据信息,即可在配置日志中确定该数据分片集群在备份时间点与恢复时间点之间这一时间段内对应的数据操作记录。上述数据操作包括:插入类型的操作记录、替换类型的操作记录和/或删除类型的操作记录。其中,插入类型的操作记录可以对应为针对数据进行的插入操作的数据操作记录;删除类型的操作记录可以对应为针对数据进行的删除操作的数据操作记录。
步骤S350:根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。
具体地,数据恢复的目的是要获取恢复时间点上对应的恢复数据。因此,对于备份时间点与恢复时间点不一致的数据分片集群,首先要判断与该数据分片集群对应的备份时间点与恢复时间点在时间上的前后关系,然后根据判断结果以及数据操作记录对备份数据执行对应操作,从而实现数据恢复。
在本实施例中,针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点早于恢复时间点的数据分片集群,根据数据操作记录,对备份时间点早于恢复时间点的数据分片集群对应的备份数据进行前滚。具体地,备份时间点与恢复时间点不一致的数据分片集群对应的备份数据为全量数据。因此,在执行上述前滚操作时,其具体过程为:针对该全量数据执行上述操作数据记录。例如,上述操作记录为针对数据A进行了删除操作,则在执行前滚操作时,对数据A执行删除操作。
针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点晚于所述恢复时间点的数据分片集群,根据数据操作记录,对备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚。具体地,备份时间点与恢复时间点不一致的数据分片集群对应的备份数据为全量数据。因此,在执行上述回滚操作时,其具体过程为:针对该全量数据执行上述操作数据记录对应的逆操作。其中,上述操作数据记录对应的逆操作为与该操作数据记录相反的操作。具体地,插入类型的操作记录对应的逆操作为删除类型的操作记录,删除类型的操作记录对应的逆操作为插入类型的操作记录。例如,上述操作记录为针对数据A进行了删除操作,则在执行回滚操作时,对数据 A执行与删除操作对应的逆操作,即对数据A执行插入操作,即在原先删除数据A的位置上插入数据A。在上述举例中,均以一条操作记录为例进行描述,实际情况中,在备份时间点与恢复时间点之间对应的数据操作记录可能为多条,此时,需要按照时间顺序依次前滚或回滚各条数据操作记录。
另外,可选的,本实施例中的分布式系统还可以进一步用于通过数据均衡算法对各个数据分片集群中的数据进行均衡操作,并将均衡操作对应的均衡记录写入预设的均衡日志集。具体地,在分布式系统中,由于各个数据分片集群上的存储数据被不断进行更新,而在上述更新过程中,不同数据分片集群上的数据可能被执行不同的操作。例如,一些数据分片集群上的数据可能被执行插入数据的操作,并且,插入数据的数据量大小也可能各不相同,有些数据分片集群上插入数据的数据量会非常大,而有些数据分片集群上插入数据的数据量会相对较小;相反地,一些数据分片集群上的数据可能被执行删除数据的操作。由此可见,上述更新过程使得各个数据分片集群中存储的数据量大小产生或大或小的差异,因此为了缩小上述差异,分布式系统会对各个数据分片集群中的数据进行均衡操作,将数据量较大的数据分片集群中的一部分数据进行迁移,迁移至数据量为空或者数据量较小的数据分片集群中,使各个数据分片集群上的数据量实现大致均衡。另外,当数据分片集群的剩余存储量小于待插入数据的数据量大小时,分布式系统也会针对该数据分片集群中的数据进行均衡操作,即将数据分片集群中的一部分数据迁移至另一数据分片集群中。
相应地,在配置有均衡机制的分布式系统中,在进行数据恢复时,还需要根据均衡日志集判断各个数据分片集群在其备份时间点与恢复时间点之间是否执行过均衡操作,若执行过均衡操作,在进行数据恢复时还需要考虑均衡操作的影响。下面详细介绍配置有均衡机制时本步骤的一种可选的具体实现方式:
在进行数据恢复之前,将各个数据分片集群进行数据备份时所对应的备份时间点以及恢复时间点中最早的时间点作为第一时间点,将各个数据分片集群进行数据备份时所对应的备份时间点以及恢复时间点中最晚的时间点作为第二时间点。具体地,由于各个数据分片集群完成数据备份的时间可能不同,因此各个数据分片集群对应备份时间点也可能不同。另外,由于均衡操作并不是针对单一的数据分片集群而言的,一次均衡操作至少涉及两个数据分片集群,因此,需要将各个数据分片集群作为一个整体进行考虑,判断在某一时间段内各个数据分片集群是否执行过均衡操作。在本实施例中,判断第一时间点和第二时间点之间的时间段内各个数据分片集群是否执行过均衡操作。具体地,第一时间点是指:与本次数据恢复操作相关的均衡操作对应的最早时间点,早于第一时间点的均衡操作必然与本次数据恢复操作无关,因而为了减少后续的计算量,提高数据恢复效率,仅获取第一时间点之后的均衡记录。该第一时间点的确定方式为:将各个数据分片集群进行数据备份时所对应的备份时间点以及恢复时间点中最早的时间点作为第一时间点。例如,若各个数据分片集群进行数据备份时所对应的备份时间点分别为T1、T2、 T3,且恢复时间点为T4,则将T1、T2、T3、T4中最早的时间点作为第一时间点。第二时间点是指:与本次数据恢复操作相关的均衡操作对应的最晚时间点,晚于第二时间点的均衡操作必然与本次数据恢复操作无关,因而为了减少后续的计算量,提高数据恢复效率,仅获取第二时间点之前的均衡记录。该第二时间点的确定方式为:将各个数据分片集群进行数据备份时所对应的备份时间点以及恢复时间点中最晚的时间点作为第二时间点。例如,若各个数据分片集群进行数据备份时所对应的备份时间点分别为T1、T2、T3,且恢复时间点为T4,则将T1、T2、T3、T4中最晚的时间点作为第二时间点。然后,在确定上述第一时间点与上述第二时间点之后,根据上述均衡日志集确定各个数据分片集群在第一时间点与第二时间点之间对应的各次均衡操作,获取各次均衡操作对应的均衡记录中包含的数据迁移信息。设置第一时间与第二时间的目的在于减少获取信息的冗余量,通过获取最少量的数据来确定各个数据分片集群在对应的有效时间范围内的均衡操作。
其中,若各个数据分片集群在第一时间点与第二时间点之间对应的均衡操作的次数为零,说明在第一时间点与第二时间点之间该系统未执行均衡操作,因此,可以直接通过前滚或回滚操作来恢复数据。当各个数据分片集群在第一时间点与第二时间点之间对应的均衡操作的次数大于或等于1时,说明在第一时间点与第二时间点之间该系统执行过均衡操作,相应地,每次均衡操作对应的均衡记录中包含的数据迁移信息具体包括:数据迁移时间、数据迁出集群、以及数据迁入集群。则在对均衡操作的数据进行数据恢复时,根据上述获取的数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据,并结合数据迁移信息进行数据恢复。
具体地,针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点早于恢复时间点的数据分片集群中执行过的均衡操作,其进行数据恢复的过程为:根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定备份时间点早于恢复时间点的数据分片集群在备份时间点与恢复时间点之间是否进行过均衡操作,若是,根据数据迁移信息在备份时间点早于恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作。具体原因在于,若备份时间点早于恢复时间点,说明该集群对应的备份数据是未经均衡操作的数据,而该均衡操作又发生于恢复时间点之前,说明该均衡操作是有效的,因此,需要在备份数据的基础上执行对应的均衡操作。
具体地,当备份时间点与恢复时间点之间的时间段包含数据迁移信息中的数据迁移时间时,确定该数据分片集群在备份时间点与恢复时间点之间进行过均衡操作。其中,上述均衡操作包括:在数据迁出集群中对迁移数据的删除操作、以及在数据迁入集群中对迁移数据的插入操作。则在对已执行均衡操作的数据进行数据恢复时,从均衡日志集中查询并确定与数据迁移信息中的数据迁移时间对应的均衡记录,并执行上述均衡记录中记录的均衡操作。
举例说明,若数据分片集群1为数据迁出集群,数据分片集群2为数据迁入集群,则在将数据分片集群1中的数据A迁移至数据分片集群2之后,数据均衡日志中记录的均衡操作为:在数据分片集群1中对数据A执行删除操作;在数据分片集群2中对数据A执行插入操作(即在数据分片集群2插入数据A),操作时间为X。若备份时间点为Y,恢复时间点为Z,且Y<X <Z,则在进行数据恢复时,在数据分片集群1中对数据A执行删除操作;在数据分片集群2中对数据A执行插入操作。
针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点晚于恢复时间点的数据分片集群,对均衡操作进行数据恢复的过程为:根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定备份时间点晚于恢复时间点的数据分片集群在恢复时间点与备份时间点之间是否进行过均衡操作,若是,根据数据迁移信息在备份时间点晚于恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作的逆操作。具体地,当备份时间点与恢复时间点之间的时间段包含数据迁移信息中的数据迁移时间时,确定该数据分片集群在备份时间点与恢复时间点之间进行过均衡操作。其中,上述均衡操作包括:在数据迁出集群中对迁移数据的删除操作、以及在数据迁入集群中对迁移数据的插入操作。则在对已执行均衡操作的数据进行数据恢复时,从均衡日志集中查询并确定与数据迁移信息中的数据迁移时间对应的均衡记录,并执行上述均衡记录中记录的均衡操作的逆操作。具体原因在于,若备份时间点晚于恢复时间点,说明该集群对应的备份数据是经过均衡操作后的数据,而该均衡操作又发生于恢复时间点之后,说明该均衡操作是无效的,因此,需要在备份数据的基础上执行对应的均衡操作的逆操作。
举例说明,若数据分片集群1为数据迁出集群,数据分片集群2为数据迁入集群,则在将数据分片集群1中的数据A迁移至数据分片集群2之后,数据均衡日志中记录的均衡操作为:在数据分片集群1中对数据A执行删除操作;在数据分片集群2中对数据A执行插入操作(即在数据分片集群2插入数据A),操作时间为X。若备份时间点为Y,恢复时间点为Z,且Z<X <Y,则在进行数据恢复时,在数据分片集群1中对数据A执行删除操作的逆操作,即在数据分片集群1中对数据A执行插入操作(即在在数据分片集群1中,将数据A插入到最后一次对数据A执行删除操作时数据A所对应的位置);在数据分片集群2中对数据A执行删除操作。
步骤S360:根据数据恢复结果对配置日志中记录的各个数据分片集群对应的元数据信息进行恢复。
具体地,根据步骤S350的恢复结果对配置日志中记录的各个数据分片集群对应的元数据信息进行恢复。具体地,由于配置日志中的元数据信息用于描述各个数据分片集群的数据存储状态,因此,当各个数据分片集群的数据存储状态发生变化后,需要根据变化后的数据存储状态更新元数据信息,以实现元数据信息与各个数据分片集群的当前数据存储状态的一致性。其中,当在步骤S350中对数据执行操作时,更新配置日志中对应数据的元数据信息;当在步骤S350中对数据执行逆操作时,对配置日志中对应数据的元数据信息执行对应的逆操作,即每当执行一步逆操作,删除配置日志中与该逆操作的操作对应的元数据信息,从而实现对各个数据分片集群对应的元数据信息进行恢复。另外,各个数据分片集群中也记录有与该数据分片集群上的数据操作对应的日志信息,在进行数据恢复后,也可以采用类似恢复元数据信息的方式恢复各个数据分片集群中的日志信息,以使各个数据分片集群中的日志信息与实际的存储状态一致。
由此可见,在本发明提供的基于分布式系统的数据恢复方法不仅能够分别针对各个数据分片集群进行数据备份,并且,由于各个数据分片集群往往不能同步完成数据备份,因此,本发明进一步根据配置日志确定各个数据分片集群的备份时间点与恢复时间点之间对应的数据操作记录,从而准确高效地实现了分布式系统的数据恢复。并且,本实施例中的方案还能够针对分布式系统中的复杂的均衡操作进行数据恢复,实现了对分布式系统中各个数据分片集群存储的全部数据进行全量备份,从而实现对基于分布式系统的数据准确恢复。
实施例三
图4示出了本发明实施例三提供的基于分布式系统的数据恢复装置的结构框图。如图4所示,该装置包括:一致性确定模块41、查询模块42、操作记录确定模块43、数据恢复模块44、备份模块45以及均衡日志获取模块46。
其中,本实施例中的分布式系统与实施例一中的分布式系统相同,至少包括多个分布式的数据分片集群。下面对本实施例中的各个模块进行详细介绍。
一致性确定模块41适于分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致。
具体地,针对备份时间点与恢复时间点的确定可以参见方法实施例中的对应描述,此处不再赘述。一致性确定模块41上述备份时间点与恢复时间点是否一致时,通过比较备份时间点对应的时间戳与恢复时间点对应的时间戳是否相同来确定,若比较结果为相同,则可以直接根据该数据分片集群中的当前备份数据对该数据分片集群中的数据进行恢复;若比较结果为不同,则将备份时间点与恢复时间点不一致的结果发送给查询模块42。
查询模块42适于针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志。
具体地,对于备份时间点与恢复时间点不一致的数据分片集群,查询模块42用于查询记录该数据分片集群对应的元数据信息的配置日志。其中元数据信息中记录的信息可参照方法实施例中的对应描述,此处不再赘述。
操作记录确定模块43适于根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与所述恢复时间点之间对应的数据操作记录。
具体地,由于配置日志中按照时间顺序和/或操作顺序记录了各个时间点对应的数据操作,因此,对于备份时间点与恢复时间点不一致的数据分片集群,操作记录确定模块43根据查询模块42的查询结果,确定与该数据分片集群对应的数据操作记录。数据操作包括:插入类型的操作记录、替换类型的操作记录和/或删除类型的操作记录。
数据恢复模块44适于根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。
具体地,数据恢复模块44在进行数据恢复时,对于备份时间点与恢复时间点不一致的数据分片集群,首先要判断与该数据分片集群对应的备份时间点与恢复时间点在时间上的前后关系,然后根据判断结果以及数据操作记录对备份数据执行对应操作,从而实现数据恢复。
其中,针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点早于恢复时间点的数据分片集群,数据恢复模块44根据数据操作记录,对备份时间点早于恢复时间点的数据分片集群对应的备份数据进行前滚。具体地,备份时间点与恢复时间点不一致的数据分片集群对应的备份数据为全量数据。因此,数据恢复模块44在执行上述前滚操作时,其具体过程为:针对该全量数据执行上述操作数据记录。针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点晚于所述恢复时间点的数据分片集群,数据恢复模块44根据数据操作记录,对备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚。具体地,备份时间点与恢复时间点不一致的数据分片集群对应的备份数据为全量数据。因此,数据恢复模块44在执行上述回滚操作时,其具体过程为:针对该全量数据执行上述操作数据记录对应的逆操作。其中,上述操作数据记录对应的逆操作为与该操作数据记录相反的操作。具体地,插入类型的操作记录对应的逆操作为删除类型的操作记录,删除类型的操作记录对应的逆操作为插入类型的操作记录。
另外,分布式系统还进一步用于通过数据均衡算法对各个数据分片集群中的数据进行均衡操作,并将均衡操作对应的均衡记录写入预设的均衡日志集。具体地,在分布式系统进行均衡操作的具体过程可以参照方法实施例中的对应描述,此处不再赘述。
具体地,针对上述均衡操作,数据恢复模块44在进行数据恢复时,其过程具体为:首先,在进行数据恢复之前,若各个数据分片集群在第一时间点与第二时间点之间对应的均衡操作的次数为零,则可以直接通过前滚或回滚操作来恢复数据;若各个数据分片集群在第一时间点与第二时间点之间对应的均衡操作的次数大于或等于1时,则从均衡日志获取模块中获取第一时间点和第二时间点之间的进行均衡操作对应的数据迁移信息。
在进行数据恢复时,针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点早于恢复时间点的数据分片集群中执行过的均衡操作,数据恢复模块44根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定备份时间点早于恢复时间点的数据分片集群在备份时间点与恢复时间点之间是否进行过均衡操作,若是,根据数据迁移信息在备份时间点早于恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作。当备份时间点与恢复时间点之间的时间段包含数据迁移信息中的数据迁移时间时,数据恢复模块44确定该数据分片集群在备份时间点与恢复时间点之间进行过均衡操作。上述均衡操作包括:在数据迁出集群中对迁移数据的删除操作、以及在数据迁入集群中对迁移数据的插入操作。则在进行数据恢复时,从均衡日志集中查找与数据迁移信息中的数据迁移时间对应的均衡记录,并执行上述均衡记录中记录的均衡操作。
针对备份时间点与恢复时间点不一致的数据分片集群中备份时间点晚于恢复时间点的数据分片集群,数据恢复模块44根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定备份时间点晚于恢复时间点的数据分片集群在恢复时间点与备份时间点之间是否进行过均衡操作,若是,根据数据迁移信息在备份时间点晚于恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作的逆操作。
进一步地,数据恢复模块44还能够根据数据恢复结果对配置日志中记录的各个数据分片集群对应的元数据信息进行恢复。具体恢复过程可参见方法实施例中的对应描述,此处不再赘述。
备份模块45用于按照预设策略分别对各个数据分片集群进行数据备份。其中,预设策略的具体设置可参见方法实施例中相关描述,此处不再赘述。
均衡日志获取模块46适于将各个数据分片集群进行数据备份时所对应的备份时间点以及恢复时间点中最早的时间点作为第一时间点,将各个数据分片集群进行数据备份时所对应的备份时间点以及恢复时间点中最晚的时间点作为第二时间点;根据均衡日志集确定各个数据分片集群在第一时间点与所述第二时间点之间对应的各次均衡操作,获取各次均衡操作对应的均衡记录中包含的数据迁移信息。其中,第一时间点与第二时间点的定义可参见方法实施例中的相关描述,此处不再赘述。均衡日志获取模块46根据上述均衡日志集确定各个数据分片集群在第一时间点与第二时间点之间对应的各次均衡操作,获取各次均衡操作对应的均衡记录中包含的数据迁移信息。
在这里,要说明的是,上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
另外,上述备份模块45与均衡日志获取模块46均为可选模块,具体实施中,本领域技术人员可以根据实际情况对备份模块45与均衡日志获取模块 46进行选择或删除,本发明对此不作限制。
由此可见,在本发明提供的基于分布式系统的数据恢复装置中,不仅能够分别针对各个数据分片集群进行数据备份,并且,由于各个数据分片集群往往不能同步完成数据备份,因此,本发明进一步根据配置日志确定各个数据分片集群的备份时间点与恢复时间点之间对应的数据操作记录,从而准确高效地实现了分布式系统的数据恢复。并且,本实施例中的方案还能够针对分布式系统中的复杂的均衡操作进行数据恢复,实现了针对各个数据分片集群存储的全部数据进行全量备份,从而实现对基于分布式系统的数据准确恢复。
实施例四
图5示出了本发明实施例四提供的分布式系统500的结构框图。如图5 所示,该系统包括:实施例三中的数据恢复装置400以及多个分布式的数据分片集群510。其中,数据恢复装置400进一步包括:一致性确定模块41、查询模块42、操作记录确定模块43、数据恢复模块44、备份模块45以及均衡日志获取模块46。
实施例五
本申请实施例五提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于分布式系统的数据恢复方法。
实施例六
图6示出了根据本发明实施例六的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608 完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述基于分布式系统的数据恢复方法实施例中的相关步骤。具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific IntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。存储器 606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;针对备份时间点与恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;根据配置日志确定备份时间点与恢复时间点不一致的数据分片集群在备份时间点与恢复时间点之间对应的数据操作记录;根据数据操作记录以及备份时间点与恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于分布式系统的数据恢复设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (19)

1.一种基于分布式系统的数据恢复方法,其中,所述分布式系统至少包括多个分布式的数据分片集群,所述方法包括:
分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;
针对备份时间点与所述恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;
根据所述配置日志确定所述备份时间点与所述恢复时间点不一致的数据分片集群在所述备份时间点与所述恢复时间点之间对应的数据操作记录;以及
根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复;
其中,所述分布式系统进一步用于通过数据均衡算法对各个数据分片集群中的数据进行均衡操作,并将均衡操作对应的均衡记录写入预设的均衡日志集;
所述根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复的步骤之前,进一步包括步骤:
将各个数据分片集群进行数据备份时所对应的备份时间点以及所述恢复时间点中最早的时间点作为第一时间点,将各个数据分片集群进行数据备份时所对应的备份时间点以及所述恢复时间点中最晚的时间点作为第二时间点;
根据所述均衡日志集确定各个数据分片集群在所述第一时间点与所述第二时间点之间对应的各次均衡操作,获取各次均衡操作对应的均衡记录中包含的数据迁移信息;
所述根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复的步骤具体包括:
根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据,并结合所述数据迁移信息进行数据恢复。
2.根据权利要求1所述的方法,其中,所述根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复的步骤具体包括:
针对所述备份时间点与所述恢复时间点不一致的数据分片集群中备份时间点早于所述恢复时间点的数据分片集群,根据所述数据操作记录,对所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据进行前滚;和/或,
针对所述备份时间点与所述恢复时间点不一致的数据分片集群中备份时间点晚于所述恢复时间点的数据分片集群,根据所述数据操作记录,对所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚。
3.根据权利要求2所述的方法,其中,所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据为全量数据,则所述根据所述数据操作记录,对所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据进行前滚的步骤具体包括:针对所述全量数据,执行所述数据操作记录;
且所述根据所述数据操作记录,对所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚的步骤具体包括:针对所述全量数据,执行所述数据操作记录对应的逆操作。
4.根据权利要求3所述的方法,其中,所述数据操作记录包括:插入类型的操作记录和/或删除类型的操作记录;其中,插入类型的操作记录对应的逆操作为删除类型的操作记录,删除类型的操作记录对应的逆操作为插入类型的操作记录。
5.根据权利要求2所述的方法,其中,当各个数据分片集群在所述第一时间点与所述第二时间点之间对应的均衡操作的次数大于或等于1时,每次均衡操作对应的均衡记录中包含的数据迁移信息具体包括:数据迁移时间、数据迁出集群、以及数据迁入集群;
则所述对所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据进行前滚的步骤进一步包括:根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定所述备份时间点早于所述恢复时间点的数据分片集群在所述备份时间点与所述恢复时间点之间是否进行过均衡操作,若是,根据所述数据迁移信息在所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作;
所述对所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚的步骤进一步包括:根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定所述备份时间点晚于所述恢复时间点的数据分片集群在所述恢复时间点与所述备份时间点之间是否进行过均衡操作,若是,根据所述数据迁移信息在所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作的逆操作。
6.根据权利要求1-5任一所述的方法,其中,所述分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致的步骤之前,进一步包括:
按照预设策略分别对各个数据分片集群进行数据备份;
其中,所述预设策略包括:每隔预设时间间隔触发一次备份操作;或者,
每当数据分片集群中新增的数据量大于预设阈值时触发一次备份操作;
并且,所述数据分片集群进行数据备份时所对应的备份时间点为该数据分片集群本次备份完毕时的时间点。
7.根据权利要求6任一所述的方法,其中,所述根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复的步骤之后,进一步包括步骤:
根据数据恢复结果对所述配置日志中记录的各个数据分片集群对应的元数据信息进行恢复。
8.根据权利要求7任一所述的方法,其中,所述恢复时间点根据接收到的误操作恢复指令中包含的误操作时间确定。
9.一种基于分布式系统的数据恢复装置,其中,所述分布式系统至少包括多个分布式的数据分片集群,所述装置包括:
一致性确定模块,适于分别确定各个数据分片集群进行数据备份时所对应的备份时间点与待恢复数据所对应的恢复时间点是否一致;
查询模块,适于针对备份时间点与所述恢复时间点不一致的数据分片集群,查询用于记录各个数据分片集群对应的元数据信息的配置日志;
操作记录确定模块,适于根据所述配置日志确定所述备份时间点与所述恢复时间点不一致的数据分片集群在所述备份时间点与所述恢复时间点之间对应的数据操作记录;以及
数据恢复模块,适于根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据进行数据恢复;
其中,所述分布式系统进一步用于通过数据均衡算法对各个数据分片集群中的数据进行均衡操作,并将均衡操作对应的均衡记录写入预设的均衡日志集;
则所述装置进一步包括:均衡日志获取模块,适于将各个数据分片集群进行数据备份时所对应的备份时间点以及所述恢复时间点中最早的时间点作为第一时间点,将各个数据分片集群进行数据备份时所对应的备份时间点以及所述恢复时间点中最晚的时间点作为第二时间点;
根据所述均衡日志集确定各个数据分片集群在所述第一时间点与所述第二时间点之间对应的各次均衡操作,获取各次均衡操作对应的均衡记录中包含的数据迁移信息;
则所述数据恢复模块具体适于:根据所述数据操作记录以及所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据,并结合所述数据迁移信息进行数据恢复。
10.根据权利要求9所述的装置,其中,所述数据恢复模块具体适于:
针对所述备份时间点与所述恢复时间点不一致的数据分片集群中备份时间点早于所述恢复时间点的数据分片集群,根据所述数据操作记录,对所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据进行前滚;
和/或,针对所述备份时间点与所述恢复时间点不一致的数据分片集群中备份时间点晚于所述恢复时间点的数据分片集群,根据所述数据操作记录,对所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚。
11.根据权利要求10所述的装置,其中,所述备份时间点与所述恢复时间点不一致的数据分片集群对应的备份数据为全量数据,则所述数据恢复模块根据所述数据操作记录,对所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据进行前滚时,具体适于:
针对所述全量数据,执行所述数据操作记录;
且所述数据恢复模块根据所述数据操作记录,对所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚时,具体适于:
针对所述全量数据,执行所述数据操作记录对应的逆操作。
12.根据权利要求11所述的装置,其中,所述数据操作记录包括:
插入类型的操作记录和/或删除类型的操作记录;
其中,插入类型的操作记录对应的逆操作为删除类型的操作记录,删除类型的操作记录对应的逆操作为插入类型的操作记录。
13.根据权利要求10所述的装置,其中,当各个数据分片集群在所述第一时间点与所述第二时间点之间对应的均衡操作的次数大于或等于1时,每次均衡操作对应的均衡记录中包含的数据迁移信息具体包括:
数据迁移时间、数据迁出集群、以及数据迁入集群;
则所述数据恢复模块对所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据进行前滚时,具体适于:
根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定所述备份时间点早于所述恢复时间点的数据分片集群在所述备份时间点与所述恢复时间点之间是否进行过均衡操作,若是,根据所述数据迁移信息在所述备份时间点早于所述恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作;
所述数据恢复模块根据所述数据操作记录,对所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据进行回滚时,具体适于:
根据各次均衡操作对应的均衡记录中包含的数据迁移信息,确定所述备份时间点晚于所述恢复时间点的数据分片集群在所述恢复时间点与所述备份时间点之间是否进行过均衡操作,若是,根据所述数据迁移信息在所述备份时间点晚于所述恢复时间点的数据分片集群对应的备份数据的基础上执行对应的均衡操作的逆操作。
14.根据权利要求9-13任一所述的装置,其中,所述装置进一步包括:
备份模块,适于按照预设策略分别对各个数据分片集群进行数据备份;
其中,所述预设策略包括:
每隔预设时间间隔触发一次备份操作;或者,
每当数据分片集群中新增的数据量大于预设阈值时触发一次备份操作;
并且,所述数据分片集群进行数据备份时所对应的备份时间点为该数据分片集群本次备份完毕时的时间点。
15.根据权利要求14任一所述的装置,其中,所述数据恢复模块进一步用于:
根据数据恢复结果对所述配置日志中记录的各个数据分片集群对应的元数据信息进行恢复。
16.根据权利要求15任一所述的装置,其中,所述恢复时间点根据接收到的误操作恢复指令中包含的误操作时间确定。
17.一种分布式系统,包括权利要求9-16任一所述的数据恢复装置,以及所述多个分布式的数据分片集群。
18.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-8中任一项所述的数据恢复方法对应的操作。
19.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-8中任一项所述的数据恢复方法对应的操作。
CN201710555261.3A 2017-06-30 2017-06-30 基于分布式系统的数据恢复方法、装置及系统 Active CN107451013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710555261.3A CN107451013B (zh) 2017-06-30 2017-06-30 基于分布式系统的数据恢复方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710555261.3A CN107451013B (zh) 2017-06-30 2017-06-30 基于分布式系统的数据恢复方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107451013A CN107451013A (zh) 2017-12-08
CN107451013B true CN107451013B (zh) 2020-12-25

Family

ID=60487885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710555261.3A Active CN107451013B (zh) 2017-06-30 2017-06-30 基于分布式系统的数据恢复方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107451013B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196979B (zh) * 2017-12-28 2021-07-09 北京星选科技有限公司 数据备份方法和装置
CN110309227B (zh) * 2018-05-28 2022-12-13 腾讯科技(深圳)有限公司 分布式数据回档方法、装置和计算机可读存储介质
CN108984341A (zh) * 2018-06-16 2018-12-11 温州职业技术学院 一种基于分布式存储系统的数据恢复方法及系统
CN109165117B (zh) * 2018-06-29 2022-05-31 华为技术有限公司 数据处理的方法和系统
CN109144785B (zh) * 2018-08-27 2020-07-28 北京百度网讯科技有限公司 用于备份数据的方法和装置
CN112231286A (zh) * 2020-08-28 2021-01-15 杭州沃趣科技股份有限公司 一种快速恢复数据库历史数据的方法
CN112882861B (zh) * 2021-02-18 2023-11-07 北京思特奇信息技术股份有限公司 一种业务配置数据装载与恢复系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572339A (zh) * 2013-10-17 2015-04-29 捷达世软件(深圳)有限公司 基于分布式文件系统的数据备份还原系统及方法
CN105242990A (zh) * 2015-10-28 2016-01-13 浪潮(北京)电子信息产业有限公司 基于云平台的数据备份方法和装置
CN105468475A (zh) * 2015-11-16 2016-04-06 北京奇虎科技有限公司 数据库的备份方法及备份装置
CN105630626A (zh) * 2014-11-03 2016-06-01 中兴通讯股份有限公司 事务备份处理方法及装置
CN106610876A (zh) * 2015-10-23 2017-05-03 中兴通讯股份有限公司 数据快照的恢复方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465698B2 (en) * 2014-03-06 2016-10-11 Software Ag Systems and/or methods for data recovery in distributed, scalable multi-tenant environments

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572339A (zh) * 2013-10-17 2015-04-29 捷达世软件(深圳)有限公司 基于分布式文件系统的数据备份还原系统及方法
CN105630626A (zh) * 2014-11-03 2016-06-01 中兴通讯股份有限公司 事务备份处理方法及装置
CN106610876A (zh) * 2015-10-23 2017-05-03 中兴通讯股份有限公司 数据快照的恢复方法及装置
CN105242990A (zh) * 2015-10-28 2016-01-13 浪潮(北京)电子信息产业有限公司 基于云平台的数据备份方法和装置
CN105468475A (zh) * 2015-11-16 2016-04-06 北京奇虎科技有限公司 数据库的备份方法及备份装置

Also Published As

Publication number Publication date
CN107451013A (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
CN107451013B (zh) 基于分布式系统的数据恢复方法、装置及系统
US9372908B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
CN107391628B (zh) 数据同步方法及装置
US11301154B2 (en) Distributed storage method and device
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
US9836361B2 (en) Data replicating system, data replicating method, node device, management device and computer readable medium
CN109284073B (zh) 数据存储方法、装置、系统、服务器、控制节点及介质
US9251230B2 (en) Exchanging locations of an out of synchronization indicator and a change recording indicator via pointers
US9952940B2 (en) Method of operating a shared nothing cluster system
CN107544869B (zh) 一种数据恢复方法和装置
US10838825B2 (en) Implementing snapshot sets for consistency groups of storage volumes
CN107391033B (zh) 数据迁移方法及装置、计算设备、计算机存储介质
US20170083419A1 (en) Data management method, node, and system for database cluster
JP6189488B1 (ja) データベース管理装置、データベース管理方法、およびデータベース管理プログラム
CN115599747B (zh) 一种分布式存储系统的元数据同步方法、系统及设备
CN107038092B (zh) 一种数据复制方法及装置
CN112015595B (zh) 主从数据库的切换方法、计算设备及存储介质
CN110647514A (zh) 一种元数据更新方法、装置及元数据服务器
CN108604201B (zh) 一种快照回滚方法、装置、存储控制器和系统
CN109726211B (zh) 一种分布式时序数据库
CN106708865B (zh) 流处理系统中访问窗口数据的方法和装置
CN107122442B (zh) 一种分布式数据库及其访问方法
CN106997305B (zh) 一种事务处理方法与装置
Pankowski Consistency and availability of Data in replicated NoSQL databases
CN109254870B (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