一种数据恢复方法和装置与流程

文档序号:18101254发布日期:2019-07-06 11:22阅读:226来源:国知局
一种数据恢复方法和装置与流程

本发明涉及数据库领域,尤其涉及一种数据恢复方法和装置。



背景技术:

在分布式数据库系统中,为了提高物理节点上数据分片的容灾能力,通常会在多个不同的物理节点上设置多个副本,在工作过程中主本和副本需要保持同步,多副本的存在是提升一个分布式数据库系统可靠性、可用性、性能以及可扩展性的必要手段。业界实现主本和副本之间的复制方式有3种:全同步复制,半同步复制,异步复制。采用全同步复制虽然能保证副本间的一致性,但影响可用性,较大限制分区容错性,并且增加请求处理时延。半同步复制技术相对异步复制,完成单条事务增加额外的等待延迟,相对全同步复制,重演会有延迟,而且从节点失效,或者主从间网络异常,会导致主点被冻结。因此对于时延要求很高的分布式数据库系统一般采用异步。异步同步的方式牺牲部分副本间的一致性,而且在故障时可能导致短暂少量的数据丢失,但有具备较好的可用性和分区容错性。

在物理节点集群中某个物理节点发生故障后,元数据服务器根据发生故障的数据分片的副本,将新主本切换到其他副本节点。由于在异步复制场景下,由于消息发出后不等待接收直接返回的,如果存在网络时延、闪断等各种原因,将可能导致各个副本之间进度不一致。在分布式数据库系统中的物理节点发生故障的情况下,如何恢复和同步物理节点上数据分片的数据是目前研究的热点。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种分布式数据库系统中数据恢复方法,实现了在物理节点发生故障的情况下,能快速恢复故障的物理节点上的数据,减少数据丢失。

第一方面,本申请提供的一种数据恢复方法,分布式数据库系统包括物理节点集群和数据恢复装置(以下简称装置),装置用于管理物理节点集群,物理节点集群包括一个或多个物理节点。在物理节点集群中的物理节点发生故障的情况下,将该物理节点移除出物理节点集群。确定物理节点上主本数据分片关联的m个副本数据分片,m个副本数据分片分别位于不同的物理节点,m为大于0的整数;确定m个副本数据分片各自对应的判定因子参数值中的最大值,其中,判定因子参数值由至少一个因子参数值加权平均得到,至少一个因子参数值包括dcn(datachangenumber,数据变更序号);判断主本数据分片的判定因子参数值和最大值之间的差值是否小于预设值,若为是,选择最大值对应的副本数据分片为新的主本数据分片,以及将m个符号数据分片中其他副本数据分片和新的主本数据分片进行同步。

其中,判定因子由至少一个因子参数值加权平均得到,各个因子参数值的权重可以为预存储或预配置的。主本数据分片表示主本状态的数据分片,副本数据分片表示副本状态的数据分片,一个主本数据分片关联至少一个副本数据分片,数据分片表示业务数据的集合,例如:不同的数据分片对应不同类型的业务数据。一个物理节点上部署至少一个主本数据分片,一个主本数据分片和关联的至少一个副本数据分片可以位于不同的物理节点上,以提高可靠性。

实施上述实施例,在物理节点发生故障的情况下,确定物理节点上待恢复的主本数据分片关联的至少一个副本数据分片,确定至少一个副本数据分片各自的判定因子参数值的最大值,在最大值和主本数据分片的判定因子参数值之间的差值小于预设值的情况下,选择最大值对应的副本数据分片最为新的主本数据分片,同时指示至少一个副本数据分片中其他副本数据分片与新的主本数据分片之间进行日志同步,使各个副本数据分片的日志和新的主本数据分片的日志保持同步,这样能快速的对故障的物理节点上主本数据分片进行数据恢复,同时减少数据丢失。

在一种可能的设计中,还包括:在主本数据分片的判定因子参数值和最大值之间的差值不小于预设值的情况下,将m个副本数据分片设置为等待恢复状态;

在发生故障的物理节点恢复正常的情况下,将该物理节点重新加入到物理节点集群中;丢弃m个副本数据分片,例如:删除或冻结m个副本数据分片。在物理节点集群中重新创建m个新的副本数据分片;m个新的副本数据分片位于不同的物理节点,且m个新的副本数据分片对应的m个物理节点不包括发生故障的物理节点。

在一种可能的设计中,还包括:

接收物理节点集群中各个物理节点通过心跳消息上报的数据分片的至少一个因子参数值。

其中,对于物理节点集群中的每个物理节点,物理节点周期性的向装置上报部署的各个数据分片(主本数据分片和副本数据分片)的至少一个因子参数值,装置接收和存储物理节点上报的每个数据分片的至少一个因子参数值。

在一种可能的设计中,至少一个因子参数值还包括影响业务记录数量和/或影响表数量。

在一种可能的设计中,还包括:向应用客户端发送所述m个符号数据分片的标识,以通知所述应用客户端所述m个副本数据分片不可用。

第二方面,本申请提供了一种数据恢复装置,包括:

处理单元,用于在物理节点集群中物理节点发生故障的情况下,将所述物理节点移除出所述物理节点集群;

所述处理单元,还用于确定所述物理节点上主本数据分片关联的m个副本数据分片;其中,所述m个副本数据分片分别位于不同的物理节点,m为大于0的整数;

所述处理单元,还用于确定所述m个副本数据分片各自的判定因子参数值中的最大值;其中,判定因子参数值由至少一个因子参数值加权平均得到,至少一个因子参数值包括数据变更序号dcn;

判断单元,用于判断所述主本数据分片的判定因子参数值和所述最大值之间的差值是否小于预设值;

同步单元,用于若所述判断单元的判断结果为是,选择所述最大值对应的副本数据分片为新的主本数据分片,以及将所述m个副本数据分片中的其他副本数据分片和所述新的主本数据分片进行日志同步。

在一种可能的设计中,处理单元,还用于若所述判断单元的判断结果为否,将所述m个副本数据分片设置为等待恢复状态;

所述处理单元,还用于在所述物理节点恢复正常的情况下,将所述物理节点加入到所述物理节点集群中;

所述处理单元,还用于丢弃所述m个副本数据分片;

所述处理单元,还用于在所述物理节点集群中不同的物理节点上重新创建m个新的副本数据分片;其中,所述m个新的副本数据分片对应的m个物理节点不包括所述物理节点;

所述同步单元,还用于将所述m个新的副本数据分片和所述主本数据分片进行日志同步。

在一种可能的设计中,还包括:

接收单元,用于接收所述物理节点集群中各个物理节点通过心跳消息上报的数据分片的至少一个因子参数值。

在一种可能的设计中,至少一个因子参数值还包括影响业务记录数量和/影响表数量。

在一种可能的设计中,还包括:

发送单元,用于向应用客户端发送所述m个副本数据分片的标识,以通知所述应用客户端所述m个副本数据分片不可用。

第三方面,本发明实施例提供了一种数据恢复装置,所述数据恢复装置包括:接收器、发射器、存储器和处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,执行如第一方面或第一方面各个可能的实施方式中的方法。

基于同一发明构思,由于该装置解决问题的原理以及有益效果可以参见上述第一方面和各中可能的方法实施方式以及所带来的有益效果,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

本申请的又一方面提了供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面各个可能的实施方式中的方法。

本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面各个可能的实施方式中的方法。

附图说明

为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。

图1是本发明实施例提供的一种分布式数据库系统的结构示意图;

图2是本发明实施例提供的一种数据恢复方法的流程示意图;

图3是本发明实施例提供的一种数据恢复方法的另一流程示意图;

图4是本发明实施例提供的一种物理节点上数据恢复的原理示意图;

图5是本发明实施例提供的一种物理节点上数据恢复的另一原理图;

图6是本发明实施例提供的一种物理节点上数据恢复的另一原理图;

图7是本发明实施例提供的一种数据恢复装置的结构示意图;

图8是本发明实施例提供的一种数据恢复装置的另一结构示意图。

具体实施方式

下面结合本发明实施例中的附图对本发明实施例进行描述。

图1为本发明实施例提供的一种分布式数据库系统的结构示意图,所述分布式数据库系统包括多个应用客户端、数据恢复装置和多个物理节点,本实施例的数据恢复装置可以称为元数据服务子系统、管理节点、管理服务器或其他名称。每个物理节点中设置有多个数据分片,每个物理节点中的数据分片的类型为主本数据分片和副本数据分片,通常情况下,一个主本数据分片会关联多个副本数据分片,主本数据分片和关联的副本数据分片分别部署在不同的物理节点上,以提高数据的容灾能力。应用客户端用于访问物理节点上的数据分片,应用客户端包括但不限于个人电脑、移动终端、个人数字助理、车载设备或其他设备等。其中,每个物理节点中存储数据分片的装置可以为存储阵列,存储阵列可以blockio接口与物理节点进行通信。物理节点可采用小型机、x86平台的服务器、pcserver等实现。

多个应用客户端和数据恢复装置可基于ip协议进行通信,例如tcpip协议或udp协议等,数据恢复装置和多个物理节点之间也可基于ip协议进行通信。

数据恢复装置可以独立于物理节点部署,也可以部署在各个物理节点中。数据恢复装置主要的功能如下:

元数据管理:负责定义和维护元数据信息及元数据间的关系。对于本发明实施例,主要定义表结构、数据类型和数据库控制功能等database级元数据,及数据分片、物理节点映射关系等分布式元数据。本发明中在元数据中增加了每个物理节点节点上数据分片的dcn。

路由管理:负责管理业务对象的路由数据(数据分片与物理节点间的映射关系,调用元数据定义单元接口)。

主备管理:当部署主本数据分片的物理节点异常时,(基于数据分片)决策选择合适的副本数据分片为新的主本数据分片,如果主备管理决策为等待持久化恢复,则主备管理将故障的主本数据分片关联的所有副本数据分片设置为等待恢复状态;本发明实施例中主备管理增加了根据元数据决策管理机制;

故障检测:监控物理节点是否发生故障或者异常(调用通信服务单元,获取各物理节点的信息)。

故障恢复:负责物理节点的故障相关的处理和自恢复处理。也包括元数据节点(数据恢复装置)自身的故障恢复。

复制管理:定义和管理各数据分片的主副本复制关系,并负责复制完整性的管控(调用元数据定义单元接口)。复制管理单元通过下发复制请求给源物理节点代理,由源物理节点完成业务数据到目标物理节点的复制。本发明中在故障的物理节点主动上报后,负责重新激活故障的主本数据分片及重新创建副本数据分片的管理;

元数据同步/持久化:负责将元数据定义信息同步给数据节点、应用客户端driver和元数据服务子系统(数据恢复装置)的slaver节点(调用通信服务单元接口)。元数据变更时,需要将变更信息通知到上述网元。并对元数据进行持久化,便于保证数据的高可靠性。

通信服务:属于基础单元。负责与周边网元(物理节点、应用客户端driver和元数据服务子系统的slaver节点)的网络通信能力。

请参见图2,图2是本发明实施例提供的一种数据恢复方法的流程示意图,该方法包括但不限于如下步骤:

s201、数据恢复装置检测物理节点发生故障。

具体的,数据恢复装置为分布式数据库系统中用于管理物理节点集群中的各个物理节点,物理节点集群包括至少一个物理节点,物理节点上部署至少一个数据分片,数据分片表示物理节点上业务数据的集合,物理节点上的数据分片根据备份的需要分为主本数据分片和副本数据分片,主本数据分片表示主本状态的数据分片,副本数据分片表示副本状态的数据分片。一个主本数据分片关联至少一个副本数据分片,主本数据分片和关联的至少一个副本数据分片位于不同的物理节点,以提高数据的可靠性。物理节点上可包括多个主本数据分片,本发明实施例针对其中的任意一个主本数据分片的恢复过程进行说明。

其中,数据恢复装置检测物理节点发生故障的方法可以是:物理节点周期性的向数据恢复装置发送心跳消息,数据恢复装置在预设时长内未接收到物理节点发送的心跳消息的情况下,确定该物理节点发生故障。

s202、数据恢复装置向物理节点发送移除指示,物理节点接收来自数据恢复装置的移除指示。

具体的,移除指示用于指示发生故障的物理节点移除出物理节点集群。

s203、数据恢复装置确定物理节点上主本数据分片关联的m个副本数据分片各自的判定因子参数值中的最大值。

具体的,主本数据分片为发生故障的物理节点上任意一个主本状态的数据分片,数据恢复装置根据预存储或预配置的映射关系获取主本数据分片关联的m个副本数据分片,然后数据恢复装置获取m个副本数据分片各自的判定因子参数值,判定因子参数值由至少一个因子参数值加权平均得到,至少一个因子参数值包括dcn,每个因子的权重可以预存储或预配置的,权重的具体值本实施例不作限制。其中,映射关系包括但不限于数据分片和物理节点的映射关系,以及主本数据分片和副本数据分片的映射关系。

在一种可能的实施方式中,数据恢复装置接收物理节点集群中各个物理节点通过心跳消息上报的数据分片的至少一个因子参数值,数据恢复装置每接收到一次因子参数值,将接收到的因子参数值覆盖已存储的因子参数值,确保存储的因子参数值为最新的。

例如:至少一个因子参数值包括dcn、影响业务记录数量和影响表数量,物理节点周期性的向数据恢复装置发送携带该物理节点的各个数据分片的dcn、影响业务记录数量和影响表数量的心跳消息,数据恢复装置接收该物理节点上报的心跳消息,将心跳消息中携带的该物理节点的各个数据分片的dcn、影响业务记录数量和影响表数量覆盖已存储的该物理节点的各个数据分片的dcn、影响业务记录数量和影响表业务数量。

其中,物理节点上为每个数据分片维护有一个dcn,dcn表示数据分片对应的最新的日志的序号,日志表示针对数据分片的操作过程的记录,dcn一般从1开始编号,针对数据分片的每次事务操作,都会生成一个日志,并该数据分片当前的dcn的基础上加1得到更新的dcn。

其中,数据恢复装置根据存储的数据确定物理节点上主本数据分片关联的m个副本数据分片各自的判定因子参数值中,以及确定m个副本数据分片各自的判定因子参数值中的最大值。

s204、数据恢复装置判断主数据分片的判定因子参数值和最大值之间的差值小于预设值。

具体的,数据恢复装置判断主本数据分片的判定因子参数值和s203中确定的最大值计算二者之间的差值,例如:将主本数据分片的判定因子参数值减去最大值得到差值。在差值小于预设值的情况下,执行s204。其中,预设值为预存储或预配置的值,具体值的大小本实施例不作限制。

s205、选择最大值对应的副本数据分配为新的主本数据分片。

具体的,数据恢复装置确定m个副本数据分配中最大值对应的副本数据分片,将该副本数据分片作为新的主本数据分片,将新的主本数据分片和m-1个副本数据分片之间建立关联关系并存储该关联关系。可选的,数据恢复装置可以在新的数据分片和m-1个副本数据分片对应的m个物理节点之外的物理节点上创建1个副本数据分片,将创建的副本数据分片和新的主本数据分片保持同步,同步后创建的副本数据分片的dcn和新的主本数据分片保持一致,此时新的主本数据分片和m个副本数据分片关联。

s206、数据恢复装置执行数据同步过程。

具体的,m个副本数据分片中除新的主本数据分片之外的其他数据分片为m-1个副本数据分片,将m-1个副本数据分片和新的主本数据分片之间进行日志同步和日志重演,使m-1个副本数据分片的数据和新的主本数据分片的数据保持同步,同步后m-1个副本数据分片的dcn和新的主本数据分片的dcn也相同。

可选的,在发生故障的物理节点恢复正常的情况下,数据恢复装置将该物理节点加入到物理节点集群中,并通知其他网元(例如应用客户端)物理节点上线,数据恢复装置同时需要删除该物理节点上旧的主本数据分片。

实施上述实施例,在物理节点发生故障的情况下,确定物理节点上待恢复的主本数据分片关联的至少一个副本数据分片,确定至少一个副本数据分片各自的判定因子参数值的最大值,在最大值和主本数据分片的判定因子参数值之间的差值小于预设值的情况下,选择最大值对应的副本数据分片最为新的主本数据分片,同时指示至少一个副本数据分片中其他副本数据分片与新的主本数据分片之间进行日志同步,使各个副本数据分片的日志和新的主本数据分片的日志保持同步,这样能快速的对故障的物理节点上主本数据分片进行数据恢复,同时减少数据丢失。

参见图3,为本发明实施例提供的一种数据恢复方法的另一流程示意图,在本发明实施例中,所述方法包括:

s301、数据恢复装置检测到物理节点发生故障。

具体过程可参照图2中的s201的描述,此处不再赘述。

s302、数据恢复装置向物理节点发送移除指示,物理节点接收来自数据恢复装置的移除指示。

具体过程可参照图2中的s202的描述,此处不再赘述。

s303、数据恢复装置确定物理节点上主本数据分片关联的m个副本数据分片各自的判定因子参数值中的最大值。

具体过程可参照图2中的s203,此处不再赘述。

s304、数据恢复装置判断主本数据分片的判定因子参数值和最大值之间的差值不小于预设值。

具体的,数据恢复装置判断主本数据分片的判定因子参数值和s303中确定的最大值之间的差值,例如:将主本数据分片的判定因子参数值减去最大值得到差值。在差值不小于预设值的情况下,执行s305。其中,预设值为预存储或预配置的值,具体值的大小本实施例不作限制。

s305、数据恢复装置将m个副本数据分片设置为等待恢复状态。

具体的,数据恢复装置将主本数据分片关联的m个副本数据分片设置为等待恢复状态,等待恢复状态表示数据分片不可用,无法正常响应应用客户端的业务请求。可选的,数据恢复装置可以将m个副本数据分片的标识发送给应用客户端,以通知应用客户端m个副本数据分片不可用。

s306、数据恢复装置检测到物理节点恢复正常。

具体的,物理节点通过人工恢复或其他方式恢复正常的情况下,数据恢复装置可以接收到该物理节点周期性的发送的心跳消息,心跳消息中携带物理节点上各个数据分片的至少一个因子参数值。

s307、数据恢复装置向物理节点发送加入指示,物理节点接收来自数据恢复装置的加入指示。

s308、数据恢复装置丢弃m个副本数据分片。

具体的,数据恢复装置丢弃m个副本数据分片,例如:删除或冻结m个副本数据分片。

s309、创建m个新的副本数据分片。

具体的,数据恢复装置在不同的物理节点上创建m个新的副本数据分片,将m个新的副本数据分片和新的主本数据分片建立关联关系,以及存储关联关系。m个新的副本数据分片对应的m个物理节点不包括发生故障的物理节点,例如:m个新的副本数据分片和m个原来的副本数据的物理节点相同。

s310、数据恢复装置执行数据同步的过程。

具体的,数据恢复装置将m个新的副本数据分片和主本数据分片之间进行日志同步和日志重演,使m个新的副本数据分片和主本数据分片之间的数据保持同步,同步后m个新的副本数据分片的dcn和主本数据分片的dcn也相同。

实施上述实施例,在物理节点发生故障的情况下,确定物理节点上待恢复的主本数据分片关联的至少一个副本数据分片,确定至少一个副本数据分片各自的判定因子参数值的最大值,在最大值和主本数据分片的判定因子参数值之间的差值不小于预设值的情况下,不进行主本数据分片的切换,等待发生故障的物理节点恢复后在进行数据恢复,这样能减少数据丢失。

参见图4,为本发明实施例的一种物理节点集群的结构示意图,在本发明实施例中,物理集群包括物理节点1、物理节点2、物理节点3和物理节点4,每个物理节点设置有6个数据分片。在以下的描述中,主本数据分片简称为“主本”,副本数据分片简称为“副本”,在如3中有阴影的矩形框表示主本,没有阴影的矩形框表示副本。可以看出,物理节点1上部署有主本1、主本2、副本3b、副本4b、副本5b、副本6a,物理节点2上部署有主本3、主本4、副本1a、副本6a、副本7a、副本7b,物理节点3上部署有主本5、主本6、副本1b、副本2a、副本3a、副本8a,物理节点4上部署有主本7、主本8、副本2b、副本3b、副本4a、副本5a。主本1、副本1a和副本1b具有关联关系,主本1、副本1a和副本1b部署在不同的物理节点上,主本1的dcn=1001,副本1a的dcn=1000,副本1b的dcn=900。主本2、副本2a和副本2b具有关联关系,主本2、副本2a和副本2b部署在不同的物理节点上,主本2的dcn=801,副本2a的dcn=700,副本2b的dcn=701。主本3、副本3a和副本3b具有关联关系,主本3、副本3a和副本3b部署在不同的物理节点上。主本4、副本4a和副本4b具有关联关系,主本4、副本4a和副本4b部署在不同的物理节点上。主本5、副本5a和副本5b具有关联关系,主本5、副本5a和副本5b部署在不同的物理节点上。主本6、副本6a和副本6b具有关联关系,主本6、副本6a和副本6b部署在不同的物理节点上。主本7、副本7a和副本7b具有关联关系,主本7、副本7a和副本7b部署在不同的物理节点上。主本8、副本8a和副本8b具有关联关系,主本8、副本8a和副本8b部署在不同的物理节点上。

在本实施例中,至少一个因子参数值包括dcn,物理节点1、物理节点2、物理节点3和物理节点4周期性的向数据恢复装置发送携带各个数据分片的dcn的心跳消息,数据恢复装置存储接收到的各个数据分片的dcn。

参见图5所示,数据恢复装置根据心跳机制发生物理节点集群中的物理节点1发生故障的情况下,数据恢复装置将物理节点1从物理节点集群中移除。数据恢复装置根据预存储的映射关系确定物理节点1中部署有主本1和主本2,启动主本1和主本2的数据恢复流程。数据恢复装置根据预定义的元数据信息查询物理节点1上的主本、副本所在的物理节点、工作状态以及dcn。例如:物理节点1对应的元数据信息如表1所示:

表1

主本1和主本2的数据恢复过程:数据恢复装置获取主本1关联的副本1a的dcn=1000,副本1b的dcn=1000,数据恢复装置确定副本1a的dcn和副本1b的dcn中的最大值为1000,数据恢复装置获取主本1的dcn=1001,数据恢复装置比较主本1的dcn=1001和1000的差值为1,假设预存储或预配置的预设值为5,上述计算得到的差值1<5,数据恢复装置选择副本1b作为新的主本(主本1a),此时主本1a仅关联副本1b。数据恢复装置可以在物理节点4上为主本1a创建一个副本1a`,数据恢复装置将副本1a`和副本1b进行日志同步和日志重演,使副本1a`和副本1b的数据与主本1a保持一致,同步完成后副本1a`和副本1b的dcn和主本1a相同,均为1000。

数据恢复装置获取主本2关联的副本2a的dcn=700,副本2b的dcn=701,两个dcn中的最大值为701,数据恢复装置获取主本2的dcn=801,数据恢复装置比较主本2的dcn=801和701之间的差值为100,假设预配置或预存储的预设值为5,上述计算得到的差值100>5,数据恢复装置将副本2a和副本2b设置为等待恢复状态(如图4的斜线框)。

参见图6所示,数据恢复装置检测待物理节点1恢复正常状态,数据恢复装置将物理节点1加入到物理节点集群,数据恢复装置删除或冻结物理节点1中的数据分片1。另外,数据恢复装置删除或冻结主本2关联的副本2a和副本2b,数据恢复装置在物理节点3中重新创建1个副本2a`,以及在物理节点4中重新创建1个副本2b`,将主本2和副本2a`和副本2b`之间建立关联关系。数据恢复装置将副本2a`和副本2b`与主本1进行日志同步和日志重新,使副本2a`和副本2b`与主本1的数据保持同步,同步完成后,副本2a`和副本2b`与主本1的dcn相同,都为801。

在图3至6所描述的方法中,在物理节点发生故障的情况下,确定物理节点上待恢复的主本数据分片关联的至少一个副本数据分片,确定至少一个副本数据分片各自的判定因子参数值的最大值,在最大值和主本数据分片的判定因子参数值之间的差值不小于预设值的情况下,不进行主本数据分片的切换,等待发生故障的物理节点恢复后在进行数据恢复,这样能减少数据丢失。

上述详细阐述了本发明实施例的方法,下面提供了本发明实施例的装置。

请参见图7,图7是本发明实施例提供的一种数据恢复装置的结构示意图,该数据恢复装置可以包括处理单元701、判断单元702和同步单元703,其中,各个单元的详细描述如下。

处理单元701,用于在物理节点集群中物理节点发生故障的情况下,将所述物理节点移除出所述物理节点集群。

所述处理单元701,还用于确定所述物理节点上主本数据分片关联的m个副本数据分片;其中,所述m个副本数据分片分别位于不同的物理节点,m为大于0的整数。

所述处理单元701,还用于确定所述m个副本数据分片各自的判定因子参数值中的最大值;其中,判定因子参数值由至少一个因子参数值加权平均得到,至少一个因子参数值包括数据变更序号dcn。

判断单元702,用于判断所述主本数据分片的判定因子参数值和所述最大值之间的差值是否小于预设值;

同步单元703,用于若所述判断单元的判断结果为是,选择所述最大值对应的副本数据分片为新的主本数据分片,以及将所述m个副本数据分片中的其他副本数据分片和所述新的主本数据分片进行日志同步。

可选的,所述处理单元701,还用于若所述判断单元的判断结果为否,将所述m个副本数据分片设置为等待恢复状态;

所述处理单元701,还用于在所述物理节点恢复正常的情况下,将所述物理节点加入到所述物理节点集群中;

所述处理单元701,还用于丢弃所述m个副本数据分片;

所述处理单元701,还用于在所述物理节点集群中不同的物理节点上重新创建m个新的副本数据分片;其中,所述m个新的副本数据分片对应的m个物理节点不包括所述物理节点;

所述同步单元703,还用于将所述m个新的副本数据分片和所述主本数据分片进行日志同步。

可选的,数据恢复装置7还包括:

接收单元,用于接收所述物理节点集群中各个物理节点通过心跳消息上报的数据分片的至少一个因子参数值。

可选的,至少一个因子参数值还包括影响业务记录数量和/影响表数量。

可选的,数据恢复装置7还包括:

发送单元,用于向应用客户端发送所述m个副本数据分片的标识,以通知所述应用客户端所述m个副本数据分片不可用。

本发明实施例和图2和3的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图2和3的方法实施例的描述,此处不再赘述。

所述数据恢复装置7也可以为实现相关功能的现场可编程门阵列(field-programmablegatearray,fpga),专用集成芯片,系统芯片(systemonchip,soc),中央处理器(centralprocessorunit,cpu),网络处理器(networkprocessor,np),数字信号处理电路,微控制器(microcontrollerunit,mcu),还可以采用可编程控制器(programmablelogicdevice,pld)或其他集成芯片。

请参见图8,图8是本发明实施例提供的一种数据恢复装置8,以下简称装置8,该装置8包括处理器801、存储器802、接收器803、发送器804,所述处理器801、存储器802和接收器803和发送器804通过总线相互连接。

存储器802包括但不限于是随机存储记忆体(英文:randomaccessmemory,简称:ram)、只读存储器(英文:read-onlymemory,简称:rom)、可擦除可编程只读存储器(英文:erasableprogrammablereadonlymemory,简称:eprom)、或便携式只读存储器(英文:compactdiscread-onlymemory,简称:cd-rom),该存储器802用于相关指令及数据。收发器803用于接收和发送数据。

处理器801可以是一个或多个中央处理器(英文:centralprocessingunit,简称:cpu),在处理器801是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

该装置8中的处理器801用于读取所述存储器802中存储的程序代码,执行以下操作:

在物理节点集群中物理节点发生故障的情况下,将所述物理节点移除出所述物理节点集群;

确定所述物理节点上主本数据分片关联的m个副本数据分片各自的判定因子参数值中的最大值;其中,判定因子参数值由至少一个因子参数值加权平均得到,至少一个因子参数值包括数据变更序号dcn;

判断所述主本数据分片的判定因子参数值和所述最大值之间的差值是否小于预设值;

若为是,选择所述最大值对应的副本数据分片为新的主本数据分片,以及将所述m个副本数据分片中的其他副本数据分片和所述新的主本数据分片进行日志同步。

可选的,处理器801还用于执行:

若所述差值不小于预设值,将所述m个副本数据分片设置为等待恢复状态;

在所述物理节点恢复正常的情况下,将所述物理节点加入到所述物理节点集群中;

丢弃所述m个副本数据分片;

在所述物理节点集群中不同的物理节点上重新创建m个新的副本数据分片;其中,所述m个新的副本数据分片对应的m个物理节点不包括所述物理节点;

将所述m个新的副本数据分片和所述主本数据分片进行日志同步。

可选的,接收器803用于接收所述物理节点集群中各个物理节点通过心跳消息上报的数据分片的至少一个因子参数值。

可选的,至少一个因子参数值还包括影响业务记录数量和/或影响表数量。

可选的,发送器804用于向应用客户端发送所述m个副本数据分片的标识,以通知所述应用客户端所述m个副本数据分片不可用。

本发明实施例和图2和3的方法实施例基于同一构思,其带来的技术效果也相同,具体过程可参照图2和3的方法实施例的描述,此处不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1