CN113419896B - 数据恢复方法、装置、电子设备及计算机可读介质 - Google Patents

数据恢复方法、装置、电子设备及计算机可读介质 Download PDF

Info

Publication number
CN113419896B
CN113419896B CN202010725950.6A CN202010725950A CN113419896B CN 113419896 B CN113419896 B CN 113419896B CN 202010725950 A CN202010725950 A CN 202010725950A CN 113419896 B CN113419896 B CN 113419896B
Authority
CN
China
Prior art keywords
relational database
user data
recovery
data
instances
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
CN202010725950.6A
Other languages
English (en)
Other versions
CN113419896A (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 Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010725950.6A priority Critical patent/CN113419896B/zh
Publication of CN113419896A publication Critical patent/CN113419896A/zh
Application granted granted Critical
Publication of CN113419896B publication Critical patent/CN113419896B/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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据恢复方法、装置、电子设备及计算机可读介质,涉及数据库领域。其中,所述方法包括:接收针对分布式关系型数据库的数据恢复请求,数据恢复请求中携带有分布式关系型数据库中的用户数据的恢复时间点;基于恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得多个关系型数据库实例的恢复后的用户数据;基于恢复时间点,确定用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;基于多个关系型数据库实例的恢复后的用户数据和分库分表规则元数据,恢复分布式关系型数据库中的用户数据。通过本申请实施例,能够有效保证分布式关系型数据库中的用户数据的恢复的完整性。

Description

数据恢复方法、装置、电子设备及计算机可读介质
技术领域
本申请实施例涉及数据库领域,尤其涉及一种数据恢复方法、装置、电子设备及计算机可读介质。
背景技术
近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式向分布式发展。分布式数据库具体指利用高速计算机网络将物理上分散的多个数据库实例连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的用户数据分散存储到多个通过网络连接的数据库实例上,以获取更大的存储容量和更高的并发访问量。
分布式关系型数据库(Distribute Relational Database)在运行过程中可能会产生各种故障,例如宕机,使分布式关系型数据库处于不稳定的状态,出现用户数据的丢失。对于分布式关系型数据库来说,用户数据的恢复是关键技术之一。由此可见,如何有效恢复分布式关系型数据库中的用户数据成为当前亟待解决的技术问题。
发明内容
本申请的目的在于提出一种数据恢复方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何有效恢复分布式关系型数据库中的用户数据的技术问题。
根据本申请实施例的第一方面,提供了一种数据恢复方法。所述方法包括:接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
根据本申请实施例的第二方面,提供了一种数据恢复装置。所述装置包括:第一接收模块,用于接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;第一恢复模块,用于基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;第一确定模块,用于基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;第二恢复模块,用于基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
根据本申请实施例的第三方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面所述的数据恢复方法。
根据本申请实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面所述的数据恢复方法。
根据本申请实施例提供的数据恢复方案,接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有分布式关系型数据库中的用户数据的恢复时间点,并基于所述恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得多个关系型数据库实例的恢复后的用户数据,再基于所述恢复时间点,确定用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,再基于多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复分布式关系型数据库中的用户数据,与现有的其它方式相比,基于针对分布式关系型数据库的数据恢复请求中携带的分布式关系型数据库中的用户数据的恢复时间点,能够按任意的恢复时间点恢复分布式关系型数据库中的用户数据。此外,基于分布式关系型数据库中的用户数据的恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,再基于多个关系型数据库实例的恢复后的用户数据和用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,恢复分布式关系型数据库中的用户数据,能够有效保证分布式关系型数据库中的用户数据的恢复的完整性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1A为本申请实施例一中数据恢复方法的步骤流程图;
图1B为根据本申请实施例一提供的分布式关系型数据库备份的示意图;
图2A为本申请实施例二中数据恢复方法的步骤流程图;
图2B为根据本申请实施例二提供的分布式关系型数据库恢复的示意图;
图3为本申请实施例三中数据恢复装置的结构示意图;
图4为本申请实施例四中数据恢复装置的结构示意图;
图5为本申请实施例五中数据恢复装置的结构示意图;
图6为本申请实施例六中电子设备的结构示意图;
图7为本申请实施例七中电子设备的硬件结构。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
参照图1A,示出了本申请实施例一的数据恢复方法的步骤流程图。
具体地,本实施例提供的数据恢复方法包括以下步骤:
在步骤S101中,接收针对分布式关系型数据库的数据恢复请求。
在本申请实施例中,关系型数据库可理解为采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。所述分布式关系型数据库可理解为提供的基于中间件的分布式关系型数据库系统服务。所述分布式关系型数据库可以基于普通服务器的横向扩展的方式,构建支持海量数据存储和访问的数据库系统,从而实现无限扩容和弹性扩展。相比单机的关系型数据库,分布式关系型数据库提供了更高规格的存储查询率,满足用户持续增长的海量数据存储需求以及持续增长的用户数据请求压力。所述数据恢复请求可理解为用于请求恢复分布式关系型数据库在恢复时间点的用户数据的请求。例如,可用于请求恢复分布式关系型数据库在2020年2月3日上午9点钟的用户数据等。其中,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点。所述用户数据可为商品订单数据、商品交易数据等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在接收针对分布式关系型数据库的数据恢复请求之前,所述方法还包括:接收针对所述分布式关系型数据库的第一数据全量备份请求;基于所述第一数据全量备份请求,触发所述多个关系型数据库实例分别进行用户数据的全量备份操作,以获得所述多个关系型数据库实例的全量备份的用户数据;将所述多个关系型数据库实例的全量备份的用户数据与所述多个关系型数据库实例的全量备份的时间点进行关联存储。籍此,通过第一数据全量备份请求,触发分布式关系型数据库中的多个关系型数据库实例分别进行用户数据的全量备份操作,能够有效获得多个关系型数据库实例的全量备份的用户数据与多个关系型数据库实例的全量备份的时间点的关联存储结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,所述第一数据全量备份请求可用于请求全量备份分布式关系型数据库中的关系型数据库实例中的用户数据、用于分布式关系型数据库中的用户数据的分库分表规则元数据,及经过数据库定义语言操作的分布式关系型数据库的快照数据等。其中,数据库服务器(物理节点)上可以部署有多个关系型数据库实例,而关系型数据库实例上可以部署有多个关系型数据库,关系型数据库是关系型数据库表的逻辑组织形式,一个关系型数据库中可以包含多张数据表。数据表可以理解为数据存储单元。所述分库分表规则元数据可理解为用于描述用于分布式关系型数据库中的用户数据的分库分表规则的数据,例如,(#id#.longValue().abs()%24).intdiv(3),也即是按id取模划分8个分库,每个分库3张分表。所述数据库定义语言操作可为数据库的创建操作、数据库的删除操作、数据表字段类型的修改操作、数据表字段的添加操作、数据表字段的删除操作、数据表字段名称的修改操作、数据表的重命名操作等。所述快照数据可理解为对经过数据库定义语言操作的分布式关系型数据库执行快照操作所获得的数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在基于所述第一数据全量备份请求,触发所述多个关系型数据库实例分别进行用户数据的全量备份操作时,基于所述第一数据全量备份请求,向所述多个关系型数据库实例分别发送第二数据全量备份请求,使得所述多个关系型数据库实例分别基于所述第二数据全量备份请求进行用户数据的全量备份操作;接收所述多个关系型数据库实例分别针对所述第二数据全量备份请求发送的数据全量备份响应;基于所述数据全量备份响应中携带的全量备份的用户数据,获得所述多个关系型数据库实例的全量备份的用户数据。籍此,通过基于第一数据全量备份请求,向多个关系型数据库实例分别发送第二数据全量备份请求,能够有效获得分布式关系型数据库中的多个关系型数据库实例的全量备份的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在将所述多个关系型数据库实例的全量备份的用户数据与所述多个关系型数据库实例的全量备份的时间点进行关联存储时,基于所述分布式关系型数据库中的所述多个关系型数据库实例的全量备份的用户数据,生成所述分布式关系型数据库的全量备份的用户数据集合;基于所述分布式关系型数据库中的所述多个关系型数据库实例的全量备份的时间点,确定所述分布式关系型数据库的全量备份的用户数据集合所对应的全量备份的时间点;将所述分布式关系型数据库的全量备份的用户数据集合与所述分布式关系型数据库的全量备份的用户数据集合所对应的全量备份的时间点进行关联存储。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在接收针对所述分布式关系型数据库的第一数据全量备份请求之后,所述方法还包括:若接收到针对用于所述分布式关系型数据库中的用户数据的分库分表规则元数据的变更操作,则记录变更后的分库分表规则元数据,并将所述变更后的分库分表规则元数据与所述变更后的分库分表规则元数据对应的变更时间点进行关联存储。籍此,能够有效获得变更后的分库分表规则元数据与变更后的分库分表规则元数据对应的变更时间点的关联存储结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在接收针对所述分布式关系型数据库的第一数据全量备份请求之后,所述方法还包括:若接收到针对所述分布式关系型数据库的数据库定义语言操作,则记录经过所述数据库定义语言操作的所述分布式关系型数据库的快照数据,并将所述快照数据与所述快照数据对应的快照时间点进行关联存储。籍此,能够有效获得快照数据与快照数据对应的快照时间点的关联存储结果。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S102中,基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据。
在一些可选实施例中,在基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复时,基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的全量恢复,以获得所述多个关系型数据库实例的全量恢复后的用户数据;基于所述恢复时间点,对所述多个关系型数据库实例的全量恢复后的用户数据分别进行用户数据的增量恢复,以获得所述多个关系型数据库实例的完全恢复后的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的全量恢复时,确定在所述恢复时间点之前且与所述恢复时间点最近的全量备份时间点;基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别进行用户数据的全量恢复,以获得所述多个关系型数据库实例的全量恢复后的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别进行用户数据的全量恢复时,基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,生成向所述多个关系型数据库实例分别发送的用户数据全量恢复请求;向所述多个关系型数据库实例分别发送用户数据全量恢复请求,使得所述多个关系型数据库实例分别基于所述用户数据全量恢复请求进行用户数据的全量恢复,以获得所述多个关系型数据库实例的全量恢复后的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述恢复时间点,对所述多个关系型数据库实例的全量恢复后的用户数据分别进行用户数据的增量恢复时,从所述多个关系型数据库实例分别对应的日志文件中提取从所述全量备份时间点至所述恢复时间点所形成的时间段内的日志数据;将所述多个关系型数据库实例分别对应的所述日志数据分别应用于所述多个关系型数据库实例,以对所述多个关系型数据库实例的全量恢复后的用户数据分别进行用户数据的增量恢复,其中,所述日志文件用于记录对对应的关系型数据库实例中的用户数据进行变更的SQL语句。具体地,所述日志文件可为二进制格式的日志文件,用于记录对关系型数据库中的用户数据进行变更的SQL语句,例如,更改数据库表和更改内容的SQL语句都会记录到二进制格式的日志文件中,但是对库表等内容的查询不会记录。二进制格式的日志文件主要作用是用于关系型数据库的主从复制及数据的增量恢复。二进制格式的日志文件(binlog)支持三种数据格式,对应参数为binlog_format,可选值分别为ROW、STATEMENT、MIXED,对应的默认值为MIXED,需要调整为ROW格式。该数据格式的特点为:每个增删改的SQL语句,都会在二进制格式的日志文件中记录SQL语句所影响的行在变更前和变更后的值。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S103中,基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。
在一些可选实施例中,在基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据时,将与所述分库分表规则元数据关联存储的变更时间点与所述恢复时间点进行比较,以获得时间点比较结果;基于所述时间点比较结果,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据时,确定在所述恢复时间点之前且与所述恢复时间点最近的变更时间点;确定所述变更时间点所对应的分库分表规则元数据为用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S104中,基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
在一些可选实施例中,在基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据时,基于所述分库分表规则元数据,对所述多个关系型数据库实例的恢复后的用户数据进行组织,以恢复所述分布式关系型数据库中的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,如图1B所示,分布式数据库系统包括控制台、与控制台连接的DRDS代理服务器,及与DRDS代理服务器连接的各个关系型数据库实例,例如,RDS A、RDSB等。所述DRDS代理服务器为在控制台和关系型数据库实例之间加入的一个服务器,主要为控制台提供关系型数据库分片路由的能力,用户输入的SQL指令会根据DRDS代理服务器的分片算法路由到其中的一个关系型数据库实例上,通过DRDS代理服务器,用户可以很方便的管理和操作多个关系型数据库实例。数据备份过程如下:用户通过控制台,向DRDS代理服务器发送数据全量备份请求。DRDS代理服务器基于数据全量备份请求,备份自身相关的元数据。所述元数据包括分库分表规则元数据、用户通过控制台访问分布式关系型数据库的账号和密码、DRDS代理服务器访问各个关系型数据库实例的账号和密码等。具体地,若DRDS代理服务器接收到针对用于所述分布式关系型数据库中的用户数据的分库分表规则元数据的变更操作,则DRDS代理服务器记录变更后的分库分表规则元数据,并将所述变更后的分库分表规则元数据与所述变更后的分库分表规则元数据对应的变更时间点进行关联存储。此外,若DRDS代理服务器接收到针对所述分布式关系型数据库的数据库定义语言操作,则DRDS代理服务器记录经过所述数据库定义语言操作的所述分布式关系型数据库的快照数据,并将所述快照数据与所述快照数据对应的快照时间点进行关联存储。然后,DRDS代理服务器基于数据全量备份请求,向各个关系型数据库实例分别发送数据全量备份请求,使得各个关系型数据库实例分别基于数据全量备份请求进行用户数据的全量备份操作,并接收多个关系型数据库实例分别针对数据全量备份请求发送的数据全量备份响应,再基于数据全量备份响应中携带的全量备份的用户数据,获得各个关系型数据库实例的全量备份的用户数据。最后,DRDS代理服务器基于各个关系型数据库实例的全量备份的用户数据,生成分布式关系型数据库的全量备份的用户数据集合,并基于各个关系型数据库实例的全量备份的时间点,确定分布式关系型数据库的全量备份的用户数据集合所对应的全量备份的时间点,再将分布式关系型数据库的全量备份的用户数据集合与分布式关系型数据库的全量备份的用户数据集合所对应的全量备份的时间点进行关联存储。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
通过本申请实施例提供的数据恢复方法,接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有分布式关系型数据库中的用户数据的恢复时间点,并基于所述恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得多个关系型数据库实例的恢复后的用户数据,再基于所述恢复时间点,确定用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,再基于多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复分布式关系型数据库中的用户数据,与现有的其它方式相比,基于针对分布式关系型数据库的数据恢复请求中携带的分布式关系型数据库中的用户数据的恢复时间点,能够按任意的恢复时间点恢复分布式关系型数据库中的用户数据。此外,基于分布式关系型数据库中的用户数据的恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,再基于多个关系型数据库实例的恢复后的用户数据和用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,恢复分布式关系型数据库中的用户数据,能够有效保证分布式关系型数据库中的用户数据的恢复的完整性。
本实施例提供的数据恢复方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。
参照图2A,示出了本申请实施例二的数据恢复方法的步骤流程图。
具体地,本实施例提供的数据恢复方法包括以下步骤:
在步骤S201中,接收针对分布式关系型数据库的数据恢复请求。
在本申请实施例中,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S202中,基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据。
在一些可选实施例中,在基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例分别进行用户数据的恢复时,对所述多个关系型数据库实例分别进行克隆,以获得所述多个关系型数据库实例分别对应的克隆实例;基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据;基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据。其中,所述克隆实例为与对应的关系型数据库实例完全相同的数据库实例。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复时,确定在所述恢复时间点之前且与所述恢复时间点最近的全量备份时间点;基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复时,基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,生成向所述多个关系型数据库实例对应的克隆实例发送的用户数据全量恢复请求;向所述多个关系型数据库实例对应的克隆实例分别发送用户数据全量恢复请求,使得所述多个关系型数据库实例对应的克隆实例分别基于所述用户数据全量恢复请求进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复时,从所述多个关系型数据库实例分别对应的日志文件中提取从所述全量备份时间点至所述恢复时间点所形成的时间段内的日志数据;将所述多个关系型数据库实例分别对应的所述日志数据应用于所述多个关系型数据库实例分别对应的克隆实例,以对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复;将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据,其中,所述日志文件用于记录对对应的关系型数据库实例中的用户数据进行变更的SQL语句。具体地,所述日志文件可为二进制格式的日志文件,用于记录对关系型数据库中的用户数据进行变更的SQL语句,例如,更改数据库表和更改内容的SQL语句都会记录到二进制格式的日志文件中,但是对库表等内容的查询不会记录。二进制格式的日志文件主要作用是用于关系型数据库的主从复制及数据的增量恢复。二进制格式的日志文件(binlog)支持三种数据格式,对应参数为binlog_format,可选值分别为ROW、STATEMENT、MIXED,对应的默认值为MIXED,需要调整为ROW格式。该数据格式的特点为:每个增删改的SQL语句,都会在二进制格式的日志文件中记录SQL语句所影响的行在变更前和变更后的值。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在获得所述多个关系型数据库实例的恢复后的用户数据之后,所述方法还包括:若在所述恢复时间点之前接收到针对所述分布式关系型数据库的数据库定义语言操作,则确定在所述恢复时间点之前且与所述恢复时间点最近的快照时间点;基于所述快照时间点所对应的经过数据库定义语言操作的所述分布式关系型数据库的快照数据,恢复所述分布式关系型数据库的结构。例如,分布式关系型数据库中的字段的类型、分布式关系型数据库中的字段的名称等。籍此,在恢复时间点之前接收到针对分布式关系型数据库的数据库定义语言操作时,可通过快照时间点所对应的经过数据库定义语言操作的分布式关系型数据库的快照数据,恢复分布式关系型数据库的结构。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S203中,基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。
在一些可选实施例中,在基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据时,确定在所述恢复时间点之前且与所述恢复时间点最近的变更时间点;确定所述变更时间点所对应的变更后的分库分表规则元数据为用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S204中,基于所述分库分表规则元数据,对所述多个关系型数据库实例的恢复后的用户数据进行组织,以恢复所述分布式关系型数据库中的用户数据。
在一些可选实施例中,在恢复所述分布式关系型数据库中的用户数据之后,所述方法还包括:对恢复的所述分布式关系型数据库中的用户数据进行用户数据的完整性校验,以根据完整性校验结果确定是否完成所述分布式关系型数据库中的用户数据的恢复。籍此,通过对恢复的分布式关系型数据库中的用户数据进行用户数据的完整性校验,能够根据完整性校验结果确定是否完成分布式关系型数据库中的用户数据的恢复。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在对恢复的所述分布式关系型数据库中的用户数据进行用户数据的完整性校验时,校验恢复的所述分布式关系型数据库中的用户数据中的字段与用于存储恢复的所述分布式关系型数据库中的用户数据的数据库或数据表的字段是否完全对应,若完全对应,则完整性校验通过;若不完全对应,则完整性校验不通过。若完整性校验通过,则确定完成所述分布式关系型数据库中的用户数据的恢复。若完整性校验不通过,则确定未完成所述分布式关系型数据库中的用户数据的恢复。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,如图2B所示,分布式数据库系统包括控制台、与控制台连接的DRDS代理服务器,及与DRDS代理服务器连接的各个关系型数据库实例对应的克隆实例,例如,关系型数据库实例RDS A对应的克隆实例、关系型数据库实例RDS B对应的克隆实例等。所述DRDS代理服务器为在控制台和关系型数据库实例对应的克隆实例之间加入的一个服务器,主要为控制台提供关系型数据库分片路由的能力,用户输入的SQL指令会根据DRDS代理服务器的分片算法路由到其中的一个关系型数据库实例对应的克隆实例上,通过DRDS代理服务器,用户可以很方便的管理和操作多个关系型数据库实例对应的克隆实例。数据备份过程如下:用户通过控制台向DRDS代理服务器发送分布式关系型数据库的数据恢复请求。DRDS代理服务器基于数据恢复请求,对多个关系型数据库实例分别进行克隆,以获得多个关系型数据库实例分别对应的克隆实例,并基于数据恢复请求携带的恢复时间点,对多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得克隆实例的全量恢复后的用户数据,再基于数据恢复请求携带的恢复时间点,对克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将克隆实例的增量恢复后的用户数据确定为克隆实例对应的关系型数据库实例的恢复后的用户数据。具体地,DRDS代理服务器确定在所述恢复时间点之前且与所述恢复时间点最近的全量备份时间点,并基于全量备份时间点所对应的多个关系型数据库实例的全量备份的用户数据,生成向多个关系型数据库实例对应的克隆实例发送的用户数据全量恢复请求,再向多个关系型数据库实例对应的克隆实例分别发送用户数据全量恢复请求,使得多个关系型数据库实例对应的克隆实例分别基于用户数据全量恢复请求进行用户数据的全量恢复,以获得克隆实例的全量恢复后的用户数据。然后,DRDS代理服务器从多个关系型数据库实例分别对应的日志文件中提取从全量备份时间点至恢复时间点所形成的时间段内的日志数据,并将多个关系型数据库实例分别对应的日志数据应用于多个关系型数据库实例分别对应的克隆实例,以对克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,再将克隆实例的增量恢复后的用户数据确定为克隆实例对应的关系型数据库实例的恢复后的用户数据。在此过程中,若DRDS代理服务器在所述恢复时间点之前接收到针对所述分布式关系型数据库的数据库定义语言操作,则DRDS代理服务器确定在所述恢复时间点之前且与所述恢复时间点最近的快照时间点,并基于所述快照时间点所对应的经过数据库定义语言操作的所述分布式关系型数据库的快照数据,恢复所述分布式关系型数据库的结构。最后,DRDS代理服务器确定在所述恢复时间点之前且与所述恢复时间点最近的变更时间点,并确定所述变更时间点所对应的变更后的分库分表规则元数据为用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,再基于所述分库分表规则元数据,对所述多个关系型数据库实例的恢复后的用户数据进行组织,以恢复所述分布式关系型数据库中的用户数据。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
通过本申请实施例提供的数据恢复方法,接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有分布式关系型数据库中的用户数据的恢复时间点,并基于所述恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得多个关系型数据库实例的恢复后的用户数据,再基于所述恢复时间点,确定用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,再基于所述分库分表规则元数据,对多个关系型数据库实例的恢复后的用户数据进行组织,以恢复分布式关系型数据库中的用户数据,与现有的其它方式相比,基于针对分布式关系型数据库的数据恢复请求中携带的分布式关系型数据库中的用户数据的恢复时间点,能够按任意的恢复时间点恢复分布式关系型数据库中的用户数据。此外,基于分布式关系型数据库中的用户数据的恢复时间点,对分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,再基于用于多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,对多个关系型数据库实例的恢复后的用户数据进行组织,以恢复分布式关系型数据库中的用户数据,能够有效保证分布式关系型数据库中的用户数据的恢复的完整性。
本实施例提供的数据恢复方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。
参照图3,示出了本申请实施例三中数据恢复装置的结构示意图。
本实施例提供的数据恢复装置包括:第一接收模块301,用于接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;第一恢复模块302,用于基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;第一确定模块303,用于基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;第二恢复模块304,用于基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
本实施例提供的数据恢复装置用于实现前述多个方法实施例中相应的数据恢复方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图4,示出了本申请实施例四中数据恢复装置的结构示意图。
本实施例提供的数据恢复装置包括:第一接收模块406,用于接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;第一恢复模块407,用于基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;第一确定模块408,用于基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;第二恢复模块409,用于基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
可选地,所述第一接收模块406之前,所述装置还包括:第二接收模块401,用于接收针对所述分布式关系型数据库的第一数据全量备份请求;触发模块404,用于基于所述第一数据全量备份请求,触发所述多个关系型数据库实例分别进行用户数据的全量备份操作,以获得所述多个关系型数据库实例的全量备份的用户数据;第一存储模块405,用于将所述多个关系型数据库实例的全量备份的用户数据与所述多个关系型数据库实例的全量备份的时间点进行关联存储。
可选地,所述触发模块404,具体用于:基于所述第一数据全量备份请求,向所述多个关系型数据库实例分别发送第二数据全量备份请求,使得所述多个关系型数据库实例分别基于所述第二数据全量备份请求进行用户数据的全量备份操作;接收所述多个关系型数据库实例分别针对所述第二数据全量备份请求发送的数据全量备份响应;基于所述数据全量备份响应中携带的全量备份的用户数据,获得所述多个关系型数据库实例的全量备份的用户数据。
可选地,所述第二接收模块401之后,所述装置还包括:第二存储模块402,用于若接收到针对用于所述分布式关系型数据库中的用户数据的分库分表规则元数据的变更操作,则记录变更后的分库分表规则元数据,并将所述变更后的分库分表规则元数据与所述变更后的分库分表规则元数据对应的变更时间点进行关联存储。
可选地,所述第二接收模块401之后,所述装置还包括:第三存储模块403,用于若接收到针对所述分布式关系型数据库的数据库定义语言操作,则记录经过所述数据库定义语言操作的所述分布式关系型数据库的快照数据,并将所述快照数据与所述快照数据对应的快照时间点进行关联存储。
本实施例提供的数据恢复装置用于实现前述多个方法实施例中相应的数据恢复方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图5,示出了本申请实施例五中数据恢复装置的结构示意图。
本实施例提供的数据恢复装置包括:第一接收模块501,用于接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;第一恢复模块502,用于基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;第一确定模块505,用于基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;第二恢复模块506,用于基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
可选地,所述第一恢复模块502,包括:克隆子模块5021,用于对所述多个关系型数据库实例分别进行克隆,以获得所述多个关系型数据库实例分别对应的克隆实例;全量恢复子模块5022,用于基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据;增量恢复子模块5023,用于基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据。
可选地,所述全量恢复子模块5022,具体用于:确定在所述恢复时间点之前且与所述恢复时间点最近的全量备份时间点;基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据。
可选地,所述增量恢复子模块5023,具体用于:从所述多个关系型数据库实例分别对应的日志文件中提取从所述全量备份时间点至所述恢复时间点所形成的时间段内的日志数据;将所述多个关系型数据库实例分别对应的所述日志数据应用于所述多个关系型数据库实例分别对应的克隆实例,以对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复;将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据,其中,所述日志文件用于记录对对应的关系型数据库实例中的用户数据进行变更的SQL语句。
可选地,所述第一恢复模块502之后,所述装置还包括:第二确定模块503,用于若在所述恢复时间点之前接收到针对所述分布式关系型数据库的数据库定义语言操作,则确定在所述恢复时间点之前且与所述恢复时间点最近的快照时间点;第三恢复模块504,用于基于所述快照时间点所对应的经过数据库定义语言操作的所述分布式关系型数据库的快照数据,恢复所述分布式关系型数据库的结构。
可选地,所述第一确定模块505,具体用于:确定在所述恢复时间点之前且与所述恢复时间点最近的变更时间点;确定所述变更时间点所对应的变更后的分库分表规则元数据为用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。
可选地,所述第二恢复模块506,具体用于:基于所述分库分表规则元数据,对所述多个关系型数据库实例的恢复后的用户数据进行组织,以恢复所述分布式关系型数据库中的用户数据。
可选地,所述第二恢复模块506之后,所述装置还包括:校验模块507,用于对恢复的所述分布式关系型数据库中的用户数据进行用户数据的完整性校验,以根据完整性校验结果确定是否完成所述分布式关系型数据库中的用户数据的恢复。
本实施例提供的数据恢复装置用于实现前述多个方法实施例中相应的数据恢复方法,并具有相应的方法实施例的有益效果,在此不再赘述。
图6为本申请实施例六中电子设备的结构示意图;该电子设备可以包括:
一个或多个处理器601;
计算机可读介质602,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一或实施例二所述的数据恢复方法。
图7为本申请实施例七中电子设备的硬件结构;如图7所示,该电子设备的硬件结构可以包括:处理器701,通信接口702,计算机可读介质703和通信总线704;
其中处理器701、通信接口702、计算机可读介质703通过通信总线704完成相互间的通信;
可选地,通信接口702可以为通信模块的接口,如GSM模块的接口;
其中,处理器701具体可以配置为:接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
计算机可读介质703可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一接收模块、第一恢复模块、第一确定模块和第二恢复模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一接收模块还可以被描述为“接收针对分布式关系型数据库的数据恢复请求的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一或实施例二所描述的数据恢复方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (9)

1.一种数据恢复方法,所述方法包括:
接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;
基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;
基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;
基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据;
所述接收针对分布式关系型数据库的数据恢复请求之前,所述方法还包括:接收针对所述分布式关系型数据库的第一数据全量备份请求;基于所述第一数据全量备份请求,触发所述多个关系型数据库实例分别进行用户数据的全量备份操作,以获得所述多个关系型数据库实例的全量备份的用户数据;将所述多个关系型数据库实例的全量备份的用户数据与所述多个关系型数据库实例的全量备份的时间点进行关联存储;
所述接收针对所述分布式关系型数据库的第一数据全量备份请求之后,所述方法还包括:若接收到针对用于所述分布式关系型数据库中的用户数据的分库分表规则元数据的变更操作,则记录变更后的分库分表规则元数据,并将所述变更后的分库分表规则元数据与所述变更后的分库分表规则元数据对应的变更时间点进行关联存储;
所述接收针对所述分布式关系型数据库的第一数据全量备份请求之后,所述方法还包括:若接收到针对所述分布式关系型数据库的数据库定义语言操作,则记录经过所述数据库定义语言操作的所述分布式关系型数据库的快照数据,并将所述快照数据与所述快照数据对应的快照时间点进行关联存储;
所述基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例分别进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据,包括:对所述多个关系型数据库实例分别进行克隆,以获得所述多个关系型数据库实例分别对应的克隆实例;基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据;基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据;
所述基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据,包括:确定在所述恢复时间点之前且与所述恢复时间点最近的全量备份时间点;基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据;
所述基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据,包括:从所述多个关系型数据库实例分别对应的日志文件中提取从所述全量备份时间点至所述恢复时间点所形成的时间段内的日志数据;将所述多个关系型数据库实例分别对应的所述日志数据应用于所述多个关系型数据库实例分别对应的克隆实例,以对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复;将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据,其中,所述日志文件用于记录对对应的关系型数据库实例中的用户数据进行变更的SQL语句。
2.根据权利要求1所述的方法,其中,所述基于所述第一数据全量备份请求,触发所述多个关系型数据库实例分别进行用户数据的全量备份操作,以获得所述多个关系型数据库实例的全量备份的用户数据,包括:
基于所述第一数据全量备份请求,向所述多个关系型数据库实例分别发送第二数据全量备份请求,使得所述多个关系型数据库实例分别基于所述第二数据全量备份请求进行用户数据的全量备份操作;
接收所述多个关系型数据库实例分别针对所述第二数据全量备份请求发送的数据全量备份响应;
基于所述数据全量备份响应中携带的全量备份的用户数据,获得所述多个关系型数据库实例的全量备份的用户数据。
3.根据权利要求1所述的方法,其中,所述获得所述多个关系型数据库实例的恢复后的用户数据之后,所述方法还包括:
若在所述恢复时间点之前接收到针对所述分布式关系型数据库的数据库定义语言操作,则确定在所述恢复时间点之前且与所述恢复时间点最近的快照时间点;
基于所述快照时间点所对应的经过数据库定义语言操作的所述分布式关系型数据库的快照数据,恢复所述分布式关系型数据库的结构。
4.根据权利要求1所述的方法,其中,所述基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据,包括:
确定在所述恢复时间点之前且与所述恢复时间点最近的变更时间点;
确定所述变更时间点所对应的变更后的分库分表规则元数据为用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据。
5.根据权利要求1所述的方法,其中,所述基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据,包括:
基于所述分库分表规则元数据,对所述多个关系型数据库实例的恢复后的用户数据进行组织,以恢复所述分布式关系型数据库中的用户数据。
6.根据权利要求1所述的方法,其中,所述恢复所述分布式关系型数据库中的用户数据之后,所述方法还包括:
对恢复的所述分布式关系型数据库中的用户数据进行用户数据的完整性校验,以根据完整性校验结果确定是否完成所述分布式关系型数据库中的用户数据的恢复。
7.一种数据恢复装置,所述装置包括:
第一接收模块,用于接收针对分布式关系型数据库的数据恢复请求,所述数据恢复请求中携带有所述分布式关系型数据库中的用户数据的恢复时间点;
第一恢复模块,用于基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据;
第一确定模块,用于基于所述恢复时间点,确定用于所述多个关系型数据库实例的恢复后的用户数据的分库分表规则元数据;
第二恢复模块,用于基于所述多个关系型数据库实例的恢复后的用户数据和所述分库分表规则元数据,恢复所述分布式关系型数据库中的用户数据;
所述接收针对所述分布式关系型数据库的第一数据全量备份请求之后,所述装置还包括:若接收到针对用于所述分布式关系型数据库中的用户数据的分库分表规则元数据的变更操作,则记录变更后的分库分表规则元数据,并将所述变更后的分库分表规则元数据与所述变更后的分库分表规则元数据对应的变更时间点进行关联存储;
所述接收针对所述分布式关系型数据库的第一数据全量备份请求之后,所述装置还包括:若接收到针对所述分布式关系型数据库的数据库定义语言操作,则记录经过所述数据库定义语言操作的所述分布式关系型数据库的快照数据,并将所述快照数据与所述快照数据对应的快照时间点进行关联存储;
所述基于所述恢复时间点,对所述分布式关系型数据库中的多个关系型数据库实例分别进行用户数据的恢复,以获得所述多个关系型数据库实例的恢复后的用户数据,包括:对所述多个关系型数据库实例分别进行克隆,以获得所述多个关系型数据库实例分别对应的克隆实例;基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据;基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据;
所述基于所述恢复时间点,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据,包括:确定在所述恢复时间点之前且与所述恢复时间点最近的全量备份时间点;基于所述全量备份时间点所对应的所述多个关系型数据库实例的全量备份的用户数据,对所述多个关系型数据库实例分别对应的克隆实例进行用户数据的全量恢复,以获得所述克隆实例的全量恢复后的用户数据;
所述基于所述恢复时间点,对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复,以将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据,包括:从所述多个关系型数据库实例分别对应的日志文件中提取从所述全量备份时间点至所述恢复时间点所形成的时间段内的日志数据;将所述多个关系型数据库实例分别对应的所述日志数据应用于所述多个关系型数据库实例分别对应的克隆实例,以对所述克隆实例的全量恢复后的用户数据进行用户数据的增量恢复;将所述克隆实例的增量恢复后的用户数据确定为所述克隆实例对应的关系型数据库实例的恢复后的用户数据,其中,所述日志文件用于记录对对应的关系型数据库实例中的用户数据进行变更的SQL语句。
8.一种电子设备,包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任意一项权利要求所述的数据恢复方法。
9.一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-6中任意一项权利要求所述的数据恢复方法。
CN202010725950.6A 2020-07-24 2020-07-24 数据恢复方法、装置、电子设备及计算机可读介质 Active CN113419896B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010725950.6A CN113419896B (zh) 2020-07-24 2020-07-24 数据恢复方法、装置、电子设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010725950.6A CN113419896B (zh) 2020-07-24 2020-07-24 数据恢复方法、装置、电子设备及计算机可读介质

Publications (2)

Publication Number Publication Date
CN113419896A CN113419896A (zh) 2021-09-21
CN113419896B true CN113419896B (zh) 2023-12-22

Family

ID=77711532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010725950.6A Active CN113419896B (zh) 2020-07-24 2020-07-24 数据恢复方法、装置、电子设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN113419896B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037223A1 (zh) * 2022-08-18 2024-02-22 华为云计算技术有限公司 数据操作方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108241555A (zh) * 2016-12-26 2018-07-03 阿里巴巴集团控股有限公司 一种分布式数据库的备份、恢复方法、装置和服务器
US10108497B1 (en) * 2015-09-29 2018-10-23 EMC IP Holding Company LLC Point-in-time restore using SQL VDI incremental backup over SQL VSS snapshot backup and recover
CN108762982A (zh) * 2018-05-18 2018-11-06 杭州数梦工场科技有限公司 一种数据库恢复方法、装置及系统
CN109426585A (zh) * 2017-08-22 2019-03-05 阿里巴巴集团控股有限公司 一种备份、恢复数据库数据的方法和装置
CN111177141A (zh) * 2018-11-09 2020-05-19 上海擎感智能科技有限公司 利用MySQL并行复制恢复数据方法、设备及系统
CN111221678A (zh) * 2018-11-27 2020-06-02 阿里巴巴集团控股有限公司 Hbase数据备份/恢复系统、方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914334B2 (en) * 2012-09-12 2014-12-16 International Business Machines Corporation Using a metadata image of a file system and archive instance to restore data objects in the file system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108497B1 (en) * 2015-09-29 2018-10-23 EMC IP Holding Company LLC Point-in-time restore using SQL VDI incremental backup over SQL VSS snapshot backup and recover
CN108241555A (zh) * 2016-12-26 2018-07-03 阿里巴巴集团控股有限公司 一种分布式数据库的备份、恢复方法、装置和服务器
CN109426585A (zh) * 2017-08-22 2019-03-05 阿里巴巴集团控股有限公司 一种备份、恢复数据库数据的方法和装置
CN108762982A (zh) * 2018-05-18 2018-11-06 杭州数梦工场科技有限公司 一种数据库恢复方法、装置及系统
CN111177141A (zh) * 2018-11-09 2020-05-19 上海擎感智能科技有限公司 利用MySQL并行复制恢复数据方法、设备及系统
CN111221678A (zh) * 2018-11-27 2020-06-02 阿里巴巴集团控股有限公司 Hbase数据备份/恢复系统、方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种分布式多策略数据库容灾系统;罗祖脉;刘晓洁;李涛;卢正添;王玉稳;张丁;;计算机安全(09);全文 *

Also Published As

Publication number Publication date
CN113419896A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
US10579831B2 (en) Verification of data set components using digitally signed probabilistic data structures
US10146639B1 (en) Recovery of virtual machines from a protection tier
CN110096476B (zh) 数据备份方法、装置及计算机可读存储介质
US10078687B2 (en) Deletion of elements from a probabilistic data structure
US10467192B2 (en) Method and apparatus for updating data table in keyvalue database
CN109408523B (zh) 数据共享方法、装置、数据共享平台、电子设备
CN111338834B (zh) 数据存储方法和装置
CN113419896B (zh) 数据恢复方法、装置、电子设备及计算机可读介质
CN115858488A (zh) 基于数据治理的平行迁移方法、装置及可读介质
CN111625396A (zh) 备份数据的校验方法、服务器及存储介质
AU2021268828B2 (en) Secure data replication in distributed data storage environments
CN116049142A (zh) 数据处理方法、装置、电子设备及存储介质
US11061736B2 (en) Multiple parallel reducer types in a single map-reduce job
US10223393B1 (en) Efficient processing of source code objects using probabilistic data structures
CN114490865A (zh) 数据库同步方法、装置、设备及计算机存储介质
CN113268483A (zh) 请求处理方法和装置、电子设备和存储介质
CN113610527A (zh) 联盟链的交易方法、装置、系统、终端设备及存储介质
CN112699129A (zh) 一种数据处理系统、方法及装置
WO2021207831A1 (en) Method and systems for indexing databases on a contextual basis
CN111611056A (zh) 数据处理方法、装置、计算机设备及存储介质
CN113760600A (zh) 一种数据库备份方法、数据库还原方法和相关装置
US10255139B2 (en) Synchronized backup and recovery of heterogeneous DBMSs using third party backup tool
US11593498B2 (en) Distribution of user specific data elements in a replication environment
CN111753141B (zh) 一种数据管理方法及相关设备
CN117591341A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40058167

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant