CN107870829B - 一种分布式数据恢复方法、服务器、相关设备及系统 - Google Patents
一种分布式数据恢复方法、服务器、相关设备及系统 Download PDFInfo
- Publication number
- CN107870829B CN107870829B CN201610849051.0A CN201610849051A CN107870829B CN 107870829 B CN107870829 B CN 107870829B CN 201610849051 A CN201610849051 A CN 201610849051A CN 107870829 B CN107870829 B CN 107870829B
- Authority
- CN
- China
- Prior art keywords
- physical node
- data
- data fragment
- fragment
- recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种分布式数据恢复方法、服务器、相关设备及系统。该方法包括:确定第一物理节点发生故障;确定所述故障导致的丢失数据分片;如果所述分布式数据库系统中备份有所述丢失数据分片,则确定备份有所述丢失数据分片的一个或多个第二物理节点;向所述第二物理节点发送复制指令,触发所述第二物理节点对所述第一物理节点执行业务数据复制过程;所述业务数据复制过程用于将备份在所述第二物理节点上的所述丢失数据分片对应的业务数据复制到所述第一物理节点;所述复制指令包含备份在所述第二物理节点上的所述丢失数据分片的标识和所述第一物理节点的标识。上述方案可实现细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
Description
技术领域
本发明涉及数据恢复技术领域,尤其涉及一种分布式数据恢复方法、服务器、相关设备及系统。
背景技术
近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式向分布式发展。分布式数据库具体指利用高速计算机网络将物理上分散的多个物理节点连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的物理节点上,以获取更大的存储容量和更高的并发访问量。
分布式关系型数据库(Distribute Relational Database)系统在运行过程中可能会产生各种故障,例如宕机,使数据库系统处于不稳定的状态,出现数据丢失。对分布式关系型数据库系统来说,数据恢复是关键技术之一,其原理都是基于备份数据实施数据恢复,当前数据恢复主要有如下几种技术:
1.本地恢复:本地基线+检查点(checkpoint)后增量
首先,故障物理节点基于本地磁盘中存储的最近一次的检查点之前的日志文件进行离线恢复到基线。然后,故障物理节点根据缓存在备份物理节点上的该检查点之后的日志文件进行增量恢复。其中,数据库系统每隔一定时间发生一次检查点(checkpoint)进程。这个进程的作用是将日志(Transaction Logs,又称事务日志)文件中最近一次的检查点以来的对于数据库的修改内容写入磁盘。也就是说,日志文件最近一次的检查点以前的内容已经持久化到磁盘上了。如果在最近一次的检查点之后发生故障,则该检查点之后的日志文件并没有持久化到磁盘中。这时,需要进一步利用在线缓存的日志文件进行增量恢复。
2.远程恢复:远程基线+增量恢复
首先,故障物理节点基于远程(一般是跨数据中心的存储设备上的)副本进行在线恢复到基线。然后,故障物理节点记录基线的时间点,并根据缓存在备份物理节点上的该时间点到当前时间之间的日志文件进行增量恢复。
上述两种针对关系型数据库的数据恢复技术成熟。但是,这两种恢复技术只能基于粗粒度的分布式数据库管理方式,即数据备份和数据恢复是以物理节点为粒度的,不适用以数据分片为粒度的分布式数据库管理方式。
发明内容
本发明实施例提供了一种分布式数据恢复方法、服务器、相关设备及系统,可实现细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
第一方面,提供了一种分布式数据恢复方法,应用于元数据服务器侧,所述元数据服务器用于管理分布式数据库系统中各个物理节点上的数据分片之间的主备关系、以及数据分片与物理节点之间的映射关系,所述分布式数据库系统包括所述元数据服务器和多个物理节点。所述方法可包括:
所述元数据服务器确定第一物理节点发生故障,并确定丢失数据分片,所述丢失数据分片是所述第一物理节点上处于主用状态的数据分片,如果所述分布式数据库系统中备份有所述丢失数据分片,则确定备份有所述丢失数据分片的一个或多个第二物理节点,最后向所述第二物理节点发送复制指令,触发所述第二物理节点对所述第一物理节点执行业务数据复制过程。
第二方面,提供了一种分布式数据恢复方法,应用于第一物理节点侧,包括:在发生故障后,接收第二物理节点复制过来的业务数据,并利用所述业务数据进行数据恢复。这里,复制过来的所述业务数据是备份在所述第二物理节点上的所述丢失数据分片对应的业务数据。
第三方面,提供了一种分布式数据恢复方法,应用于第二物理节点侧,包括:接收元数据服务器下发的复制指令,并响应所述复制指令,对所述第一物理节点执行业务数据复制过程。
本发明实施例中,所述第二物理节点是指所述分布式数据库系统中备份有一个或多个所述丢失数据分片的物理节点。
本发明实施例中,所述业务数据复制过程具体是指所述第二物理节点将备份在所述第二物理节点上的所述丢失数据分片对应的业务数据复制到所述第一物理节点,以触发所述第一物理节点根据复制过来的所述业务数据进行数据恢复。
本发明实施例中,所述复制指令可包括备份在所述第二物理节点上的所述丢失数据分片的标识信息和第一物理节点的标识信息。具体可包括下述两种实现方式:
第一种实现方式,所述元数据服务器发送给每一个第二物理节点的复制指令包含的参数均不同。具体的,针对一个第二物理节点的复制指令可包含备份在该第二物理节点上的所述丢失数据分片的标识,以及第一物理节点的标识。
第二种实现方式,所述元数据服务器发送给每一个第二物理节点的复制指令包含的参数均相同。具体的,针对每一个第二物理节点的复制指令都可包含全部所述丢失数据分片的标识,以及第一物理节点的标识。
本发明实施例中,针对所述故障情况,所述分布式数据库系统中可能备份有全部所述丢失数据分片,也可能仅备份有所述丢失数据分片中的部分数据分片。
可以理解的,针对分布式数据库系统中在线备份有全部所述丢失数据分片的场景,实施第一方面,第二方面和第三方面描述的分布式数据恢复方法可实现利用备份于各个第二物理节点上的所述丢失数据分片,对所述第一物理节点上的全部所述丢失数据分片进行细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
结合第一方面,第二方面和第三方面,针对分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片的场景,所述备份在所述第二物理节点上的所述丢失数据分片即所述部分数据分片。
结合第一方面,第二方面和第三方面,针对分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片的场景,所述元数据服务器可以先向所述第一物理节点发送离线恢复指令,所述第一物理节点接收并响应所述离线恢复指令,基于所述第一物理节点对应的持久化备份文件进行离线恢复。所述离线恢复完成后,所述元数据服务器向所述第二物理节点发送所述复制指令,触发执行所述业务数据复制过程。
结合第一方面,第二方面和第三方面,针对分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片的场景,所述业务数据复制过程具体可包括:所述第二物理节点和所述第一物理节点进行复制握手。如果握手成功,则所述第二物理节点将第一增量数据复制到所述第一物理节点,所述第一物理节点利用所述第一增量数据进行增量恢复。如果复制握手失败,则所述第二物理节点将所述部分数据分片对应的业务数据复制到所述第一物理节点,所述第一物理节点利用所述第一增量数据进行全量恢复。
具体的,所述第一增量数据是指所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据。
具体实现中,所述复制握手过程可如下:所述第二物理节点判断备份在所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
可以理解的,针对分布式数据库系统中仅在线备份有所述丢失数据分片中的部分数据分片的场景,实施第一方面,第二方面和第三方面描述的方法,可实现利用备份于各个第二物理节点上的所述部分数据分片,进一步的对离线恢复后的所述第一物理节点上的所述部分数据分片进行细粒度(基于数据分片)的并行式数据恢复,可实现进一步提高所述第一物理节点上的所述部分数据分片的版本。
结合第一方面,第二方面和第三方面,在一些实施例中,在所述数据恢复完成后,所述第一物理节点可以向所述元数据服务器发送恢复完成通知。相应的,所述元数据服务器可以接收并响应所述恢复完成通知,对所述丢失数据分片进行主备选举,并更新所述丢失数据分片涉及的元数据。最后,所述元数据服务器可以将更新后的所述元数据同步到所述第一物理节点和所述第二物理节点。可选的,所述元数据服务器还可以将更新后的所述元数据同步到应用客户端(部署有驱动),以更新应用客户端缓存的路由信息。
结合第一方面,第二方面和第三方面,在一些实施例中,在确定所述第一物理节点发生故障后,所述元数据服务器还可以将备份在所述第二物理节点上的所述丢失数据分片的主备状态升级为主用状态,并更新所述丢失数据分片涉及的元数据,然后将更新的所述元数据通知所述第一物理节点和所述第二物理节点。这样可使得备份在所述第二物理节点上的所述丢失数据分片从备份数据分片变成了能够处理业务请求的主数据分片,可实现在数据恢复过程中针对所述丢失数据分片的业务不会因故障而停止。
结合第一方面,第二方面和第三方面,在一些实施例中,在所述业务数据复制过程中,备份在所述第二物理节点上的所述丢失数据分片(已升级为主用状态)可以接收到一些来自应用客户端的业务请求。本发明实施例中,还可以利用所述业务数据复制过程中接收到的业务请求进一步更新所述丢失数据分片的版本。具体可包括下述两种实现方式:
第一种实现方式可主要包括:
步骤一、在所述第二物理节点向所述第一物理节点执行所述业务数据复制时,针对备份在所述第二物理节点上的所述丢失数据分片,所述第二物理节点接收到来自应用客户端的业务请求,并缓存所述业务请求。
步骤二、在所述业务数据复制过程结束后,所述第二物理节点利用缓存的业务请求生成第二增量数据。
步骤三、所述第二物理节点将所述第二增量数据复制到所述第一物理节点。相应的,所述第一物理节点可以根据复制过来的所述第二增量数据更新所述第一物理节点上的所述丢失数据分片。
最后,在数据更新完成后,所述第一物理节点可以通知所述元数据服务器。
第二种实现方式可主要包括:
步骤一、在所述第二物理节点向所述第一物理节点执行所述业务数据复制时,针对备份在所述第二物理节点上的所述丢失数据分片,所述第二物理节点接收到来自应用客户端的业务请求。
步骤二、所述第二物理节点将所述业务请求转发到所述第一物理节点。相应的,所述第一物理节点缓存所述第二物理节点发送的上述业务请求,并在所述业务数据复制过程结束后,利用缓存的业务请求生成第三增量数据。
步骤三、所述第一物理节点利用所述第三增量数据更新所述第一物理节点上的所述丢失数据分片。
最后,在数据更新完成后,所述第一物理节点可以通知所述元数据服务器。
可以理解的,通过上述两种实现方式可实现利用所述业务数据复制过程中接收到的业务请求进一步更新所述丢失数据分片的版本。
第四方面,提供了一种服务器,包括用于实现第一方面描述的方法的功能单元。具体实现中,第四方面描述的服务器可以是前述内容中提及的所述元数据服务器。
第五方面,提供了一种物理节点,包括用于实现第二方面描述的方法的功能单元。具体实现中,第五方面描述的物理节点可以是前述内容中提及的所述第一物理节点。
第六方面,提供了一种物理节点,包括用于实现第三方面描述的方法的功能单元。具体实现中,第六方面描述的物理节点可以是前述内容中提及的所述第二物理节点。
第七方面,提供了一种分布式数据库系统,包括:服务器,第一物理节点和第二物理节点。其中,所述服务器可以是第四方面描述的服务器,所述第一物理节点可以是第五方面描述的物理节点,所述第二物理节点可以是第六方面描述的物理节点。
实施本发明实施例,可实现细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的分布式数据库系统的系统架构图;
图2是本发明实施例提供的分布式数据库系统内部协作流程的示意图;
图3是本发明实施例提供的分布式数据库系统的硬件架构图;
图4是本发明实施例提供的数据恢复方法的总体流程示意图;
图5是本发明实施例提供的一种分布式数据恢复方法的流程示意图;
图6是本发明实施例提供的另一种分布式数据恢复方法的流程示意图;
图7是本发明实施例提供的分部式的业务数据复制过程的示意图;
图8是本发明实施例提供的业务数据根表与附属表的示意图;
图9A-9B是本发明实施例提供的两种处理数据恢复期间的业务请求的方法的流程示意图;
图10A是本发明实施例提供的对应图5实施例的数据恢复场景的示意图;
图10B是本发明实施例提供的对应图6实施例的数据恢复场景的示意图;
图11是本发明实施例提供的所述分布式数据库系统中的第一物理节点,第二物理节点和元数据服务器的硬件结构示意图;
图12是本发明实施例提供的分布式数据库系统的结构示意图以及所述分布式数据库系统中的第一物理节点,第二物理节点和元数据服务器的功能结构示意图。
具体实施方式
本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
图1是本发明实施例提供的分布式关系型数据库系统的架构示意图。
如图1所示,分布式关系型数据库系统100可包括:应用客户端101,元数据服务子系统103和数据服务子系统105,其中:
应用客户端101为使用数据库的应用程序,例如计费应用。应用客户端101可以访问数据服务子系统105中存储的数据。
数据服务子系统105可由分散的多个物理节点连接起来组成。一个物理节点上可设置有处于主用状态的数据分片(可称为主数据分片)和处于备用状态的数据分片,其中,处于主用状态的数据分片可称为主数据分片,用于处理来自应用客户端101的关于该主数据分片的业务请求。这里,所述主用状态和所述备用状态是指数据分片涉及的两种主备状态。数据分片的主备状态可以通过主备选举决策,并可以在主、备状态中切换。
具体实现中,可以在各个物理节点上部署代理(Agent),可用于负责与元数据服务子系统103进行信息交互,例如上报物理节点的健康性信息,接受元数据服务子系统103的指令。代理(Agent)还可以提供物理节点高可用性的自我管理,例如网络异常时主备状态降级,即将原来处于主用状态的数据分片降级成处于备份状态的数据分片。
元数据服务子系统103可主要负责数据库系统100的分布式管理能力。元数据服务子系统103可以采用独立部署方式,也可以内置到数据服务子系统105中的各物理节点。本发明实施例中,元数据服务子系统103可包括下述功能单元:
元数据定义单元1031,可用于负责定义和维护元数据信息及元数据间的关系。具体的,元数据定义单元1031可用于定义表结构、数据类型和数据库控制功能等元数据,还可用于定义数据分片之间的主备关系、数据分片与物理节点之间的映射关系等元数据。
具体的,一个数据分片涉及的元数据可包括:该数据分片的主备状态(是主数据分片还是备份数据分片)、该数据分片的位置、该数据分片对应的备份数据分片(或主数据分片)的位置。例如,图1中的物理节点1上的数据分片1涉及的元数据可包括:该数据分片1所处的位置是物理节点1,该数据分片1处于主用状态,该数据分片1对应的备份位置是物理节点3。
路由管理单元1032,可用于负责管理业务对象的路由数据。具体的,一个业务对象的路由数据可包括该业务对象对应的主数据分片的位置信息,即该主数据分片所处的物理节点。
故障检测单元1034,可用于监控数据服务子系统105中的物理节点是否发生故障或者异常。具体实现中,故障检测单元1034可通过通信服务单元1037来获取各数据服务节点的信息,从而监测各物理节点的工作状态。
故障恢复单元1035,可用于负责数据服务子系统105中的物理节点的故障的相关处理和自恢复处理。故障恢复单元1035也可用于负责元数据服务子系统103自身的故障恢复。
复制管理单元1033,可用于管理主备数据分片之间的复制,以及主备数据分片之间复制完整性的管控。例如,假设“物理节点1”上的分片3发生异常。复制管理单元1033可以触发该异常数据分片对应的备份数据分片,即“物理节点2”上的分片3,向该异常数据分片进行数据复制,以完成该异常数据分片的数据恢复。
主备选举单元1036,可用于当物理节点上的主数据分片发生异常时,选择该异常的主数据分片对应的备份数据分片为新的主数据分片,并通知元数据定义单元1031更新相关元数据。在发生异常的主数据分片完成数据恢复之后,该异常的主数据分片变成新的备份数据分片。主备选举单元还可用于在新的主数据分片和新的备份数据分片之间决策出主数据分片,并通知元数据定义单元1031更新相关元数据。
举例说明,如图1所示,假设“物理节点1”上的分片3发生异常。主备选举单元1036可以将该异常数据分片对应的备份数据分片,即“物理节点2”上的分片3,升级为主用状态。也即是说,发生异常后,“物理节点2”上的分片3变成了新的主数据分片,负责接受和处理来自应用客户端的针对分片3对应的业务数据的业务请求。当“物理节点1”上的分片3完成数据恢复之后,“物理节点1”上的分片3变成新的备份数据分片。主备选举单元1036可在新的主数据分片和新的备份数据分片之间决策出主数据分片。具体实现中,主备选举单元1036可以采取负载均衡的选举策略,以实现各物理节点承载的业务请求的均衡化。
元数据同步/持久化单元1038,可用于负责将元数据定义单元1031更新的元数据信息同步给物理节点、应用客户端101和元数据服务子系统103中的用于备份元数据的从节点。元数据服务子系统可采用主从(master/slave)架构来实现对元数据的管理,其中主节点可用于负责元数据的更新、同步以及基于元数据执行业务路由等服务操作,从节点可主要负责元数据备份,当主节点宕机后接管所述服务操作。元数据同步/持久化单元1038还可用于对更新的元数据进行持久化,以保证元数据的高可靠性。
通信服务单元1037,可用于负责与物理节点、应用客户端、元数据服务子系统进行通信。
另外,可选的,数据库系统还可以在应用客户端101部署驱动(Driver),用以缓存路由信息。这样,应用客户端101可以通过缓存的路由信息完成路由判断,访问相应的物理节点,可避免元数据服务子系统103负载过重而成为业务访问时路由查询的瓶颈。
下面以物理节点1发生故障(缓存在物理节点1上的数据丢失)为例,详细说明图1所示的数据库系统的内部协作流程,请参考图2。
步骤一、故障检测单元1034监控到物理节点1发生故障或者异常后,通知故障恢复单元1035。这里,可将发生故障或者异常的物理节点1称为故障物理节点。
步骤二、故障恢复单元1035对物理节点1的故障恢复进行控制,并生成数据复制任务。
步骤三、故障恢复单元1035下发数据复制任务给复制管理单元1033。
步骤四、复制管理单元1033对数据复制进行管控,并通过通信服务单元1037下发数据复制指令给备份物理节点。
这里,所述备份物理节点是指物理节点1上的主数据分片对应的备份数据分片所处的物理节点。具体的,在物理节点1发生故障的场景下,所述备份物理节点可以包括物理节点3,物理节点4和物理节点2。这三个物理节点上分别设置有备份数据分片1,备份数据分片2和备份数据分片3。应理解的,在物理节点1发生故障后,主备选举单元1036可以将这三个备份物理节点上的相关备份数据分片(备份数据分片1-3)升级为主用状态,即这三个相关备份数据分片变成了新的主数据分片。
步骤五、备份物理节点的代理(Agent)执行业务数据复制(从备份物理节点到故障物理节点的复制)。完成业务数据复制后,故障物理节点的代理(Agent)通知复制管理单元1033复制完成。复制管理单元1033通知故障恢复单元1035物理节点1的数据恢复完成。应理解的,数据恢复完成后,物理节点1上的数据分片1-3变成了新的备份数据分片。
步骤六、故障恢复单元1035触发主备选举单元1036进行主备选举。
步骤七、主备选举单元1036针对新的主数据分片和新的备份数据分片执行主备选举。这里,所述主备选举主要用于在新的主数据分片和新的备份数据分片之间重新决策出主数据分片。
步骤八、如果主备选举结果表明新的主数据分片和新的备份数据分片的主备状态发生变更,则主备选举单元1036通知元数据定义单元1031,用以触发元数据定义单元1031重新定义元数据。
步骤九、元数据定义单元1031重新定义元数据,并触发元数据同步单元1038通过通信服务单元1037通知故障物理节点、备份物理节点以及应用客户端101完成元数据变更同步。
图4是本发明实施例提供的分布式关系型数据库系统的硬件架构示意图。图4示出的硬件架构与图1所示的系统架构相对应。如图4所示,分布式关系型数据库系统可包括:应用客户端、元数据服务器以及物理节点服务器。其中:
应用客户端为使用数据库的应用程序,例如计费应用。应用客户端可以访问物理节点服务器中存储的数据。
元数据服务器用于负责数据库系统的分布式管理能力。具体的,元数据服务器可用于运行图1中的元数据服务子系统103。元数据服务器的具体实现可参考图1或图2中的元数据服务子系统103涉及的功能。
物理节点服务器包括多个物理节点。物理节点可以为小型机、X86计算机或个人计算机服务器PCserver等。物理节点上的数据可持久化到存储网络中的存储介质上,物理节点与存储网络之间可以通过块IO(Block IO)进行读写,即以块(Block)的方式对存储介质进行读写。所述存储介质可以是硬盘驱动器(Hard Disk Drive,HDD)、固态硬盘(SolidState Drives,SSD)等。
具体实现中,应用客户端可以通过IP网络分别与元数据服务器(或物理节点服务器)进行通信,其中,应用客户端与元数据服务器(或物理节点服务器)之间的通信接口可以为传输控制协议(Transmission Control Protocol,TCP)接口或用户数据报协议(UserDatagram Protocol,UDP)接口。
具体实现中,元数据服务器可以独立部署,也可以和物理节点服务器合设。元数据服务器可采用小型机、X86计算机、个人计算机服务器PCserver进行部署。
针对以数据分片为管理粒度的分布式关系型数据库,本发明实施例提供了一种分布式数据恢复方法,可实现细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
本发明实施例的总的设计思路可如图4所示:第一种故障情况,如果因故障而导致的丢失数据分片全部都有在线备份数据分片,则基于备份数据分片进行在线数据恢复。第二种故障情况,如果因故障而导致的丢失数据分片全部没有在线备份数据分片,则直接基于磁盘等存储设备中持久化的备份文件进行离线数据恢复。第三种故障情况,如果因故障而导致的丢失数据分片中的部分数据分片有在线备份数据分片,则先基于磁盘等存储设备中持久化的备份文件进行离线恢复,然后利用所述部分数据分片对应的在线备份数据分片进行在线增量恢复。针对前述三种故障情况,在数据恢复完成后,可进行主备选举,由处于主用状态的数据分片接收和处理来自应用客户端的业务请求,即接管业务。
本发明实施例中,基于已经持久化到存储设备(如磁盘)中的备份文件的数据恢复称为离线恢复,基于图1所示的数据服务子系统中的物理节点上缓存的备份文件的数据恢复称为在线恢复。
本发明实施例中提及的分布式数据库系统可包括元数据服务器和物理上分散的多个物理节点,可如图3所示。其中,所述元数据服务器可用于管理分布式数据库系统中的各个物理节点上的数据分片之间的主备关系,以及物理节点与数据分片之间的映射关系,具体可参考图1实施例中的描述。
图5是本发明实施例提供的一种分布式数据恢复方法。图5实施例对应前述第一种故障情况。下面展开描述:
S101,所述元数据服务器确定第一物理节点发生故障。具体的,所述第一物理节点即前述故障物理节点。
具体实现中,所述第一物理节点可以向所述元数据服务器上报故障通知,所述故障通知可携带所述第一物理节点的标识信息,例如所述第一物理节点在分布式数据库系统中的节点ID。在一些实施例中,所述元数据服务器可以主动轮询分布式数据库系统中的各个物理节点,以了解各个物理节点的运行状态,并能够发现发生故障的物理节点。
S103,所述元数据服务器可以确定所述故障导致的丢失数据分片。需要说明的,本发明实施例涉及的所述丢失数据分片是指所述第一物理节点上的主数据分片。具体实现中,元数据服务器可以根据所述丢失数据分片涉及的元数据确定出所述丢失数据分片各自对应的备份位置。
S105,所述元数据服务器判断出分布式数据库系统中备份有全部的所述丢失数据分片,并确定备份有所述丢失数据分片的一个或多个第二物理节点。也即是说,所述丢失数据分片中的每一个数据分片均存在相应的备份数据分片。这里,所述第二物理节点是指包括一个或多个所述备份数据分片的物理节点。具体的,所述第二物理节点即前述备份物理节点。
图5示例性的示出了备份有所述丢失数据分片的2个物理节点:节点1和节点2。实际应用中,所述第二物理节点的个数可以是一个,也可以是两个或两个以上,图5仅作示例,不构成限定。
S107,所述元数据服务器向所述第二物理节点发送复制指令。相应的,所述第二物理节点接收到所述复制指令。具体的,所述复制指令可包括所述丢失数据分片的标识和所述第一物理节点的标识,其中,所述丢失数据分片的标识可用于指示待复制的数据分片,所述第一物理节点的标识可用于指示数据复制的目标地址。
图5示例性的示出了所述元数据服务器分别向多个所述第二物理节点(如节点1和节点2)发送所述复制指令的实施例。具体实现中,针对存在多个所述第二物理节点的场景,所述元数据服务器可以并行的开启多个复制进程(或线程),其中一个复制进程(或线程)用于向一个所述第二物理节点发送所述复制指令,用以触发多个所述第二物理节点并行复制所述丢失数据分片对应的业务数据到所述第一物理节点,可实现提高数据恢复的效率。
S109,在接收到所述复制指令后,所述第二物理节点对所述第一物理节点执行业务数据复制过程。具体的,所述业务数据复制过程可用于将备份在所述第二物理节点上的所述丢失数据分片对应的业务数据复制到所述第一物理节点。
相应的,所述第一物理节点可以接收到所述第二物理节点复制过来的业务数据。这里,所述复制过来的业务数据是指所述丢失数据分片对应的业务数据。然后,所述第一物理节点可以根据所述第二物理节点复制过来的业务数据进行数据恢复。
S111,在数据恢复完成之后,所述第一物理节点可以向所述元数据服务器发送恢复完成通知。相应的,所述元数据服务器可以接收到所述第一物理节点发送的所述恢复完成通知。
S113,所述元数据服务器响应所述恢复完成通知,对所述丢失数据分片进行主备选举。
具体的,经过所述数据恢复,所述第一物理节点恢复出了所述丢失数据分片。所述主备选举具体是指:所述元数据服务器从所述第一物理节点上的重新恢复出的所述丢失数据分片和备份在所述第二物理节点上的所述丢失数据分片中选举出新的主数据分片。具体实现中,所述元数据服务器可以采用业务负载均衡的选举策略,以实现各物理节点之间承载的业务请求的均衡化。
S115,所述元数据服务器可以根据所述主备选举的结果更新所述丢失数据分片涉及的元数据。这里,更新所述丢失数据分片涉及的元数据主要是指根据所述主备选举的结果更新所述丢失数据分片的主备状态。
具体的,所述主备选举结果可以存在下述几种情形:第一种,所述第一物理节点上重新恢复出的所述丢失数据分片处于主用状态,备份在所述第二物理节点上的所述丢失数据分片处于备用状态;第二种,所述第一物理节点上重新恢复出的所述丢失数据分片处于备用状态,备份在所述第二物理节点上的所述丢失数据分片处于主用状态。
S117,所述元数据服务器可以将更新后的所述元数据同步到所述第一物理节点和所述第二物理节点。具体实现中,所述第一物理节点和所述第二物理节点可以各自维护一个主数据分片列表和一个备份数据分片列表,并可以根据更新的元数据来调整各自的主数据分片列表和备份数据分片列表。
可选的,所述元数据服务器还可以将更新后的所述元数据同步到应用客户端(部署有驱动),以更新应用客户端缓存的路由信息。这样,应用客户端可以通过更新的路由信息完成路由判断,访问正确的物理节点,可避免元数据服务器因负载过重而成为业务访问时路由查询的瓶颈。关于应用客户端的驱动的说明请参考前述内容,这里不再赘述。
在一些实施例中,在确定所述第一物理节点发生故障后,所述元数据服务器还可以将备份在所述第二物理节点上的所述丢失数据分片的主备状态升级为主用状态,并更新所述丢失数据分片涉及的元数据,然后将更新的所述元数据通知所述第一物理节点和所述第二物理节点。这样可使得备份在所述第二物理节点上的所述丢失数据分片从备份数据分片变成了能够处理业务请求的主数据分片,可避免针对所述丢失数据分片的业务因故障而停止。
针对分布式数据库系统中在线备份有全部所述丢失数据分片的场景,实施图5所示实施例,可实现利用备份于各个第二物理节点上的所述丢失数据分片,对所述第一物理节点上的全部所述丢失数据分片进行细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
图6是本发明实施例提供的另一种分布式数据恢复方法。图6实施例对应前述第二种故障情况。下面展开描述:
S201,所述元数据服务器确定第一物理节点发生故障。具体请参考图5实施例中的S101,这里不赘述。
S203,所述元数据服务器可以确定所述故障导致的丢失数据分片。具体请参考图5实施例中的S103,这里不赘述。
S205,所述元数据服务器判断出分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片,并确定备份有所述部分数据分片的一个或多个第二物理节点。
图6示例性的示出了备份有所述部分数据分片的2个物理节点:节点1和节点2。实际应用中,所述第二物理节点的个数可以是一个,也可以是两个或两个以上,图6仅作示例,不构成限定。
S207,如果所述分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片,则所述元数据服务器可以向所述第一物理节点发送离线恢复指令,触发所述第一物理节点基于所述第一物理节点对应的持久化备份文件进行离线恢复。相应的,所述第一物理节点接收所述离线恢复指令,并基于所述第一物理节点对应的持久化备份文件进行离线恢复。
S209,离线恢复完成后,所述元数据服务器向所述第二物理节点发送复制指令。相应的,在接收到所述复制指令后,所述第二物理节点对所述第一物理节点执行业务数据复制过程,可具体参考以下步骤S211-S217。
图6示例性的示出了所述元数据服务器分别向多个所述第二物理节点(如节点1和节点2)发送所述复制指令的实施例。关于并行触发多个所述第二物理节点执行业务数据复制以及所述复制指令的具体实现请参考图5实施例。
S211,所述第二物理节点和所述第一物理节点进行复制握手。S213,所述第二物理节点判断复制握手是否成功,如果握手成功,则执行S215;如果握手失败,则执行S217。
其中,复制握手的具体实现可包括:第二物理节点判断备份在所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
也即是说,判断复制握手是否成功需要依据两个判断条件。
针对其中第一个判断条件(判断备份在所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本),可以提供下述实施思路:应理解的,离线恢复后的所述第一物理节点上的所述部分数据分片的版本与所述离线恢复基于的持久化备份文件的版本一致。通常,如果在最近一次持久化备份(即最近一次检查点)之后,在线的所述部分数据分片没有进行更新,那么,备份在所述第二物理节点上的所述部分数据分片的版本和离线恢复后的所述第一物理节点上的所述部分数据分片的版本是一致的;否则,备份在所述第二物理节点上的所述部分数据分片的版本一般会新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本。
针对其中第二个判断条件(判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整),可以提供下述实施思路:
具体实现中,所述第二物理节点可以将所述部分数据分片对应的增量数据可以记录在本地的日志文件环中。从填充该环中的第一个文件开始,然后移动到下一个文件,依次类推,直到所有文件都写满为止。然后回到环中的第一个文件并再次开始日志记录,原来存在第一个文件中的日志被覆盖了。
应理解的,导致所述部分数据分片对应的增量数据发生丢失的原因可包括:第一个原因,日志文件环中的旧文件被新文件覆盖;第二个原因,故障前针对所述部分数据分片的业务请求在从所述第一物理节点异步复制到所述第二物理节点的过程中出现数据丢失。
针对所述第一个原因,可以判断所述部分数据分片对应的日志文件环中是否有文件被覆盖,如果日志文件环中有文件被覆盖(即写指针重新绕回到第一个文件之后),则表明日志环记录的增量数据不完整,同时也表明所述第一物理节点的故障时间较长,所述第二物理节点上的所述部分数据分片的版本更新次数比较多。针对所述第二个原因,可以检查故障前异步复制到所述第二物理节点上的针对所述部分数据分片的业务请求是否出现数据丢失,例如判断业务请求对应的数据包的编号是否连续,如果异步复制中出现数据丢失,则表明所述部分数据分片对应的增量数据是不完整的。
S215,如果复制握手成功,则所述第二物理节点将第一增量数据复制到所述第一物理节点。相应的,所述第一物理节点接收所述第二物理节点复制的所述第一增量数据,并利用所述第一增量数据执行数据恢复,即增量恢复。本发明实施例中,可以将所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据称为第一增量数据。
S217,如果复制握手失败,则所述第二物理节点将所述部分数据分片对应的业务数据复制到所述第一物理节点。相应的,所述第一物理节点接收所述第二物理节点复制的所述业务数据,并利用所述业务数据执行数据恢复,即全量恢复。
本发明实施例中,S215和S217体现了图6实施例提供的两种不同的在线恢复方式(相当于前述总的设计思路中提及的在线增量恢复),可实现将所述第一物理节点上的离线恢复后的所述部分数据分片进一步更新到与所述第二物理节点上所述部分数据分片的版本一致。
S219,在数据恢复完成之后,所述第一物理节点可以向所述元数据服务器发送恢复完成通知。相应的,所述元数据服务器可以接收到所述第一物理节点发送的所述恢复完成通知。
S221,所述元数据服务器响应所述恢复完成通知,对所述丢失数据分片进行主备选举,并更新所述丢失数据分片涉及的元数据。
具体的,关于所述主备选举以及所述元数据更新的具体实现请参考图5实施例,这里不再赘述。
S223,所述元数据服务器可以将更新后的所述元数据同步到所述第一物理节点和所述第二物理节点。可选的,所述元数据服务器还可以将更新后的所述元数据同步到应用客户端(部署有驱动),以更新应用客户端缓存的路由信息。
在一些实施例中,在确定所述第一物理节点发生故障后,所述元数据服务器还可以将备份在所述第二物理节点上的所述丢失数据分片的主备状态升级为主用状态,并更新所述丢失数据分片涉及的元数据,然后将更新的所述元数据通知所述第一物理节点和所述第二物理节点。这样可使得备份在所述第二物理节点上的所述丢失数据分片从备份数据分片变成了能够处理业务请求的主数据分片,可实现在数据恢复过程中针对所述丢失数据分片的业务不会因故障而停止。关于如何在数据恢复过程中处理来自应用客户端的业务请求,请参见后续图9A或9B实施例。
针对分布式数据库系统中上述丢失数据分片中的部分数据分片存在在线备份的场景,实施图6所示实施例,在进行离线恢复之后,可实现利用备份于各个第二物理节点上的所述部分数据分片,进一步的对所述第一物理节点上的所述部分数据分片进行细粒度(基于数据分片)的并行式数据恢复,提高数据恢复效率。
结合图5或图6实施例,下面详细说明本发明实施例提供的业务数据复制过程。所述分布式数据复制过程既可以适用图5实施例中的业务数据复制过程,也可以适用图6实施例中的增量数据(或业务数据)复制过程。如图7所示,假设物理节点1发生故障,业务数据复制过程可如下:
(1)元数据服务器确定物理节点1发生故障。具体实现中,该故障可以由物理节点1主动上报,也可由元数据服务器查询发现。如图3所示,故障发生后,物理节点1上的处于主用状态的数据分片1、数据分片2和数据分片3丢失。这三个数据分片分别备份在物理节点3、物理节点4和物理节点2上。可以理解的,物理节点1即所述第一物理节点,物理节点2-4即所述第二物理节点,物理节点1上的数据分片1-3即前述图5或图6实施例中提及的所述丢失数据分片。需要说明的,故障也可能仅导致物理节点1上的部分主数据分片丢失,例如仅导致数据分片1丢失。
(2)元数据服务器分别向物理节点2、物理节点3和物理节点4下发复制指令,触发这三个物理节点将相应的备份数据分片对应的业务数据复制到物理节点1。
在一种实现方式中,所述元数据服务器发送给每一个第二物理节点的复制指令包含的参数均不同。具体的,针对一个第二物理节点的复制指令可包含备份在该第二物理节点上的所述丢失数据分片的标识,以及第一物理节点(即物理节点1)的标识。
例如,如图3所示,针对物理节点2的复制指令可包含数据分片3的分片ID以及物理节点1的节点ID。针对物理节点3的复制指令可包含数据分片1的分片ID和物理节点1的节点ID。针对物理节点4的复制指令可包含据分片2的分片ID和物理节点1的节点ID。
在另一种实现方式中,所述元数据服务器发送给每一个第二物理节点的复制指令包含的参数均相同。具体的,针对每一个第二物理节点的复制指令都可包含全部所述丢失数据分片的标识,以及第一物理节点(即物理节点1)的标识。例如,针对物理节点2-4这三个节点的复制指令均可包含数据分片1-3的分片ID以及物理节点1的节点ID。物理节点2-4可以分别查找本地备份的数据分片来确定各自备份有数据分片1-3中的哪一些数据分片。
(3)物理节点2、物理节点3和物理节点4分别将数据分片3、数据分片1和数据分片2对应的业务数据并行复制到物理节点1,以实现物理节点1的数据恢复。
具体实现中,在接收到复制指令后,第二物理节点可以检索待复制的数据分片下的全部业务对象,然后查找所述全部业务对象对应的业务数据。例如,物理节点2可以检索数据分片3下的全部业务对象,并进一步查找到数据分片3对应的全部业务数据,最后将全部业务数据以业务对象为单位,逐一复制到物理节点1。关于如何查找一个数据分片对应的全部业务数据的实现方式请参见后续图8及相关说明。
从图7可以看出,所述第一物理节点对应的多个所述第二物理节点可以并行的向所述第一物理节点复制相应的备份数据分片对应的业务数据,可实现细粒度(基于数据分片)的并发式数据复制过程,提高数据恢复效率。
图8是本发明实施例提供的数据分片与业务对象之间的映射关系示意图。本发明实施例中,业务对象是一个数据库系统中相关业务的数据聚合,例如计费系统以客户为对象进行数据聚合。
如图8所示,数据分片与业务对象之间是1:n(n≥1,n是正整数)的关系,即一个数据分片可以包含n个业务对象。每个业务对象是由一系列该对象的相关属性数据聚合。所述相关属性数据通常按不同的类别设计成不同的业务表,其中一个业务表是一系列业务对象的实例数据。
例如,如图8所示,按客户对象执行聚合的相关属性数据有:客户资料信息、客户账单、客户订购等。所述相关属性数据可以按类别设计成关系型数据库中的客户资料表,客户账单表,客户订购表。
为了便于管理各个数据分片对应的业务数据,本发明实施例定义了业务对象根表,所述业务对象根表用于描述业务对象与数据分片之间的关系,利用数据分片的标识(如分片ID)作为检索条件即可查询出该数据分片关联的全部业务对象。本发明实施例还定义了业务对象附属表,所述业务对象附属表用于描述每一个业务对象所包含业务表,利用业务对象的标识(如业务对象ID)作为检索条件即可查询出该业务对象关联的全部业务表。所述全部业务表中包含的全部业务记录构成了该数据分片对应的全部业务数据。
以图8中的数据分片1为例,下面说明所述元数据服务器如何查找出一个数据分片对应的全部业务数据。
(1)以一个数据分片的标识(如分片ID)为索引,所述元数据服务器可以检索业务对象根表来查找出该数据分片关联的业务对象列表。例如,以数据分片1的分片ID为索引将找到包含“业务对象1.1”,“业务对象1.2”,直到“业务对象1.n”的业务对象列表。
(2)以一个业务对象的标识(如业务对象ID)为索引,所述元数据服务器可以检索业务对象附属表来查找出该业务对象的相关业务表。例如,以业务对象1.1的对象ID为索引将查找到“业务对象1.1”关联的业务表为:“业务表1.1.1”、“业务表1.1.2”、……、“业务表1.1.n”。
(3)以一个业务对象的标识(如业务对象ID)为索引,所述元数据服务器可以检索每一个业务表来查找出该业务对象对应的全部业务数据。例如,以“业务对象1.1”的对象ID为索引,分别检索“业务表1.1.1”、“业务表1.1.2”、…“业务表1.1.n”,可以查询到该业务对象对应的全部业务数据。
同理,对于“业务对象1.2”,……,“业务对象1.n”,按上述过程可以检索到每一个业务对象对应的全部业务数据。最终,数据分片1对应的全部业务数据即数据分片1关联的全部业务对象对应的业务数据可以被查找到。
结合图5或图6实施例,由于数据迁移耗时,因此在所述业务数据复制过程中,备份在所述第二物理节点上的所述丢失数据分片(已升级为主用状态)可以接收到一些来自应用客户端的业务请求。本发明实施例中,还可以利用所述业务数据复制过程中接收到的业务请求进一步更新所述丢失数据分片的版本。关于如何利用在所述业务数据复制过程中接收到的业务请求来更新所述丢失数据分片的版本,本发明实施例提供了两种实现方式。下面展开描述。
如图9A所示,第一种实现方式可主要包括:
步骤一、在所述第二物理节点向所述第一物理节点执行所述业务数据复制(可如图7所示)时,针对备份在所述第二物理节点上的所述丢失数据分片,所述第二物理节点接收到来自应用客户端的业务请求。
步骤二、所述第二物理节点缓存所述业务请求。
步骤三、在所述业务数据复制过程结束后,所述第二物理节点利用缓存的业务请求生成增量数据。所述增量数据表明了备份在所述第二物理节点上的所述丢失数据分片在所述业务数据复制过程中发生的更新。本发明实施例中,可将这个增量数据称为第二增量数据。
步骤四、所述第二物理节点将所述第二增量数据复制到所述第一物理节点。
步骤五、相应的,所述第一物理节点可以接收复制过来的所述第二增量数据,并根据所述第二增量数据更新所述第一物理节点上的所述丢失数据分片。
最后,在数据更新完成后,所述第一物理节点可以通知所述元数据服务器,可以触发所述元数据服务器对所述丢失数据分片进行主备选举,更新元数据等。
如图9B所示,第二种实现方式可主要包括:
步骤一、在所述第二物理节点向所述第一物理节点执行所述业务数据复制(可如图7所示)时,针对备份在所述第二物理节点上的所述丢失数据分片,所述第二物理节点接收到来自应用客户端的业务请求。
步骤二、所述第二物理节点将所述业务请求转发到所述第一物理节点。
步骤三、相应的,所述第一物理节点接收并缓存所述第二物理节点发送的所述业务请求。
步骤四、在所述业务数据复制过程结束后,所述第一物理节点利用缓存的业务请求生成增量数据。所述增量数据表明了备份在所述第二物理节点上的所述丢失数据分片在所述业务数据复制过程中发生的更新。本发明实施例中,可将这个增量数据称为第三增量数据。
步骤五、所述第一物理节点利用所述第三增量数据更新所述第一物理节点上的所述丢失数据分片。
最后,在数据更新完成后,所述第一物理节点可以通知所述元数据服务器。并且,所述第一物理节点可以将所述第三增量数据复制到所述第二物理节点,以更新备份在所述第二物理节点上的所述丢失数据分片,实现数据同步。
在图9A所示的实现方式中,在线数据恢复期间,针对来自应用客户端的业务请求,所述第二物理节点可以将所述业务请求缓存在本地,等待数据恢复完成后,将缓存的全部业务请求合并后同步到所述第一物理节点。图9A的实现方式不会影响所述业务数据的复制,可以使用在所述第二物理节点具备充裕的缓存空间的条件下,比较适用网络传输压力较大的场景。
在图9B所示的实现方式中,在线数据恢复期间,针对来自应用客户端的业务请求,所述第二物理节点也可以将业务请求复制(异步复制)到所述第一物理节点,所述第一物理节点先缓存业务请求,待数据恢复完成后,利用缓存的全部业务请求更新所述丢失数据分片。图9B的实现方式不要求所述第二物理节点具备充裕的缓存空间,在网络传输压力较小的场景下,比较适用所述第二物理节点的缓存空间紧张的场景。
实际应用中,可以根据各物理节点的业务负载、缓存空间以及网络传输压力等等网络状况来决策采用图9A或图9B所示实施方式。
下面结合图10A-10B来示例性的描述图5和图6实施例,以便于充分理解本发明实施例。假设分布式数据库系统的数据服务子系统由4个物理节点(物理节点1-4)组成。需要说明的,本发明实施例涉及的所述丢失数据分片是指故障物理节点(即前述第一物理节点)上的处于主用状态的数据分片。本发明实施例涉及的数据恢复是指对故障物理节点上的处于主用状态的数据分片进行数据恢复。
图10A对应前述第一种故障情况,可以实施图5描述的数据恢复方法。如图10A所示,在初始状态时,每一个物理节点上分别有3个主数据分片和3个备份数据分片。之后物理节点1发生故障,物理节点1上的主数据分片1-3丢失。丢失的数据分片1-3全部存在相应的备份数据分片。
针对物理节点1的数据恢复方法可如下:
(1)元数据服务器确定丢失的数据分片1-3分别备份在物理节点3、物理节点4和物理节点2这三个物理节点上,并如图10A所示,可以将分别处于物理节点3、4、2上的备份数据分片1、2、3升级为主数据分片,用于处理来自客户端的业务请求。
然后,元数据服务器向物理节点2-4这三个物理节点发送复制指令,触发这三个物理节点分别将相应的数据分片对应的业务数据复制到物理节点1。这里,物理节点2-4即前述第二物理节点。
(2)物理节点2遍历数据分片3关联的全部业务对象,并获取每一个业务对象对应的全部业务数据,然后将各个业务对象对应的业务数据复制到物理节点1。同样的,物理节点3将数据分片1对应的业务数据复制到物理节点1。物理节点4将数据分片2对应的业务数据复制到物理节点1。关于业务数据复制过程的具体实现可参考图7实施例,关于如何获取一个数据分片对应的全部业务数据可参考8实施例,这里不再赘述。
(3)在上述步骤(2)描述的业务数据复制过程中,物理节点2可能会接收到来自应用客户端的针对数据分片3的业务请求。同样的,物理节点3可能会接收到来自应用客户端的针对数据分片1的业务请求,物理节点4可能会接收到来自应用客户端的针对数据分片2的业务请求。参考图9A或图9B实施例可知,物理节点2-4可以将各自接收到的业务请求缓存到各自本地,或者将各自接收到的业务请求异步复制到物理节点1上缓存。
(4)在上述步骤(2)描述的业务数据复制过程结束后,物理节点1完成在线数据恢复。具体的,在线数据恢复完成后,所述元数据服务器可以对数据分片1-3进行主备选举,并根据选举结果更新数据分片1-3涉及的元数据。关于主备选举和元数据更新的具体实现可参考图5实施例,这里不再赘述。
另外,原来备份在物理节点1上的数据分片6、9和11可基于各自对应的主数据分片进行在线恢复。
参考图9A或图9B实施例,在数据恢复完成后,还可以利用业务数据复制过程中缓存的业务请求进一步更新物理节点1上的数据分片1-3。下面以物理节点2接收到的业务请求为例进行说明。
图9A描述的实现方式的具体实施:业务数据复制过程中的业务请求缓存在物理节点2上。待物理节点1的数据恢复完成后,物理节点2合并缓存的全部业务请求,并生成增量数据(即前述第二增量数据),最后将该增量数据复制到物理节点1,触发物理节点1利用该增量数据进行数据更新。
图9B描述的实现方式的具体实施:业务数据复制过程中的业务请求由物理节点2异步复制到物理节点1,并缓存在物理节点1上。待物理节点1的数据恢复完成后,物理节点1利用缓存的全部业务请求生成增量数据(即前述第三增量数据),最后利用该增量数据进行数据更新,并可以将该增量数据复制到物理节点2,以相应更新物理节点2上的数据分片3,实现数据同步。
可以理解的,图10A示出的数据恢复场景,针对物理节点1上丢失的主数据分片1-3,物理节点2-4这三个物理节点分别将相应数据分片对应的业务数据并行的复制到物理节点1,可实现高效率的恢复物理节点1上的数据分片1-3。完成数据恢复后的数据分片1-3的版本和备份在物理节点2-4这三个物理节点上相应数据分片的版本一致。进一步的,数据恢复完成后,还可以基于业务数据复制过程中缓存的业务请求更新物理节点1上的数据分片1-3,保证了数据恢复过程中的业务请求处理。
图10B对应前述第三种故障情况,可以实施图6描述的数据恢复方法。如图10B所示,在初始状态时,每一个物理节点上分别有3个主数据分片和3个备份数据分片。之后物理节点1、2发生故障,物理节点1上的主数据分片1-3丢失,物理节点2上的主数据分片4-6丢失。丢失的数据分片1-2存在相应的备份数据分片,丢失的数据分片3没有相应的备份数据分片。丢失的数据分片4-5存在相应的备份数据分片,丢失的数据分片6没有相应的备份数据分片。
针对物理节点1、2的数据恢复方法可如下:
(1)所述元数据服务器确定丢失数据分片中仅有部分数据分片(如数据分片1-2和数据分片4-5)存在在线备份,即备份在物理节点3-4上,并如图10B所示,可以将物理节点3上的备份数据分片1、5升级为主数据分片,将物理节点4上的备份数据分片2、4升级为主数据分片,用于处理来自客户端的业务请求。这里,物理节点3-4即前述第二物理节点。
然后,所述元数据服务器可以向物理节点1-2分别发送离线指令,触发物理节点1-2进行离线恢复。
(2)物理节点1-2分别基于各自对应的持久化备份文件进行离线恢复。离线恢复后的物理节点1-2上的全部数据分片的版本与所述持久化备份文件的版本一致。
可以理解的,由于数据分片3、6没有在线备份,因此离线恢复后的数据分片3、6已经是最新版本。这时,可针对数据分片3、6触发主备选举,选举出的处于主用状态的数据分片3可用于接收针对数据分片3对应的业务数据的业务请求,选举出的处于主用状态的数据分片6可用于接收针对数据分片6对应的业务数据的业务请求。由于数据分片1-2、4-5有在线备份,因此离线恢复后的数据分片1-2、4-5并不是最新版本,还需要基于在线备份进行数据恢复,详见下面的步骤(3)。
(3)物理节点3和物理节点1针对数据分片1进行复制握手,如果握手成功,则物理节点3向物理节点1复制针对数据分片1对应的增量数据(即前述第一增量数据),即进行增量恢复;如果握手失败,则物理节点3向物理节点1复制针对数据分片1对应的全部业务数据,即进行全量恢复。同样的,执行针对数据分片2、数据分片4-5的复制握手过程。关于复制握手的具体实现可参考图6实施例,这里不再赘述。可以理解的,经过前述增量恢复或前述全量恢复后,物理节点1上的数据分片1的版本与物理节点3上的数据分片1的版本一致。
(4)在上述步骤(3)描述的数据恢复过程结束后,可针对数据分片1、2、4或5触发主备选举,选举出的处于主用状态的数据分片可用于接收针对该数据分片对应的业务数据的业务请求。然后,根据主备选举结果更新数据分片1、2、4或5各自涉及的元数据。
可以理解的,图10B示出的数据恢复场景,针对发生故障的物理节点1、2,先基于持久化备份文件进行离线恢复。然后,针对存在在线备份的部分丢失数据分片(如数据分片1-2、数据分片4-5),进行复制握手,并根据握手结果对所述部分丢失数分片进行在线恢复。这样可实现高效率的恢复物理节点1、2上的数据分片,并进一步的对所述部分丢失数据分片进行在线恢复,将所述部分丢失数据分片恢复到较新的版本。
图11是本发明实施例提供的元数据服务器、第一物理节点和第二物理节点的硬件结构图。
其中,所述元数据服务器可以是图1实施例中的元数据服务子系统103,也可以是图2实施例中的服务器200。所述第一物理节点可以是图1实施例中的数据服务子系统105中的任意发生故障的物理节点,也可以是图2实施例中的任意发生故障的数据节点服务器。所述第二物理节点可以是图1实施例中的数据服务子系统105中的备份有所述丢失数据分片的物理节点,也可以是图2实施例中的备份有所述丢失数据分片的数据节点服务器。
具体实现中,所述元数据服务器、所述第一物理节点和所述第二物理节点可以采用通用的计算机硬件,其包括处理器1101、存储器1102、总线1103、输入设备1104、输出设备1105以及网络接口1106。
具体的,存储器1102可以包括以易失性和/或非易失性存储器形式的计算机存储媒体,如只读存储器和/或随机存取存储器。存储器1102可以存储操作系统、应用程序、其他程序模块、可执行代码和程序数据。
输入设备1104可以用于向所述元数据服务器、所述第一物理节点或所述第二物理节点输入命令和信息,输入设备1104如键盘或指向设备,如鼠标、轨迹球、触摸板、麦克风、操纵杆、游戏垫、卫星电视天线、扫描仪或类似设备。这些输入设备可以通过总线1103连接至处理器1101。
输出设备1105可以用于所述元数据服务器、所述第一物理节点或所述第二物理节点输出信息,除了监视器之外,输出设备1105还可以为其他外围输出设各,如扬声器和/或打印设备,这些输出设备也可以通过总线1103连接到处理器1101。
所述元数据服务器、所述第一物理节点或所述第二物理节点可以通过网络接口106连接到网络中,例如连接到局域网(Local Area Network,LAN)。在联网环境下,所述元数据服务器、所述第一物理节点或所述第二物理节点中存储的计算机执行指令可以存储在远程存储设备中,而不限于在本地存储。
当所述元数据服务器中的处理器1101执行存储器1102中存储的可执行代码或应用程序时,所述元数据服务器可以执行图5、图6、图7和图9A-9B实施例中描述的所述元数据服务器一侧的方法步骤,例如执行步骤S103-S105、S203-S205等。具体执行过程参见图5、图6、图7和图9A-9B实施例,在此不再赘述。
当所述第一物理节点中的处理器1101执行存储器1102中存储的可执行代码或应用程序时,所述第一物理节点可以执行图5、图6、图7和图9A-9B实施例中描述的所述第一物理节点一侧的方法步骤,在此不再赘述。
当所述第二物理节点中的处理器1101执行存储器1102中存储的可执行代码或应用程序时,所述第二物理节点可以执行图5、图6、图7和图9A-9B实施例中描述的所述第二物理节点一侧的方法步骤,例如执行步骤S109、S211-S217等,在此不再赘述。
图12示出了本发明实施例提供的分布式数据库系统的结构示意图。分布式数据库系统10具体可以是图1实施例描述的数据库系统,也可以是图2实施例描述的数据库系统。如图12所示,分布式数据库系统10包括服务器200、第一物理节点300和第二物理节点400。其中,服务器200可以是前述全部内容中提及的所述元数据服务器,第一物理节点300可以是前述全部内容中提及的所述第一物理节点,第二物理节点400可以是前述全部内容中提及的所述第二物理节点。
具体实现中,服务器200可以是图1实施例中的元数据服务子系统103,也可以是图2实施例中的服务器200,还可以是图11实施例描述的元数据服务器。第一物理节点300可以是图1实施例中的数据服务子系统105中的任意发生故障的物理节点,也可以是图2实施例中的任意发生故障的数据节点服务器,还可以是图11实施例描述的第一物理节点。第二物理节点400可以是图1实施例中的数据服务子系统105中的备份有所述丢失数据分片的物理节点,也可以是图2实施例中的备份有所述丢失数据分片的数据节点服务器,还可以是图11实施例描述的第二物理节点。
需要说明的,第一物理节点300和第二物理节点400的数量分别可以是多个,不限于图12所示。
图12还具体示出了服务器200、第一物理节点300和第二物理节点400各自对应的功能模块。下面展开描述。
如图12所示,服务器200可包括:故障检测单元201,故障恢复单元202和通信单元203。其中:
故障检测单元201,用于确定第一物理节点300发生故障。具体实现中,故障检测单元201可以接收第一物理节点300上报所述故障,故障检测单元201也可以主动轮询分布式数据库系统10中的各个物理节点,及时发现发生故障的物理节点。
故障恢复单元202,用于确定丢失数据分片,所述丢失数据分片是第一物理节点300上处于主用状态的数据分片,如果所述分布式数据库系统中备份有所述丢失数据分片,则确定备份有所述丢失数据分片的一个或多个第二物理节点。
通信单元203,用于向第二物理节点400发送复制指令,触发第二物理节点400对第一物理节点300执行业务数据复制过程。具体的,所述业务数据复制过程用于将备份在第二物理节点400上的所述丢失数据分片对应的业务数据复制到第一物理节点300。所述复制指令可包含备份在第二物理节点400上的所述丢失数据分片的标识信息和第一物理节点300的标识信息。
在一些实施例中,分布式数据库系统10可能仅备份有所述丢失数据分片中的部分数据分片。针对这种情况,则通信单元203还可用于在第二物理节点400发送所述复制指令之前,向第一物理节点300发送离线恢复指令,触发第一物理节点300基于第一物理节点300对应的持久化备份文件进行离线恢复。
在一些实施例中,服务器200在包括:故障检测单元201,故障恢复单元202和通信单元203外,还可包括:第一主备选举单元,第一元数据更新单元和第一元数据同步单元。其中:
所述第一主备选举单元,用于将备份在第二物理节点400上的所述丢失数据分片的状态升级为主用状态。
所述第一元数据更新单元,用于更新所述分布式数据库系统中的所述丢失数据分片涉及的元数据。
所述第一元数据同步单元,用于将更新的所述元数据通知第一物理节点300和第二物理节点400。
可以理解的,升级为主用状态的数据分片可以处理客户端发送的针对所述数据分片的业务请求,可实现在所述故障发生后,分布式数据库系统10还能够处理针对备份在第二物理节点400上的所述丢失数据分片的业务请求,不中断业务。
具体实现中,所述第一主备选举单元,所述第一元数据更新单元和所述第一元数据同步单元可以分别是图12中示出的主备选举单元204,元数据更新单元205和元数据同步单元206。
在第一物理节点200完成所述数据恢复后,第一物理节点200可以向服务器200发送恢复完成通知。相应的,通信单元203还可用于接收到第一物理节点200发送的恢复完成通知。在一些实施例中,服务器200在包括:故障检测单元201,故障恢复单元202和通信单元203外,还可包括:第二主备选举单元、第二元数据更新单元和第二元数据同步单元。其中:
所述第二主备选举单元,用于响应所述恢复完成通知,对所述丢失数据分片进行主备选举。
所述第二元数据更新单元,用于更根据所述主备选举的结果更新所述分布式数据库系统中所述丢失数据分片涉及的元数据。
所述第二元数据同步单元,用于将更新后的所述元数据同步到第一物理节点300和第二物理节点400。
具体实现中,所述第二主备选举单元,所述第二元数据更新单元和所述第二元数据同步单元也可以分别是图12中示出的主备选举单元204,元数据更新单元205和元数据同步单元206。
需要说明的,服务器200中各个功能单元的具体实现请参考前述实施例,这里不再赘述。
如图12所示,第一物理节点300可包括:通信单元301和在线恢复单元302。其中:
通信单元301,用于在发生故障后,接收第二物理节点400复制过来的业务数据。
在线恢复单元302,用于利用所述业务数据进行数据恢复。第二物理节点400上备份有所述故障导致的丢失数据分片。
具体的,所述业务数据是备份在第二物理节点400上的所述丢失数据分片对应的业务数据。第二物理节点400接收并响应服务器200发送的所述复制指令,将备份在第二物理节点400上的所述丢失数据分片对应的业务数据复制到第一物理节点300。
在一些实施例中,分布式数据库系统10中可能仅备份有所述丢失数据分片中的部分数据分片。
针对分布式数据库系统10中仅备份有所述部分数据分片的情况,通信单元301还可以在接收第二物理节点400复制过来的所述业务数据之前,接收服务器200发送的离线恢复指令。具体的,第一物理节点300还可以进一步的包括:离线恢复单元303,用于响应通信单元301接收的所述离线恢复指令,基于第一物理节点300对应的持久化备份文件进行离线恢复。
针对分布式数据库系统10中仅备份有所述部分数据分片的情况,第二物理节点400与第一物理节点300可针对所述部分数据分片进行复制握手,根据复制握手结果决定对所述部分数据分片进行增量恢复还是全量恢复。具体的,在线恢复单元302可具体用于:
如果复制握手成功,则接收第二物理节点400复制过来的第一增量数据,并利用所述第一增量数据执行数据恢复,即增量恢复;如果复制握手失败,则接收第二物理节点400复制过来的所述部分数据分片对应的业务数据,并利用所述业务数据执行数据恢复,即全量恢复。
这里,所述第一增量数据是第二物理节点400上的所述部分所述丢失数据分片相较于离线恢复后的第一物理节点300上的所述部分数据分片的增量数据。
关于第二物理节点400如何进行所述复制握手,可参考第二物理节点400侧的相关描述,这里不赘述。
本发明实施例中,在在线恢复单元302完成数据恢复后,通信单元301还可用于向服务器200发送恢复完成通知,以触发服务器200对所述丢失数据分片进行主备选举。
由于数据迁移耗时,因此在第二物理节点400向第一物理节点300复制业务数据的过程中,备份在第二物理节点400上的所述丢失数据分片(已升级为主用状态)可以接收到一些来自应用客户端的业务请求。本发明实施例中,还可以利用所述业务数据复制过程中接收到的业务请求进一步更新所述丢失数据分片的版本。对此,本发明实施例提供了两种实现方式。下面展开描述。
第一种实现方式中,通信单元301还可用于接收第二物理节点400发送的第二增量数据。所述第二增量数据是由第二物理节点400根据在所述业务数据的复制过程中接收到的业务请求生成的。所述业务请求是客户端针对备份在第二物理节点400上的所述丢失数据分片发送的业务请求。
具体的,第一物理节点300还可进一步包括:第一更新单元,可用于利用所述第二增量数据更新第一物理节点300上的所述丢失的数据分片。具体实现中,所述第一更新单元可以是图12中示出的更新单元306。
第二种实现方式中,通信单元301还可用于接收第二物理节点400发送的针对所述丢失数据分片的业务请求。
具体的,第一物理节点300还可进一步包括:缓存单元304,业务请求处理单元305和第二更新单元。其中:缓存单元304可用于缓存通信单元301接收的所述业务请求;业务请求处理单元305可用于利用缓存单元304缓存的所述业务请求生成第三增量数据;所述第二更新单元可用于利用所述第三增量数据更新第一物理节点300上的所述丢失数据分片。具体实现中,所述第二更新单元也可以是图12中示出的更新单元306。
需要说明的,第一物理节点300中各个功能单元的具体实现请参考前述实施例,这里不再赘述。
如图12所示,第二物理节点400可包括:通信单元401和复制单元402。其中:
通信单元401,用于接收服务器200下发的复制指令。所述复制指令可包括备份在第二物理节点400上的所述丢失数据分片的标识信息和第一物理节点300的标识信息。
复制单元402,用于响应所述复制指令,对第一物理节点300执行业务数据复制过程。具体的,所述业务数据复制过程可用于将备份在第二物理节点400上的所述丢失数据分片对应的业务数据复制到第一物理节点300。
在一些实施例中,分布式数据库系统10中可能仅备份有所述丢失数据分片中的部分数据分片。
针对分布式数据库系统10中仅备份有所述部分数据分片的情况,第二物理节点400还可进一步的包括:复制握手单元404,用于与离线恢复后的第一物理节点300针对所述部分数据分片进行复制握手。具体的,复制单元402可具体用于:如果复制握手成功,则将第一增量数据复制到第一物理节点300,触发离线恢复后的第一物理节点300进行增量恢复;如果复制握手失败,则将第二物理节点400上的所述部分数据分片对应的业务数据复制到第一物理节点300,触发离线恢复后的第一物理节点300进行全量恢复。
这里,所述第一增量数据是第二物理节点400上的所述部分数据分片相较于离线恢复后的第一物理节点300上的所述部分数据分片的增量数据。
具体的,复制握手单元404可具体包括:第一判断单元,第二判断单元和结果单元。其中:所述第一判断单元,可用于判断第二物理节点400上的所述部分数据分片的版本是否新于离线恢复后的第一物理节点300上的所述部分数据分片的版本。所述第二判断单元,可用于判断第二物理节点400上的所述部分数据分片对应的增量数据是否完整。所述结果单元,可用于如果所述第一判断单元输出的判断结果为是并且所述第二判断单元输出的判断结果为是,则判定所述复制握手成功,否则判定所述复制握手失败。关于所述第一判断单元和所述第二判断单元的具体实现可详细参考图6实施例,这里不赘述。
由于数据迁移耗时,因此在第二物理节点400向第一物理节点300复制业务数据的过程中,备份在第二物理节点400上的所述丢失数据分片(已升级为主用状态)可以接收到一些来自应用客户端的业务请求。本发明实施例中,还可以利用所述业务数据复制过程中接收到的业务请求进一步更新所述丢失数据分片的版本。对此,本发明实施例提供了两种实现方式。下面展开描述。
第一种实现方式中,通信单元401还可用于在复制单元402执行所述业务数据复制过程中,接收客户端发送的针对备份在第二物理节点400上的所述丢失数据分片的业务请求。具体的,第二物理节点400还可进一步的包括:缓存单元405和业务请求处理单元403。其中:
缓存单元405用于所述通信单元接收的所述业务请求。业务请求处理单元403用于在复制单元402完成所述业务数据复制过程之后,根据缓存的所述业务请求生成第二增量数据。复制单元402还用于将所述第二增量数据复制到第一物理节点300,触发第一物理节点300利用所述第二增量数据更新第一物理节点300上的所述丢失数据分片。
第二种实现方式中,通信单元401还可用于在复制单元402执行所述业务数据复制过程中,接收客户端发送的针对备份在第二物理节点400上的所述丢失数据分片的业务请求,并将所述业务请求发送给第一物理节点300,触发第一物理节点300在所述业务数据复制过程完成之后,利用缓存的所述业务请求更新第一物理节点300上的所述丢失数据分片。
需要说明的,第二物理节点400中各个功能单元的具体实现请参考前述实施例,这里不再赘述。
需要说明的,关于分布式数据库系统10中的服务器200、第一物理节点300和第二物理节点400各自对应的功能请参考前述实施例,这里不再赘述。
在图12实施例中,元数据服务器200、第一物理节点300和第二物理节点分别是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specificintegrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。
本领域的技术人员可以想到元数据服务器200、第一物理节点300和第二物理节点也可以采用图11所示的形式。元数据服务器200、第一物理节点300和第二物理节点各自包含的功能单元所实现的功能都可以通过图11中的处理器1101和存储器1102来实现。
综上所述,实施本发明实施例,可实现利用备份于各个所述第二物理节点上的所述丢失数据分片,对所述第一物理节点上的全部所述丢失数据分片进行细粒度(基于数据分片)的并行式数据恢复,提高了数据恢复效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (27)
1.一种分布式数据恢复方法,应用于元数据服务器侧,所述元数据服务器用于管理分布式数据库系统中数据分片与物理节点之间的映射关系,所述分布式数据库系统包括所述元数据服务器和多个物理节点,其特征在于,所述物理节点上的数据分片包括处于主用状态的主数据分片、处于备份状态的备份数据分片中的一种或多种,其中所述主数据分片用于处理关于所述主数据分片的业务请求,数据分片涉及的元数据可包括:所述数据分片的主备状态、所述数据分片的位置、所述数据分片对应的备份数据分片或主数据分片的位置;
所述方法包括:
确定第一物理节点发生故障;
确定丢失数据分片;所述丢失数据分片是所述第一物理节点上处于主用状态的数据分片;
将处于主用状态的所述丢失数据分片降级成处于备份状态的数据分片,将备份在第二物理节点上所述丢失数据分片升级为主数据分片;
向所述第二物理节点发送复制指令,触发所述第二物理节点对所述第一物理节点执行业务数据复制过程;
其中,所述业务数据复制过程包括:如果所述第二物理节点上仅备份有所述丢失数据分片中的部分数据分片,则在发送所述复制指令之前,向所述第一物理节点发送离线恢复指令,触发所述第一物理节点基于持久化备份文件进行离线恢复,并如果离线恢复后的所述第一物理节点与所述第二物理节点针对所述部分数据分片复制握手成功,则所述第一物理节点接收所述第二物理节点复制过来的第一增量数据,并进行增量恢复;所述第一增量数据是所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据;如果复制握手失败,则所述第一物理节点接收所述第二物理节点复制过来的所述部分数据分片对应的业务数据,并进行全量恢复;
所述第二物理节点用于判断所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
2.如权利要求1所述的方法,其特征在于,如果所述分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片,则在所述向所述第二物理节点发送复制指令之前,还包括:向所述第一物理节点发送离线恢复指令,触发所述第一物理节点基于所述第一物理节点对应的持久化备份文件进行离线恢复。
3.如权利要求1或2所述的方法,其特征在于,所述元数据服务器还用于管理所述分布式数据库系统中各个物理节点上的数据分片之间的主备关系;在所述确定第一物理节点发生故障后,还包括:将备份在所述第二物理节点上的所述丢失数据分片的状态升级为主用状态,并更新所述分布式数据库系统中所述丢失数据分片涉及的元数据,将更新的所述元数据通知所述第一物理节点和所述第二物理节点;处于主用状态的数据分片用于处理客户端发送的针对所述数据分片的业务请求。
4.如权利要求1或2所述的方法,其特征在于,所述元数据服务器还用于管理所述分布式数据库系统中各个物理节点上的数据分片之间的主备关系;所述方法还包括:
接收到所述第一物理节点发送的恢复完成通知;
响应所述恢复完成通知,对所述丢失数据分片进行主备选举;
根据所述主备选举的结果更新所述分布式数据库系统中所述丢失数据分片涉及的元数据;
将更新后的所述元数据同步到所述第一物理节点和所述第二物理节点。
5.如权利要求3所述的方法,其特征在于,所述元数据服务器还用于管理所述分布式数据库系统中各个物理节点上的数据分片之间的主备关系;所述方法还包括:
接收到所述第一物理节点发送的恢复完成通知;
响应所述恢复完成通知,对所述丢失数据分片进行主备选举;
根据所述主备选举的结果更新所述分布式数据库系统中所述丢失数据分片涉及的元数据;
将更新后的所述元数据同步到所述第一物理节点和所述第二物理节点。
6.一种分布式数据恢复方法,应用于第一物理节点侧,其特征在于,包括:
在发生故障后,接收第二物理节点复制过来的业务数据,并利用所述业务数据进行数据恢复;所述第二物理节点上备份有所述故障导致的丢失数据分片,所述第一物理节点处于主用状态的所述丢失数据分片降级成处于备份状态的数据分片,所述第二物理节点上所述丢失数据分片的备份数据分片升级为主数据分片;所述业务数据是备份在所述第二物理节点上的所述丢失数据分片对应的业务数据;
其中,所述第一物理节点、所述第二物理节点上的数据分片包括处于主用状态的主数据分片、处于备份状态的备份数据分片中的一种或多种,其中所述主数据分片用于处理关于所述主数据分片的业务请求,数据分片涉及的元数据可包括:所述数据分片的主备状态、所述数据分片的位置、所述数据分片对应的备份数据分片或主数据分片的位置;
其中,如果所述第二物理节点上备份有所述故障导致的丢失数据分片具体为所述第二物理节点上仅备份有所述丢失数据分片中的部分数据分片,则所述利用所述业务数据进行数据恢复,具体包括:基于持久化备份文件进行离线恢复,如果离线恢复后的所述第一物理节点与所述第二物理节点针对所述部分数据分片复制握手成功,则所述第一物理节点接收所述第二物理节点复制过来的第一增量数据,并进行增量恢复;所述第一增量数据是所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据;如果复制握手失败,则所述第一物理节点接收所述第二物理节点复制过来的所述部分数据分片对应的业务数据,并进行全量恢复;
所述第二物理节点用于判断所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
7.如权利要求6所述的方法,其特征在于,还包括:在数据恢复完成后,向元数据服务器发送恢复完成通知。
8.如权利要求6或7所述的方法,其特征在于,如果所述分布式数据库系统中仅备份有所述丢失数据分片,则所述方法还包括:在所述接收第二物理节点复制过来的业务数据之前,接收元数据服务器发送离线恢复指令;基于所述第一物理节点对应的持久化备份文件进行离线恢复。
9.如权利要求6所述的方法,其特征在于,在所述恢复完成后,还包括:接收所述第二物理节点发送的第二增量数据;利用所述第二增量数据更新所述第一物理节点上的所述丢失的数据分片;所述第二增量数据是由所述第二物理节点根据在所述业务数据的复制过程中接收到的业务请求生成的;所述业务请求是客户端针对备份在所述第二物理节点上的所述丢失数据分片发送的业务请求。
10.如权利要求6所述的方法,其特征在于,在所述接收第二物理节点复制过来的业务数据的过程中,还包括:接收并缓存所述第二物理节点发送的针对备份在所述第二物理节点上的所述丢失数据分片的业务请求,在所述数据恢复完成后,利用缓存的所述业务请求生成第三增量数据,并利用所述第三增量数据更新所述第一物理节点上的所述丢失数据分片。
11.一种分布式数据恢复方法,应用于第二物理节点侧,其特征在于,包括:
接收元数据服务器下发的复制指令;所述元数据服务器用于确定第一物理节点发生故障,并确定丢失数据分片,所述丢失数据分片是所述第一物理节点上处于主用状态的数据分片,如果所述分布式数据库系统中备份有所述丢失数据分片,则确定备份有所述丢失数据分片的一个或多个第二物理节点;
响应所述复制指令,对所述第一物理节点执行业务数据复制过程;所述业务数据复制过程用于将备份在所述第二物理节点上的所述丢失数据分片对应的业务数据复制到所述第一物理节点;所述第一物理节点用于根据所述第二物理节点复制过来的业务数据进行数据恢复;所述第一物理节点处于主用状态的所述丢失数据分片降级成处于备份状态的数据分片,所述第二物理节点上所述丢失数据分片的备份数据分片升级为主数据分片;
其中,所述第一物理节点、所述第二物理节点上的数据分片包括处于主用状态的主数据分片、处于备份状态的备份数据分片中的一种或多种,其中所述主数据分片用于处理关于所述主数据分片的业务请求,数据分片涉及的元数据可包括:所述数据分片的主备状态、所述数据分片的位置、所述数据分片对应的备份数据分片或主数据分片的位置;
其中,如果所述第二物理节点上备份有所述故障导致的丢失数据分片具体为所述第二物理节点上仅备份有所述丢失数据分片中的部分数据分片,则所述第一物理节点用于根据所述第二物理节点复制过来的业务数据进行数据恢复,包括:所述第一物理节点用于基于持久化备份文件进行离线恢复,如果离线恢复后的所述第一物理节点与所述第二物理节点针对所述部分数据分片复制握手成功,则接收所述第二物理节点复制过来的第一增量数据,并进行增量恢复;所述第一增量数据是所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据;如果复制握手失败,则接收所述第二物理节点复制过来的所述部分数据分片对应的业务数据,并进行全量恢复;
所述复制握手包括:
所述第二物理节点判断所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
12.如权利要求11所述的方法,其特征在于,在所述对所述第一物理节点执行业务数据复制过程中,还包括:所述第二物理节点接收并缓存客户端发送的针对备份在所述第二物理节点上的所述丢失数据分片的业务请求;在所述业务数据复制过程完成之后,根据缓存的所述业务请求生成第二增量数据;将所述第二增量数据复制到所述第一物理节点,触发所述第一物理节点利用所述第二增量数据更新所述第一物理节点上的所述丢失数据分片。
13.如权利要求11或12所述的方法,其特征在于,在所述对所述第一物理节点执行业务数据复制过程中,还包括:所述第二物理节点接收客户端发送的针对备份在所述第二物理节点上的所述丢失数据分片的业务请求,并将所述业务请求发送给所述第一物理节点;所述第一物理节点用于接收并缓存所述第二物理节点发送的所述业务请求,在所述业务数据复制过程完成之后,利用缓存的所述业务请求生成第三增量数据,并利用所述第三增量数据更新所述第一物理节点上的所述丢失数据分片。
14.一种分布式数据库系统中的元数据服务器,所述元数据服务器用于管理分布式数据库系统中数据分片与物理节点之间的映射关系,所述分布式数据库系统包括所述元数据服务器和多个物理节点,其特征在于,所述物理节点上的数据分片包括处于主用状态的主数据分片、处于备份状态的备份数据分片中的一种或多种,其中所述主数据分片用于处理关于所述主数据分片的业务请求,数据分片涉及的元数据可包括:所述数据分片的主备状态、所述数据分片的位置、所述数据分片对应的备份数据分片或主数据分片的位置;
所述元数据服务器包括:
故障检测单元,用于确定第一物理节点发生故障;
故障恢复单元,用于确定丢失数据分片;所述丢失数据分片是所述第一物理节点上处于主用状态的数据分片;
所述故障恢复单元,还用于如果所述分布式数据库系统中备份有所述丢失数据分片,则将处于主用状态的所述丢失数据分片降级成处于备份状态的数据分片,将第二物理节点上所述丢失数据分片的备份数据分片升级为主数据分片;
通信单元,用于向所述第二物理节点发送复制指令,触发所述第二物理节点对所述第一物理节点执行业务数据复制过程;
其中,所述业务数据复制过程包括:如果所述第二物理节点上仅备份有所述丢失数据分片中的部分数据分片,则在发送所述复制指令之前,向所述第一物理节点发送离线恢复指令,触发所述第一物理节点基于持久化备份文件进行离线恢复,并如果离线恢复后的所述第一物理节点与所述第二物理节点针对所述部分数据分片复制握手成功,则所述第一物理节点接收所述第二物理节点复制过来的第一增量数据,并进行增量恢复;所述第一增量数据是所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据;如果复制握手失败,则所述第一物理节点接收所述第二物理节点复制过来的所述部分数据分片对应的业务数据,并进行全量恢复;
所述第二物理节点用于判断所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
15.如权利要求14所述的元数据服务器,其特征在于,如果所述分布式数据库系统中仅备份有所述丢失数据分片中的部分数据分片,则所述通信单元还用于在所述向所述第二物理节点发送复制指令之前,向所述第一物理节点发送离线恢复指令,触发所述第一物理节点基于所述第一物理节点对应的持久化备份文件进行离线恢复。
16.如权利要求14或15所述的元数据服务器,其特征在于,还包括:
第一主备选举单元,用于在所述故障检测单元确定第一物理节点发生故障后,将备份在所述第二物理节点上的所述丢失数据分片的状态升级为主用状态;处于主用状态的数据分片用于处理客户端发送的针对所述数据分片的业务请求
第一元数据更新单元,用于更新所述分布式数据库系统中的所述丢失数据分片涉及的元数据;
第一元数据同步单元,用于将更新的所述元数据通知所述第一物理节点和所述第二物理节点。
17.如权利要求14所述的元数据服务器,其特征在于,还包括:第二主备选举单元、第二元数据更新单元和第二元数据同步单元;其中:
所述通信单元还用于接收到所述第一物理节点发送的恢复完成通知;
所述第二主备选举单元,用于响应所述恢复完成通知,对所述丢失数据分片进行主备选举;
所述第二元数据更新单元,用于更根据所述主备选举的结果更新所述分布式数据库系统中所述丢失数据分片涉及的元数据;
所述第二元数据同步单元,用于将更新后的所述元数据同步到所述第一物理节点和所述第二物理节点。
18.一种分布式数据库系统中的物理节点,所述物理节点是第一物理节点,其特征在于,包括:
通信单元,用于在所述第一物理节点发生故障后,接收第二物理节点复制过来的业务数据;
在线恢复单元,用于利用所述业务数据进行数据恢复;所述第二物理节点上备份有所述故障导致的丢失数据分片,所述第一物理节点处于主用状态的所述丢失数据分片降级成处于备份状态的数据分片,所述第二物理节点上所述丢失数据分片的备份数据分片升级为主数据分片;所述业务数据是备份在所述第二物理节点上的所述丢失数据分片对应的业务数据;
其中,所述第一物理节点、所述第二物理节点上的数据分片包括处于主用状态的主数据分片、处于备份状态的备份数据分片中的一种或多种,其中所述主数据分片用于处理关于所述主数据分片的业务请求,数据分片涉及的元数据可包括:所述数据分片的主备状态、所述数据分片的位置、所述数据分片对应的备份数据分片或主数据分片的位置;
其中,如果所述第二物理节点上备份有所述故障导致的丢失数据分片具体为所述第二物理节点上仅备份有所述丢失数据分片中的部分数据分片,则所述利用所述业务数据进行数据恢复,具体包括:基于持久化备份文件进行离线恢复,如果离线恢复后的所述第一物理节点与所述第二物理节点针对所述部分数据分片复制握手成功,则所述第一物理节点接收所述第二物理节点复制过来的第一增量数据,并进行增量恢复;所述第一增量数据是所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据;如果复制握手失败,则所述第一物理节点接收所述第二物理节点复制过来的所述部分数据分片对应的业务数据,并进行全量恢复;
所述第二物理节点用于判断所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整,如果所述第二物理节点上的所述部分数据分片的版本新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本,并且所述第二物理节点上的所述部分数据分片对应的增量数据完整,则判定所述复制握手成功,否则,判定所述复制握手失败。
19.如权利要求18所述的物理节点,其特征在于,所述通信单元还用于在所述在线恢复单元完成数据恢复后,向元数据服务器发送恢复完成通知。
20.如权利要求18或19所述的物理节点,其特征在于,还包括:离线恢复单元;其中,如果所述分布式数据库系统中仅备份有所述丢失数据分片,则所述通信单元还用于在所述接收第二物理节点复制过来的业务数据之前,接收元数据服务器发送离线恢复指令;所述离线恢复单元用于基于所述第一物理节点对应的持久化备份文件进行离线恢复。
21.如权利要求18所述的物理节点,其特征在于,还包括:第一更新单元;其中:
所述通信单元还用于接收所述第二物理节点发送的第二增量数据;
所述第一更新单元,用于利用所述第二增量数据更新所述第一物理节点上的所述丢失的数据分片;所述第二增量数据是由所述第二物理节点根据在所述业务数据的复制过程中接收到的业务请求生成的;所述业务请求是客户端针对备份在所述第二物理节点上的所述丢失数据分片发送的业务请求。
22.如权利要求18所述的物理节点,其特征在于,还包括:缓存单元,业务请求处理单元和第二更新单元;其中:
所述通信单元还用于接收所述第二物理节点发送的针对所述丢失数据分片的业务请求;
所述缓存单元用于缓存所述通信单元接收的所述业务请求;
所述业务请求处理单元用于利用所述缓存单元缓存的所述业务请求生成第三增量数据;
所述第二更新单元用于利用所述第三增量数据更新所述第一物理节点上的所述丢失数据分片。
23.一种分布式数据库系统中的物理节点,所述物理节点是第二物理节点,其特征在于,包括:
通信单元,用于接收元数据服务器下发的复制指令;所述元数据服务器用于确定第一物理节点发生故障,并确定丢失数据分片,所述丢失数据分片是所述第一物理节点上处于主用状态的数据分片,如果所述分布式数据库系统中备份有所述丢失数据分片,则确定备份有所述丢失数据分片的一个或多个第二物理节点;
复制单元,用于响应所述复制指令,对所述第一物理节点执行业务数据复制过程;所述业务数据复制过程用于将备份在所述第二物理节点上的所述丢失数据分片对应的业务数据复制到所述第一物理节点;所述第一物理节点用于根据所述第二物理节点复制过来的业务数据进行数据恢复;所述第一物理节点处于主用状态的所述丢失数据分片降级成处于备份状态的数据分片,所述第二物理节点上所述丢失数据分片的备份数据分片升级为主数据分片;
其中,所述第一物理节点、所述第二物理节点上的数据分片包括处于主用状态的主数据分片、处于备份状态的备份数据分片中的一种或多种,其中所述主数据分片用于处理关于所述主数据分片的业务请求,数据分片涉及的元数据可包括:所述数据分片的主备状态、所述数据分片的位置、所述数据分片对应的备份数据分片或主数据分片的位置;
其中,如果所述第二物理节点上备份有所述故障导致的丢失数据分片具体为所述第二物理节点上仅备份有所述丢失数据分片中的部分数据分片,则所述物理节点还包括:复制握手单元;所述复制单元,用于响应所述复制指令,对所述第一物理节点执行业务数据复制过程,包括:所述复制握手单元用于与离线恢复后的所述第一物理节点针对所述部分数据分片进行复制握手;所述复制单元,具体用于如果复制握手成功,则将第一增量数据复制到所述第一物理节点,触发离线恢复后的所述第一物理节点进行增量恢复;所述第一增量数据是所述第二物理节点上的所述部分数据分片相较于离线恢复后的所述第一物理节点上的所述部分数据分片的增量数据;如果复制握手失败,则将所述第二物理节点上的所述部分数据分片对应的业务数据复制到所述第一物理节点,触发离线恢复后的所述第一物理节点进行全量恢复。
24.如权利要求23所述的物理节点,其特征在于,所述复制握手单元具体包括:
第一判断单元,用于判断所述第二物理节点上的所述部分数据分片的版本是否新于离线恢复后的所述第一物理节点上的所述部分数据分片的版本;
第二判断单元,用于判断所述第二物理节点上的所述部分数据分片对应的增量数据是否完整;
结果单元,用于如果所述第一判断单元输出的判断结果为是并且所述第二判断单元输出的判断结果为是,则判定所述复制握手成功,否则判定所述复制握手失败。
25.如权利要求23或24所述的物理节点,其特征在于,还包括:缓存单元和业务请求处理单元;其中:
所述通信单元还用于在所述复制单元执行所述业务数据复制过程中,接收客户端发送的针对备份在所述第二物理节点上的所述丢失数据分片的业务请求;
所述缓存单元用于所述通信单元接收的所述业务请求;
所述业务请求处理单元用于在所述复制单元完成所述业务数据复制过程之后,根据缓存的所述业务请求生成第二增量数据;
所述复制单元还用于将所述第二增量数据复制到所述第一物理节点,触发所述第一物理节点利用所述第二增量数据更新所述第一物理节点上的所述丢失数据分片。
26.如权利要求23所述的物理节点,其特征在于,所述通信单元还用于在所述复制单元执行所述业务数据复制过程中,接收客户端发送的针对备份在所述第二物理节点上的所述丢失数据分片的业务请求,并将所述业务请求发送给所述第一物理节点;所述第一物理节点用于接收并缓存所述第二物理节点发送的所述业务请求,在所述业务数据复制过程完成之后,利用缓存的所述业务请求生成第三增量数据,并利用所述第三增量数据更新所述第一物理节点上的所述丢失数据分片。
27.一种分布式数据库系统,其特征在于,包括:服务器,第一物理节点和第二物理节点,其中:
所述服务器为权利要求14-17中任一项所述的元数据服务器,所述第一物理节点为权利要求18-22中任一项所述的物理节点,所述第二物理节点为权利要求23-26中任一项所述的物理节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610849051.0A CN107870829B (zh) | 2016-09-24 | 2016-09-24 | 一种分布式数据恢复方法、服务器、相关设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610849051.0A CN107870829B (zh) | 2016-09-24 | 2016-09-24 | 一种分布式数据恢复方法、服务器、相关设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107870829A CN107870829A (zh) | 2018-04-03 |
CN107870829B true CN107870829B (zh) | 2022-03-08 |
Family
ID=61750919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610849051.0A Active CN107870829B (zh) | 2016-09-24 | 2016-09-24 | 一种分布式数据恢复方法、服务器、相关设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107870829B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399394A (zh) * | 2018-04-16 | 2019-11-01 | 北京京东尚科信息技术有限公司 | 计算节点的数据遍历方法、装置及计算节点 |
CN108845892A (zh) * | 2018-04-19 | 2018-11-20 | 北京百度网讯科技有限公司 | 分布式数据库的数据处理方法、装置、设备和计算机存储介质 |
CN108768721B (zh) * | 2018-05-25 | 2021-02-02 | 电子科技大学 | 一种基于包暂存的主备vnf切换技术 |
CN109086292B (zh) * | 2018-06-11 | 2023-11-28 | 平安科技(深圳)有限公司 | 一种数据库的切换方法及系统 |
CN109308227B (zh) * | 2018-08-24 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 故障检测控制方法及相关设备 |
CN110896408B (zh) * | 2018-09-13 | 2021-08-13 | 华为技术有限公司 | 一种数据处理方法及服务器集群 |
CN109542682B (zh) * | 2018-11-16 | 2021-03-30 | 上海达梦数据库有限公司 | 一种数据备份方法、装置、设备和存储介质 |
CN109981777A (zh) * | 2019-03-27 | 2019-07-05 | 深圳市网心科技有限公司 | 基于cdn的副本维护方法、服务器、副本存储节点以及系统 |
CN110427383A (zh) * | 2019-05-13 | 2019-11-08 | 国网冀北电力有限公司 | 基于数据冗余的mysql集群在线数据重分布方法及相关设备 |
CN110287164B (zh) * | 2019-06-28 | 2021-07-16 | 联想(北京)有限公司 | 一种数据恢复方法、装置及计算机设备 |
CN111176900A (zh) * | 2019-12-30 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 一种分布式存储系统及其数据恢复方法、装置和介质 |
CN111581013A (zh) * | 2020-03-18 | 2020-08-25 | 宁波送变电建设有限公司永耀科技分公司 | 基于元数据和影子文件的系统信息备份与重构方法 |
CN113515570B (zh) * | 2020-04-10 | 2024-01-05 | 广州睿帆科技有限公司 | 一种分布式数据库数据复制方法及装置 |
CN112463437B (zh) * | 2020-11-05 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 存储集群系统离线节点的业务恢复方法、系统及相关组件 |
CN113553217A (zh) * | 2021-07-08 | 2021-10-26 | 广州炒米信息科技有限公司 | 数据恢复方法、装置、存储介质及计算机设备 |
CN113485872B (zh) * | 2021-07-14 | 2024-10-01 | 北京金山云网络技术有限公司 | 故障处理方法、装置及分布式存储系统 |
CN114691423B (zh) * | 2022-03-11 | 2024-09-20 | 北京星辰天合科技股份有限公司 | 全量恢复的方法和装置、存储介质和处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412799A (zh) * | 2013-07-26 | 2013-11-27 | 华为技术有限公司 | 数据恢复方法、数据恢复设备和分布式存储系统 |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN104376109A (zh) * | 2014-11-28 | 2015-02-25 | 国家电网公司 | 一种基于数据分布库的多维度数据分布方法 |
CN105549905A (zh) * | 2015-12-09 | 2016-05-04 | 上海理工大学 | 一种多虚拟机访问分布式对象存储系统的方法 |
CN105550229A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统数据修复的方法和装置 |
-
2016
- 2016-09-24 CN CN201610849051.0A patent/CN107870829B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN103412799A (zh) * | 2013-07-26 | 2013-11-27 | 华为技术有限公司 | 数据恢复方法、数据恢复设备和分布式存储系统 |
CN104376109A (zh) * | 2014-11-28 | 2015-02-25 | 国家电网公司 | 一种基于数据分布库的多维度数据分布方法 |
CN105550229A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统数据修复的方法和装置 |
CN105549905A (zh) * | 2015-12-09 | 2016-05-04 | 上海理工大学 | 一种多虚拟机访问分布式对象存储系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107870829A (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870829B (zh) | 一种分布式数据恢复方法、服务器、相关设备及系统 | |
CN109729129B (zh) | 存储集群系统的配置修改方法、存储集群及计算机系统 | |
US10817478B2 (en) | System and method for supporting persistent store versioning and integrity in a distributed data grid | |
CN107291787B (zh) | 主备数据库切换方法和装置 | |
US7552358B1 (en) | Efficient backup and restore using metadata mapping | |
US7779295B1 (en) | Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints | |
WO2017128764A1 (zh) | 基于缓存集群的缓存方法和系统 | |
US8359493B2 (en) | Mechanism to provide assured recovery for distributed application | |
WO2021136422A1 (zh) | 状态管理方法、主备应用服务器的切换方法及电子设备 | |
JP2006023889A (ja) | リモートコピーシステム及び記憶装置システム | |
JP2008181274A (ja) | 管理装置および管理方法 | |
JP5292351B2 (ja) | メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム | |
US10282256B1 (en) | System and method to enable deduplication engine to sustain operational continuity | |
CN115858236A (zh) | 一种数据备份方法和数据库集群 | |
US11835990B2 (en) | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors | |
US10078558B2 (en) | Database system control method and database system | |
CN113986450A (zh) | 一种虚拟机备份方法及装置 | |
CN116389233B (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
US11748020B2 (en) | Reestablishing redundancy in redundant storage | |
JP2015095015A (ja) | データ配置方法、データ配置プログラムおよび情報処理システム | |
WO2007028249A1 (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster with collision monitoring | |
JP2000057030A (ja) | 2重更新を行うデータベースを有するクライアントサーバーシステム | |
JP2012022379A (ja) | 分散トランザクション処理システム、装置、方法およびプログラム | |
US7543017B1 (en) | Cluster file system node failure file recovery by reconstructing file state | |
CN118626507A (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 |