一种节点宕机修复方法、装置、电子设备及可读存储介质转让专利

申请号 : CN201811270222.X

文献号 : CN111106947B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 申航高宇杨稼晟

申请人 : 北京金山云网络技术有限公司北京金山云科技有限公司

摘要 :

本发明实施例提供了一种节点宕机修复方法、装置、电子设备及可读存储介质。该方法包括:当检测到第一节点或第二节点宕机时,重启第一节点和第二节点中宕机的节点;其中,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点;在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。应用本发明实施例,可以在单主从服务系统中的第一节点或第二节点宕机时,完成节点宕机修复,提高了单主从服务系统中数据的安全性。

权利要求 :

1.一种节点宕机修复方法,其特征在于,应用于单主从服务系统中的管理节点,所述单主从服务系统中还包括:第一节点和第二节点;所述第一节点被设置为从节点且开启了数据持久化机制;所述第二节点被设置为主节点且关闭了数据持久化机制;所述方法包括:当检测到所述第一节点或所述第二节点宕机时,重启所述第一节点和所述第二节点中宕机的节点;其中,所述第一节点和所述第二节点中重启后的节点作为从节点,所述第一节点和所述第二节点中未执行重启操作的节点作为主节点;

在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成;

在将所述未执行重启操作的节点中的数据复制到所述重启后的节点,并将所述重启后的节点中存储的数据进行数据持久化的过程中,检测所述未执行重启操作的节点是否宕机;

在所述未执行重启操作的节点宕机的情况下,停止运行所述重启后的节点;

将所述第一节点开启的数据持久化机制所产生的持久化数据,写入至所述未执行重启操作的节点;

判断写入至所述未执行重启操作的节点的持久化数据的信息摘要算法MD5值与所述第一节点所开启的数据持久化机制所产生的持久化数据的MD5值是否匹配;

若不匹配,重新执行所述将所述第一节点开启的数据持久化机制所产生的持久化数据,写入至所述未执行重启操作的节点的步骤;

若匹配,重启所述未执行重启操作的节点和停止运行后的所述重启后的节点。

2.根据权利要求1所述的方法,其特征在于,所述重启所述第一节点和所述第二节点中宕机的节点的步骤,包括:判断所述第一节点和所述第二节点中宕机的节点是否开启了数据持久化机制;

若没有开启数据持久化机制,给所述第一节点和所述第二节点中宕机的节点开启数据持久化机制,并重启所述第一节点和所述第二节点中宕机的节点;

若开启了数据持久化机制,重启所述第一节点和所述第二节点中宕机的节点。

3.根据权利要求1所述的方法,其特征在于,在所述重启所述第一节点和所述第二节点中宕机的节点的步骤之前,所述方法还包括以下步骤至少之一:当检测到所述第一节点未宕机且所述第二节点宕机时,将所述第一节点升级为主节点,将所述第二节点修改为从节点;

当检测到所述第一节点宕机且所述第二节点未宕机时,维持所述第一节点为从节点、所述第二节点为主节点的状态。

4.根据权利要求1所述的方法,其特征在于,所述重启所述未执行重启操作的节点和停止运行后的所述重启后的节点,包括:判断所述未执行重启操作的节点是否开启了数据持久化机制;

在所述未执行重启操作的节点未开启数据持久化机制的情况下,给所述未执行重启操作的节点开启数据持久化机制,并触发所述重启所述未执行重启操作的节点和停止运行后的所述重启后的节点的步骤;

在所述未执行重启操作的节点开启了数据持久化机制的情况下,放弃给所述未执行重启操作的节点开启数据持久化机制,并触发所述重启所述未执行重启操作的节点和停止运行后的所述重启后的节点的步骤。

5.根据权利要求1‑3中任一项所述的方法,其特征在于,在所述重启所述第一节点和所述第二节点中宕机的节点的步骤之前,还包括:控制所述第一节点和所述第二节点中未宕机的节点关闭自身的写数据服务;

所述在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成的步骤,包括:在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,控制所述未执行重启操作的节点开启自身的写数据服务;在检测到所述未执行重启操作的节点开启所述写数据服务后,确定节点宕机修复完成。

6.根据权利要求1‑3中任一项所述的方法,其特征在于,所述在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成的步骤,包括:在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化的情况下,判断所述未执行重启操作的节点是否开启了数据持久化机制;

在所述未执行重启操作的节点开启了数据持久化机制的情况下,关闭所述未执行重启操作的节点所开启的数据持久化机制;

删除所述未执行重启操作的节点开启的数据持久化机制所产生的持久化数据,完成节点宕机修复。

7.根据权利要求1‑3中任一项所述的方法,其特征在于,所述第一节点和所述第二节点创建在不同的节点承建器上,所述节点承建器包括内核虚拟化LXC容器或虚拟机;

所述重启所述第一节点和所述第二节点中宕机的节点的步骤,包括:检测所述第一节点和所述第二节点中宕机节点的节点承建器是否宕机;若宕机,则重启或新建所述第一节点和所述第二节点中宕机节点的节点承建器;

运行所述第一节点和所述第二节点中宕机的节点。

8.一种节点宕机修复装置,其特征在于,应用于单主从服务系统中的管理节点,所述单主从服务系统中还包括:第一节点和第二节点;所述第一节点被设置为从节点且开启了数据持久化机制;所述第二节点被设置为主节点且关闭了数据持久化机制;所述装置包括:第一重启模块,用于当检测到所述第一节点或所述第二节点宕机时,重启所述第一节点和所述第二节点中宕机的节点;其中,所述第一节点和所述第二节点中重启后的节点作为从节点,所述第一节点和所述第二节点中未执行重启操作的节点作为主节点;

确定模块,用于在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成;

检测模块,用于在将所述未执行重启操作的节点中的数据复制到所述重启后的节点,并将所述重启后的节点中存储的数据进行数据持久化的过程中,检测所述未执行重启操作的节点是否宕机;

停止模块,用于当所述检测模块检测到所述未执行重启操作的节点宕机时,停止运行所述重启后的节点;

写入模块,用于在所述停止模块停止运行所述重启后的节点后,将所述第一节点开启的数据持久化机制所产生的持久化数据,写入至所述未执行重启操作的节点;

判断模块,用于当所述写入模块将所述第一节点开启的数据持久化机制所产生的持久化数据写入至所述未执行重启操作的节点时,判断写入至所述未执行重启操作的节点的持久化数据的MD5值与所述第一节点所开启的数据持久化机制所产生的持久化数据的MD5值是否匹配;

第一触发模块,用于当所述判断模块判断不匹配时,触发所述写入模块重新将所述第一节点开启的数据持久化机制所产生的持久化数据写入至所述未执行重启操作的节点;

第二触发模块,用于当所述判断模块判断匹配时,触发第二重启模块;

所述第二重启模块,用于在所述写入模块将所述第一节点开启的数据持久化机制所产生的持久化数据写入至所述未执行重启操作的节点时,重启所述未执行重启操作的节点和停止运行后的重启后的节点。

9.一种电子设备,其特征在于,所述电子设备为单主从服务系统中的管理节点所对应的设备,所述单主从服务系统中还包括:第一节点和第二节点;所述第一节点被设置为从节点且开启了数据持久化机制;所述第二节点被设置为主节点且关闭了数据持久化机制;所述电子设备包括处理器和存储器,其中:所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1‑7中任一所述的方法步骤。

10.一种可读存储介质,其特征在于,所述可读存储介质为电子设备中的可读存储介质;所述电子设备为单主从服务系统中的管理节点所对应的设备,所述单主从服务系统中还包括:第一节点和第二节点;所述第一节点被设置为从节点且开启了数据持久化机制;所述第二节点被设置为主节点且关闭了数据持久化机制;

所述可读存储介质内存储有计算机程序,所述计算机程序被所述电子设备的处理器执行时实现权利要求1‑7中任一所述的方法步骤。

说明书 :

一种节点宕机修复方法、装置、电子设备及可读存储介质

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种节点宕机修复方法、装置、电子设备及可读存储介质。

背景技术

[0002] 数据库是按照数据结构来组织、存储和管理数据的仓库。为保证数据库的高可用性,常常采用单主从服务系统来提供数据存取服务。其中,单主从服务系统中包含一个主节点、一个从节点和管理节点。主节点用于提供数据读取服务和数据写入服务;从节点用于对主节点上的数据进行备份;管理节点用于对主节点和从节点进行管理。这样,可以通过主节点和从节点来存储相同的数据,使得可以通过两份数据来保证数据的可靠性。
[0003] 但是,当单主从服务系统中的主节点或从节点宕机时,所存储的一份数据会丢失;此时,单主从服务系统中的数据缺少备份数据,使得数据的安全性降低。

发明内容

[0004] 本发明实施例的目的在于提供一种节点宕机修复方法、装置、电子设备及可读存储介质,以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而提高单主从服务系统中数据的安全性。具体技术方案如下:
[0005] 第一方面,本发明实施例提供了一种节点宕机修复方法,应用于单主从服务系统中的管理节点,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;该方法可以包括:当检测到第一节点或第二节点宕机时,重启第一节点和第二节点中宕机的节点;其中,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点;在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。
[0006] 可选地,重启第一节点和第二节点中宕机的节点的步骤,可以包括:判断第一节点和第二节点中宕机的节点是否开启了数据持久化机制;若没有开启数据持久化机制,给第一节点和第二节点中宕机的节点开启数据持久化机制,并重启第一节点和第二节点中宕机的节点;若开启了数据持久化机制,重启第一节点和第二节点中宕机的节点。
[0007] 可选地,在重启第一节点和第二节点中宕机的节点的步骤之前,该方法还可以包括以下步骤至少之一:当检测到第一节点未宕机且第二节点宕机时,将第一节点升级为主节点,将第二节点修改为从节点;当检测到第一节点宕机且第二节点未宕机时,维持第一节点为从节点、第二节点为主节点的状态。
[0008] 可选地,在本发明实施例中,该方法还可以包括:在将未执行重启操作的节点中的数据复制到重启后的节点,并将重启后的节点中存储的数据进行数据持久化的过程中,检测未执行重启操作的节点是否宕机;在未执行重启操作的节点宕机的情况下,停止运行重启后的节点;将第一节点开启的数据持久化机制所产生的持久化数据,写入至未执行重启操作的节点;重启未执行重启操作的节点和停止运行后的重启后的节点。
[0009] 可选地,在重启未执行重启操作的节点和停止运行后的重启后的节点的步骤之前,还可以包括:判断写入至未执行重启操作的节点的持久化数据的信息摘要算法MD5值与第一节点所开启的数据持久化机制所产生的持久化数据的MD5值是否匹配;若不匹配,重新执行将第一节点开启的数据持久化机制所产生的持久化数据,写入至未执行重启操作的节点的步骤;若匹配,触发重启未执行重启操作的节点和停止运行后的重启后的节点的步骤。
[0010] 可选地,触发重启未执行重启操作的节点和停止运行后的重启后的节点的步骤,可以包括:判断未执行重启操作的节点是否开启了数据持久化机制;在未执行重启操作的节点未开启数据持久化机制的情况下,给未执行重启操作的节点开启数据持久化机制,并触发重启未执行重启操作的节点和停止运行后的重启后的节点的步骤;在未执行重启操作的节点开启了数据持久化机制的情况下,放弃给未执行重启操作的节点开启数据持久化机制,并触发重启未执行重启操作的节点和停止运行后的重启后的节点的步骤。
[0011] 可选地,在重启第一节点和第二节点中宕机的节点的步骤之前,还可以包括:控制第一节点和第二节点中未宕机的节点关闭自身的写数据服务;在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成的步骤,包括:在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,控制未执行重启操作的节点开启自身的写数据服务;在检测到未执行重启操作的节点开启写数据服务后,确定节点宕机修复完成。
[0012] 可选地,在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成的步骤,可以包括:在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化的情况下,判断未执行重启操作的节点是否开启了数据持久化机制;在未执行重启操作的节点开启了数据持久化机制的情况下,关闭未执行重启操作的节点所开启的数据持久化机制;删除未执行重启操作的节点开启的数据持久化机制所产生的持久化数据,完成节点宕机修复。
[0013] 可选地,第一节点和第二节点创建在不同的节点承建器上,节点承建器包括内核虚拟化LXC容器或虚拟机;重启第一节点和第二节点中宕机的节点的步骤,可以包括:检测第一节点和第二节点中宕机节点的节点承建器是否宕机;若宕机,则重启或新建第一节点和第二节点中宕机节点的节点承建器;运行第一节点和第二节点中宕机的节点。
[0014] 第二方面,本发明实施例提供了一种节点宕机修复装置,应用于单主从服务系统中的管理节点,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;该装置可以包括:第一重启模块,用于当检测到第一节点或第二节点宕机时,重启第一节点和第二节点中宕机的节点;其中,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点;确定模块,用于在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。
[0015] 第三方面,本发明实施例提供了一种电子设备,电子设备为单主从服务系统中的管理节点所对应的设备,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;电子设备包括处理器和存储器,其中:存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一节点宕机修复方法的方法步骤。
[0016] 第四方面,本发明实施例提供了一种可读存储介质,可读存储介质为电子设备中的可读存储介质;电子设备为单主从服务系统中的管理节点所对应的设备,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;可读存储介质内存储有计算机程序,计算机程序被电子设备的处理器执行时上述任一节点宕机修复方法的方法步骤。
[0017] 第五方面,本发明实施例提供了一种包含指令的计算机程序产品,其可以在电子设备上运行,其中,电子设备为单主从服务系统中的管理节点所对应的设备,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;当其在电子设备上运行时,使得电子设备执行:上述任一项节点宕机修复方法的方法步骤。
[0018] 在本发明实施例中,单主从服务系统中包括:第一节点、第二节点和管理节点。并且,第一节点被设置为从节点且开启了数据持久化机制,第二节点被设置为主节点且关闭了数据持久化机制。其中,单主从服务系统中的管理节点在检测到第一节点或第二节点宕机时,可以重启第一节点和第二节点中宕机的节点。其中,在执行重启操作之后,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点。之后,管理节点可以在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而保证还能通过第一节点和第二节点对该单主从服务系统中的数据进行双份存储,实现了在不影响该单主从服务系统的服务性能的基础上,提高了单主从服务系统中数据的安全性。

附图说明

[0019] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1为本发明实施例提供的单主从服务系统的结构示意图;
[0021] 图2为本发明实施例提供的一种节点宕机修复方法的流程图;
[0022] 图3为本发明实施例提供的另一种节点宕机修复方法的流程图;
[0023] 图4为本发明实施例提供的一种节点宕机修复装置的结构示意图;
[0024] 图5为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0025] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026] 为了解决单主从服务系统中主节点或从节点宕机时,该系统中数据的安全性降低的问题,本发明实施例提供了一种节点宕机修复方法、装置、电子设备及可读存储介质。
[0027] 下面结合图1,先对本发明实施例中的单主从服务系统和本发明实施例涉及的技术术语进行解释。
[0028] 在本发明实施例中,单主从服务系统是数据库(例如redis数据库,一种开源的键值Key‑Value数据库)中用于提供数据存取服务的系统。其中,一个单主从服务系统中包括第一节点、第二节点和管理节点。并且,第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制。
[0029] 参见图1,一个单主从服务系统中包括主节点A、从节点a和管理节点;另一个单主从服务系统中包括主节点B、从节点b和管理节点;又一个单主从服务系统中包括主节点C、从节点c和管理节点。
[0030] 其中,图1中并未示出管理节点。本领域技术人员可以理解的是,上述示例中的单主从服务系统示例中的管理节点可以是除电子设备D1和电子设备D1之外的电子设备,而且,上述示例中的管理节点可以相同也可以不同。
[0031] 其中,主节点A和从节点a设置在不同的电子设备上。主节点B和从节点b也设置在不同的电子设备上。而且,主节点A和主节点B可以设置在同一电子设备D1上,从节点a和从节点b也可以设置在同一电子设备D2上,这是合理的。其中,本发明实施例中涉及的电子设备可以是移动设备,也可以是服务器,当然并不局限于此。
[0032] 另外,图1中示出的客户端1、客户端2和客户端3是与相应单主从服务系统中的主节点和从节点对应的、为客户提供服务的程序。此为现有技术,在此不做详述。
[0033] 在本发明实施例中,主节点是指安装在电子设备上、用于提供数据读取服务(即读数据服务)和数据写入服务(即写数据服务)等服务的应用程序。通常情况下,也可以将主节点理解为:能够提供数据读取服务(即读数据服务)和数据写入服务(即写数据服务)等服务的电子设备。而且,该主节点未开启(即关闭了)数据持久化机制。
[0034] 同理,从节点是指安装在电子设备上的、用于对主节点所缓存的数据进行备份的应用程序。通常情况下,也可以将从节点理解为:能够对主节点所缓存的数据进行备份的电子设备。而且,该从节点开启了数据持久化机制。
[0035] 另外,管理节点是指安装在电子设备上的、用于对单主从服务系统中的主节点和从节点进行管理的应用程序。通常情况下,也可以将管理节点理解为:能够对单主从服务系统中的主节点和从节点进行管理的电子设备。
[0036] 其中,数据持久化机制是:将数据在持久状态和瞬时状态间转换的机制。通俗的讲,就是将瞬时数据,如缓存数据,持久化为持久数据。基于持久化机制所得到的持久数据可被永久保存在存储设备中,即使存储设备宕机,只要该持久数据未被损坏,该持久数据都不会丢失。
[0037] 举例而言,当对单主从服务系统中的从节点开启数据持久化机制时,该从节点的写操作都会被记录为持久化数据。当该从节点宕机时,该持久化数据不会丢失。这样,当重启该从节点后,可以将该持久化数据写入至该从节点的缓存中,使该从节点在宕机前所缓存的数据得到恢复。而由于本发明实施例中的从节点是用于备份主节点的数据的,因而给该从节点开启数据持久化机制不会对该单主从服务系统所提供的服务的服务性能造成影响。
[0038] 其中,当主节点无法提供服务时,则该主节点宕机。同理,当从节点无法提供服务时,则该从节点宕机。
[0039] 具体地,对于数据持久化机制AOF(Append Only File)而言,当将从节点对应的配置文件中的appendonly设置为yes时,则该从节点的数据持久化机制被开启。此时,该从节点的写操作会被记录到持久化文件appendonly.aof中,得到持久化数据。当将从节点对应的配置文件中的appendonly设置为no时,则该从节点的数据持久化机制被关闭。
[0040] 而由于数据库中的节点开启了数据持久化机制后,该节点需要额外的资源来保证数据持久化机制的正常运行,会使得该节点提供其他服务的能力减弱。基于该原因,现有技术中并不会给单主从服务器系统开启持久化机制,也就是说,不会给单主从服务系统中的主节点和从节点开启数据持久化机制。
[0041] 下面以单主从服务系统是redis数据库中的、用于提供数据存取服务的系统为例,对本发明实施例提供的节点宕机修复方法进行说明。
[0042] 本发明实施例提供的单主从服务系统中的管理节点用于执行该节点宕机修复方法的方法步骤,从而实现对该单主从服务系统中的主节点和从节点的管理。本发明实施例提供的单主从服务系统中包括第一节点、第二节点和管理节点。并且,第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制。
[0043] 其中,由于本发明实施例中所涉及的管理节点、第一节点、第二节点、主节点和从节点均为redis数据库中的节点,因而这些节点都是redis节点。
[0044] 参见图2,该节点宕机修复方法可以包括如下步骤:
[0045] S101:当检测到第一节点或第二节点宕机时,重启第一节点和第二节点中宕机的节点;其中,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点;
[0046] 可以理解的是,管理节点可以实时检测该单主从服务系统中的第一节点和第二节点是否宕机。其中,管理节点可以调用现有技术中的哨兵sentinel系统,来检测该单主从服务系统中的第一节点和第二节点是否宕机。
[0047] 当检测到第二节点宕机且第一节点正常时,还可以调用该哨兵sentinel系统对该单主从服务系统进行故障迁移。换句话说,可以将该单主从服务系统中的第一节点升级为主节点;并且,对已经宕机的第二节点的配置文件进行修改,实现将该已经宕机的第二节点修改为从节点。这样,可以实现对第一节点和第二节点的主从角色的切换。然后,可以重启第一节点和第二节点中宕机的节点。
[0048] 另外,当检测到第二节点正常且第一节点宕机时,可以维持未宕机的第二节点作为主节点,已经宕机的第一节点作为从节点的状态。这样,不需要对第一节点和第二节点的主从角色进行切换。然后,可以重启第一节点和第二节点中宕机的节点。
[0049] 其中,由于未宕机的节点中仍缓存有宕机的节点在宕机之前所缓存的数据,因而后续可以利用未宕机节点中所存储的数据对宕机节点中的数据进行恢复。
[0050] 另外,由于在本发明实施例中,当单主从服务系统中没有节点宕机时,被设置为从节点的第一节点开启了数据持久化机制,被设置为主节点的第二节点未开启数据持久化机制。因而,在单主从服务系统中存在第一节点或第二节点宕机时,重启第一节点和第二节点中宕机的节点的操作可以包括:
[0051] 判断第一节点或第二节点中宕机的节点是否开启了数据持久化机制。若未开启数据持久化机制,则给宕机的节点开启数据持久化机制,再重启该宕机的节点。若开启了数据持久化机制,则直接重启该宕机的节点。
[0052] 具体地,在第二节点宕机且第一节点正常的情况下,未宕机的第一节点被升级为主节点,宕机的第二节点被修改为从节点。此时,可以判断出升级得到的主节点是开启了数据持久化机制的,且可以判断修改得到的从节点是未开启数据持久化机制的。在该种情况下,可以开启该修改得到的从节点(即第二节点)的数据持久化机制,例如将第二节点对应的配置文件中的appendonly设置为yes。然后,重启第二节点。
[0053] 在第二节点正常且第一节点宕机的情况下,未宕机的第二节点仍然作为主节点,宕机的第一节点仍然作为从节点。此时,可以判断出从节点是开启了数据持久化机制的,且可以判断出主节点是未开启数据持久化机制的。因而,不需要对第一节点的数据持久化机制进行开启,即可以直接重启第一节点。
[0054] 其中,重启第一节点是指重新运行第一节点,以使第一节点能够提供从节点所能提供的服务。在重启第一节点后,可以通过redis role命令来查看第一节点的角色是否确实为从节点。
[0055] S102:在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。
[0056] 可以理解的是,当重启第一节点和第二节点中宕机的节点后,可以检测是否满足条件:未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态。当满足条件时,则可以确定节点宕机修复完成。
[0057] 其中,当检测到未执行重启操作的节点中的数据已复制到重启后的节点时,表明此时重启后的节点存储着与未执行重启操作的节点相同的数据。此时,重启后的节点实现了对未执行重启操作的节点中的数据的备份,提高了单主从服务系统中数据的安全性。
[0058] 当检测到重启后的节点中存储的数据已完成数据持久化时,表明此时单主从服务系统中数据可永久地保存在存储设备中,实现对单主从服务系统中的数据进行持久化保护。
[0059] 当检测到未执行重启操作的节点中的数据复制到重启后的节点的操作未完成时,或,检测到重启后的节点中存储的数据未完成数据持久化操作时,则重复继续执行复制操作和数据持久化操作,直到上述复制操作和数据持久化操作完成。
[0060] 另外,在第二节点宕机且第一节点正常的情况下,未宕机的第一节点被升级为主节点,宕机的第一节点被修改为从节点。也就是说,升级得到的主节点是开启了数据持久化机制的。为了保证升级得到的主节点的读写数据服务的性能,在检测到上述复制操作和数据持久化操作完成时,还可以关闭升级得到的主节点的数据持久化机制。另外,在关闭升级得到的主节点的数据持久化机制后,还可以删除该升级得到的主节点开启的数据持久化机制所产生的持久化数据,从而可以节省存储空间。然后,可以确定针对该单主从服务系统中的宕机节点的修复完成。
[0061] 在第二节点正常且第一节点宕机的情况下,未宕机的第二节点仍然作为主节点,宕机的第一节点仍然作为从节点。也就是说,此时的主节点是未开启数据持久化机制的,主节点的读写数据服务的性能未减弱。因而,当检测到上述复制操作和数据持久化操作完成时,即可确定完成了针对该单主从服务系统中的宕机节点的修复。在本发明实施例中,单主从服务系统中包括:第一节点、第二节点和管理节点。并且,第一节点被设置为从节点且开启了数据持久化机制,第二节点被设置为主节点且关闭了数据持久化机制。其中,单主从服务系统中的管理节点在检测到第一节点或第二节点宕机时,可以重启第一节点和第二节点中宕机的节点。其中,在执行重启操作之后,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点。之后,管理节点可以在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而保证还能通过第一节点和第二节点对该单主从服务系统中的数据进行双份存储,实现了在不影响该单主从服务系统的服务性能的基础上,提高了单主从服务系统中数据的安全性。
[0062] 由于在将未执行重启操作的节点中的数据复制到重启后的节点的过程中,或者,在将重启后的节点中存储的数据进行数据持久化的过程中,如果未执行重启操作的节点宕机,则会造成上述操作中断,且造成宕机修复操作中断。为了在上述复制过程中或数据持久化过程中新主节点宕机的情况下,仍能对宕机节点进行修复,从而保证单主从服务系统中数据的安全性,还可以执行如图3所示的节点宕机修复步骤:
[0063] 其中,S201的步骤与上述S101的步骤相同,在执行完步骤S201后,触发步骤S202。其中,S206的步骤与上述S102的步骤相同,在此不做赘述。
[0064] S202:在将未执行重启操作的节点中的数据复制到重启后的节点,并将重启后的节点中存储的数据进行数据持久化的过程中,检测未执行重启操作的节点是否宕机;其中,当检测到未执行重启操作的节点宕机时,则执行步骤S203;当检测到未执行重启操作的节点均未宕机时,执行步骤S206;
[0065] 由于在重启第一节点和第二节点中宕机的节点后,会将未执行重启操作的节点(即当前的主节点)中的数据复制到重启后的节点(即当前的从节点)中,并且,重启后的节点在写入数据之后,会对所写入的数据进行数据持久化操作。那么,如果在复制过程中未执行重启操作的节点宕机,则很可能会使当前的从节点无法复制得到当前的主节点中的所有数据,这样会使得宕机修复过程中断。
[0066] 另外,如果在持久化过程中未执行重启操作的节点宕机,则会使当前的从节点中的数据无法进行持久化存储,而且由于当前的主节点的宕机,会导致单主从服务系统中的数据的安全性降低。
[0067] 因而,可以在执行复制操作和数据持久化操作的过程中,均检测未执行重启操作的节点是否宕机。
[0068] S203:停止运行重启后的节点,并触发步骤S204;
[0069] S204:将第一节点开启的数据持久化机制所产生的持久化数据,写入至未执行重启操作的节点,并触发步骤S205;
[0070] S205:重启未执行重启操作的节点和停止运行后的重启后的节点,并触发步骤S206;
[0071] 当在将未执行重启操作的节点中的数据复制到重启后的节点,并将重启后的节点中存储的数据进行数据持久化的过程中,检测到未执行重启操作的节点宕机时,此时重启后的节点很可能只复制了一部分数据或者只将一部分数据进行了数据持久化。为了在不丢失数据的情况下恢复该单主从服务系统的服务,可以停止运行该重启后的节点,即迫使该重启后的节点宕机。
[0072] 然后,可以将该单主从服务系统中第一节点开启的数据持久化机制所产生的持久化数据,写入到未执行重启操作的节点中。然后再重启该未执行重启操作的节点和停止运行后的该重启后的节点。
[0073] S206:在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成举例而言,当检测到第一节点宕机且第二节点正常时,对第一节点进行重启后,则第二节点为未执行重启操作的节点,第一节点为重启后的节点。当在将未执行重启操作的第二节点中的数据复制到重启后的第一节点,并将第一节点中存储的数据进行数据持久化的过程中,检测到第二节点宕机时,可以停止运行第一节点。然后,将第一节点开启的数据持久化机制所产生的持久化数据,写入到第二节点中。然后,重启第二节点和第一节点。之后,则可以在检测到第二节点中的数据已复制到第一节点、第一节点中存储的数据已经完成数据持久化且第二节点的数据持久化机制处于关闭状态的情况下,则可以确定宕机修复完成。
[0074] 可以理解的是,步骤S206中的未执行重启操作的节点、重启后的节点是指步骤205之前的未执行重启操作、执行了重启操作的节点。
[0075] 为了保证步骤S204中的、将第一节点开启的数据持久化机制所产生的持久化数据均写入至未执行重启操作的节点,从而实现无损地恢复单主从服务系统的服务。还可以在执行步骤S204之后,判断写入至未执行重启操作的节点的持久化数据的信息摘要算法MD5值与第一节点所开启的数据持久化机制所产生的持久化数据的MD5值是否匹配。
[0076] 如果不匹配,则表明没有将第一节点所产生的持久化数据全部且正确地写入到未执行重启操作的节点。此时,可以重新执行将第一节点开启的数据持久化机制所产生的持久化数据,写入至未执行重启操作的节点的操作,直到写入至未执行重启操作的节点的持久化数据的MD5值与第一节点所开启的数据持久化机制所产生的持久化数据的MD5值匹配。
[0077] 如果匹配,则表明将第一节点所产生的持久化数据全部且正确地写入未执行重启操作的节点,此时可以触发重启未执行重启操作的节点和停止运行后的重启后的节点的操作。
[0078] 其中,MD5(Message‑Digest Algorithm 5,信息‑摘要算法5)用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一。
[0079] 其中,在匹配的情况下,为了提高单主从服务系统中数据的安全性,还可以判断未执行重启操作的节点是否开启了数据持久化机制。如果未执行重启操作的节点未开启数据持久化机制,则给未执行重启操作的节点开启数据持久化机制,并触发重启未执行重启操作的节点和停止运行后的重启后的节点的步骤。这样,可以避免在重新启动未执行重启操作的节点和停止运行后的重启后的节点之后在将未执行重启操作的节点的一部分数据复制并进行持久化操作的过程中,未执行重启操作的节点宕机时该单主从服务系统中的部分数据丢失的情况发生。
[0080] 举例而言,当检测到第一节点宕机且第二节点正常时,对第一节点进行重启后,则第二节点为未执行重启操作的节点,此时第二节点仍然作为主节点,第一节点为重启后的节点,此时第一节点仍然作为从节点。当在将未执行重启操作的第二节点中的数据复制到重启后的第一节点,并将第一节点中存储的数据进行数据持久化的过程中,检测到第二节点宕机时,可以停止运行重启后的第一节点,并可以将第一节点开启的数据持久化机制所产生的持久化数据,写入至未执行重启操作的第二节点。其中,当写入到第二节点的持久化数据的MD5值与第一节点所开启的数据持久化机制所产生的持久化数据的MD5值匹配时,可以判断第二节点是否开启数据持久化机制。由于第二节点并未开启数据持久化机制,因而可以先给第二节点开启数据持久化机制。然后,重启第二节点和第一节点。
[0081] 这样,可以避免在重新启动第二节点和停止运行后的第一节点之后,第二节点中有新的数据写入,并且在将第二节点的一部分数据复制并进行持久化操作的过程中,第二节点宕机时该单主从服务系统中的部分数据丢失的情况发生。
[0082] 如果未执行重启操作的节点开启了数据持久化机制,则可以放弃给未执行重启操作的节点开启数据持久化机制,并触发重启未执行重启操作的节点和停止运行后的重启后的节点的步骤。
[0083] 另外,由于将未宕机的节点作为主节点后,即完成主节点的部署,此时当前的主节点可以对外提供数据读写服务。如果当前的主节点在对外提供数据写服务后致新增了缓存数据,则在重启第一节点和第二节点中宕机的节点之后,会导致当前的从节点从当前的主节点中复制的数据量增大,复制时间变慢。那么,在复制过程中当前的主节点宕机的可能性也就增大。
[0084] 当在复制过程中当前的主节点宕机时,该主节点中的部分数据无法被复制到当前的从节点中,这样会造成该部分数据的丢失。特别是,当新增的缓存数据丢失时,该新增的缓存数据是无法被恢复的。
[0085] 因而,为了避免不可恢复的数据丢失,还可以在重启第一节点和第二节点中宕机的节点之前,控制第一节点和第二节点中未宕机的节点关闭自身的写数据服务。相应地,在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,可以控制未执行重启操作的节点开启自身的写数据服务。这样,在控制未执行重启操作的节点开启自身的写数据服务,并且确定未执行重启操作的节点关闭了数据持久化机制后,可以保证未执行重启操作的节点的读写数据服务的性能不受影响时,此时即可确定完成节点宕机修复。
[0086] 此外,本发明实施例中的第一节点和第二节点可以创建在不同的节点承建器上。其中,节点承建器可以是内核虚拟化LXC容器,也可以是虚拟机,当然并不局限于此。也就是说,节点承建器是在物理设备上所虚拟出的物理设备。
[0087] 在该种情况下,重启第一节点和第二节点中宕机的节点的具体方式可以为:检测第一节点和第二节点中宕机节点的节点承建器是否宕机。若宕机,则重启或新建第一节点和第二节点中宕机节点的节点承建器。然后,运行第一节点和第二节点中宕机的节点。其中,当成功运行第一节点和第二节点中宕机的节点时,则实现对宕机节点的重启。
[0088] 另外,当重启或新建新第一节点和第二节点中宕机节点的节点承建器失败时,或者,在成功创建该节点承建器后,运行第一节点和第二节点中宕机的节点失败时,需要生成重启宕机节点失败的报警信息,以提示技术人员及时做出应对措施。
[0089] 其中,重启未执行重启操作的节点的方式可以参考上述重启宕机节点的方式,在此不做详述。
[0090] 此外,在检测到第一节点和第二节点同时宕机的情况时,还可以将第一节点开启的数据持久化机制所产生的持久化数据,写入至第二节点的节点承建器中。然后,重启第一节点和第二节点,并且在将第二节点的节点承建器中数据复制到第一节点中时,可以确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点和第二节点均宕机时,完成节点宕机修复,提高了单主从服务系统中数据的安全性。
[0091] 综上,应用本发明实施例,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而提高单主从服务系统中数据的安全性。
[0092] 相应于上述方法实施例,本发明实施例还提供了一种节点宕机修复装置,应用于单主从服务系统中的管理节点,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;参见图4,该装置可以包括:第一重启模块301,用于当检测到第一节点或第二节点宕机时,重启第一节点和第二节点中宕机的节点;其中,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点;
[0093] 确定模块302,用于在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。
[0094] 在本发明实施例中,单主从服务系统中包括:第一节点、第二节点和管理节点。并且,第一节点被设置为从节点且开启了数据持久化机制,第二节点被设置为主节点且关闭了数据持久化机制。应用本发明实施例提供的装置,单主从服务系统中的管理节点在检测到第一节点或第二节点宕机时,可以重启第一节点和第二节点中宕机的节点。其中,在执行重启操作之后,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点。之后,管理节点可以在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而保证还能通过第一节点和第二节点对该单主从服务系统中的数据进行双份存储,实现了在不影响该单主从服务系统的服务性能的基础上,提高了单主从服务系统中数据的安全性。
[0095] 可选地,重启模块可以包括:
[0096] 判断单元,用于判断第一节点和第二节点中宕机的节点是否开启了数据持久化机制;
[0097] 第一重启单元,用于当判断单元判断没有开启数据持久化机制时,给第一节点和第二节点中宕机的节点开启数据持久化机制,并重启第一节点和第二节点中宕机的节点;
[0098] 第二重启单元,用于当判断单元判断开启了数据持久化机制时,重启第一节点和第二节点中宕机的节点。
[0099] 可选地,该装置还可以包括以下装置至少之一:
[0100] 修改模块,用于当检测到第一节点未宕机且第二节点宕机时,在重启第一节点和第二节点中宕机的节点之前,将第一节点升级为主节点,将第二节点修改为从节点;
[0101] 处理模块,用于当检测到第一节点宕机且第二节点未宕机时,在重启第一节点和第二节点中宕机的节点之前,维持将第一节点设置为从节点、第二节点设置为主节点的状态。
[0102] 可选地,在本发明实施例中,该装置还可以包括:
[0103] 检测模块,用于在将未执行重启操作的节点中的数据复制到重启后的节点,并将重启后的节点中存储的数据进行数据持久化的过程中,检测未执行重启操作的节点是否宕机;
[0104] 停止模块,用于当检测模块检测到未执行重启操作的节点宕机时,停止运行重启后的节点;
[0105] 写入模块,用于在停止模块停止运行重启后的节点后,将第一节点开启的数据持久化机制所产生的持久化数据,写入至未执行重启操作的节点;
[0106] 第二重启模块,用于在写入模块将第一节点开启的数据持久化机制所产生的持久化数据写入至未执行重启操作的节点时,重启未执行重启操作的节点和停止运行后的重启后的节点。
[0107] 可选地,在本发明实施例中,该装置还可以包括:
[0108] 判断模块,用于当写入模块将第一节点开启的数据持久化机制所产生的持久化数据写入至未执行重启操作的节点时,判断写入至未执行重启操作的节点的持久化数据的信息摘要算法MD5值与第一节点所开启的数据持久化机制所产生的持久化数据的MD5值是否匹配;
[0109] 第一触发模块,用于当判断模块判断不匹配时,触发写入模块重新将第一节点开启的数据持久化机制所产生的持久化数据写入至未执行重启操作的节点;
[0110] 第二触发模块,用于当判断模块判断匹配时,触发第二重启模块。
[0111] 可选地,第二触发模块具体可以用于:
[0112] 判断未执行重启操作的节点是否开启了数据持久化机制;
[0113] 在未执行重启操作的节点未开启数据持久化机制的情况下,给未执行重启操作的节点开启数据持久化机制,并触发第二重启模块;
[0114] 在未执行重启操作的节点开启了数据持久化机制的情况下,放弃给未执行重启操作的节点开启数据持久化机制,并触发第二重启模块。
[0115] 可选地,在本发明实施例中,该装置还可以包括:
[0116] 控制模块,用于在第一重启模块301重启第一节点和第二节点中宕机的节点之前,控制第一节点和第二节点中未宕机的节点关闭自身的写数据服务;
[0117] 确定模块302具体可以用于:
[0118] 在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,控制未执行重启操作的节点开启自身的写数据服务;在检测到未执行重启操作的节点开启写数据服务后,确定节点宕机修复完成。
[0119] 可选地,确定模块302具体可以用于:
[0120] 在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化的情况下,判断未执行重启操作的节点是否开启了数据持久化机制;
[0121] 在未执行重启操作的节点开启了数据持久化机制的情况下,关闭未执行重启操作的节点所开启的数据持久化机制;
[0122] 删除未执行重启操作的节点开启的数据持久化机制所产生的持久化数据,完成节点宕机修复。
[0123] 可选地,第一节点和第二节点创建在不同的节点承建器上,节点承建器包括内核虚拟化LXC容器或虚拟机;
[0124] 第一重启模块301具体可以用于:
[0125] 检测第一节点和第二节点中宕机节点的节点承建器是否宕机;
[0126] 若宕机,则重启或新建第一节点和第二节点中宕机节点的节点承建器;
[0127] 运行第一节点和第二节点中宕机的节点。
[0128] 第一重启模块301确定模块302
[0129] 相应于上述方法实施例,本发明实施例还提供了一种电子设备,电子设备为单主从服务系统中的管理节点所对应的设备,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;参见图5,该电子设备包括处理器401和存储器402,其中:
[0130] 存储器402,用于存放计算机程序;
[0131] 处理器401,用于执行存储器402上所存放的程序时,实现上述任一项节点宕机修复方法的方法步骤。
[0132] 单主从服务系统中的管理节点所对应的电子设备在检测到第一节点或第二节点宕机时,可以重启第一节点和第二节点中宕机的节点。其中,在执行重启操作之后,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点。之后,管理节点可以在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而保证还能通过第一节点和第二节点对该单主从服务系统中的数据进行双份存储,实现了在不影响该单主从服务系统的服务性能的基础上,提高了单主从服务系统中数据的安全性。
[0133] 相应于上述方法实施例,本发明实施例还提供了一种可读存储介质,该可读存储介质为电子设备中的可读存储介质;电子设备为单主从服务系统中的管理节点所对应的设备,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;
[0134] 可读存储介质内存储有计算机程序,计算机程序被电子设备的处理器执行时实现上述任一项节点宕机修复方法的方法步骤。
[0135] 本发明实施例提供的存储介质中存储的计算机程序被管理节点对应的电子设备的处理器执行后,单主从服务系统中的管理节点在检测到第一节点或第二节点宕机时,可以重启第一节点和第二节点中宕机的节点。其中,在执行重启操作之后,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点。之后,管理节点可以在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而保证还能通过第一节点和第二节点对该单主从服务系统中的数据进行双份存储,实现了在不影响该单主从服务系统的服务性能的基础上,提高了单主从服务系统中数据的安全性。
[0136] 相应于上述方法实施例,本发明实施例还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行:上述任一项节点宕机修复方法的方法步骤。其中,电子设备为单主从服务系统中的管理节点所对应的设备,单主从服务系统中还包括:第一节点和第二节点;第一节点被设置为从节点且开启了数据持久化机制;第二节点被设置为主节点且关闭了数据持久化机制;
[0137] 本发明实施例提供的包含指令的计算机程序产品,当其被管理节点对应的电子设备的处理器运行后,单主从服务系统中的管理节点在检测到第一节点或第二节点宕机时,可以重启第一节点和第二节点中宕机的节点。其中,在执行重启操作之后,第一节点和第二节点中重启后的节点作为从节点,第一节点和第二节点中未执行重启操作的节点作为主节点。之后,管理节点可以在检测到未执行重启操作的节点中的数据已复制到重启后的节点、重启后的节点中存储的数据已完成数据持久化且未执行重启操作的节点的数据持久化机制处于关闭状态的情况下,确定节点宕机修复完成。这样,可以在单主从服务系统中的第一节点或第二节点宕机时,对宕机节点进行恢复,从而保证还能通过第一节点和第二节点对该单主从服务系统中的数据进行双份存储,实现了在不影响该单主从服务系统的服务性能的基础上,提高了单主从服务系统中数据的安全性。
[0138] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0139] 通信接口用于上述电子设备与其他设备之间的通信。
[0140] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0141] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0142] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0143] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0144] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。