CN118018463A - 一种故障处理方法、装置、设备及可读存储介质 - Google Patents

一种故障处理方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN118018463A
CN118018463A CN202410035241.3A CN202410035241A CN118018463A CN 118018463 A CN118018463 A CN 118018463A CN 202410035241 A CN202410035241 A CN 202410035241A CN 118018463 A CN118018463 A CN 118018463A
Authority
CN
China
Prior art keywords
cluster
node
opengauss
information
state
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.)
Pending
Application number
CN202410035241.3A
Other languages
English (en)
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202410035241.3A priority Critical patent/CN118018463A/zh
Publication of CN118018463A publication Critical patent/CN118018463A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开了一种故障处理方法、装置、设备及可读存储介质,该方法包括:对每个节点的OpenGauss服务进行心跳检测,得到集群信息;利用集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。技术效果:OpenGauss数据库集群中的容灾系统多副本部署,结合心跳检测、投票选取、故障切换和故障恢复可以处理OpenGauss数据库服务节点异常的各类情况,提升了OpenGauss的高可用性。

Description

一种故障处理方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种故障处理方法、装置、设备及可读存储介质。
背景技术
OpenGauss是一种开源关系型数据库管理系统。OpenGauss使用心跳检测和监控机制来检测数据库节点的故障。当检测到故障时,系统可以自动将主节点切换为备用节点,实现故障转移。这种故障转移可以避免数据丢失,并保证系统的高可用性。
目前,Cluster Manager(CM opengauss高可用组件)提供了简单的高可用能力,但CM与服务部署于同一节点,节点异常后无法提供高可用能力,CM只能对简单异常情况进行处理,脑裂等情况无法处理,不能实现VIP(虚拟IP)漂移。
综上所述,如何有效地解决OpenGauss的高可用等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种故障处理方法、装置、设备及可读存储介质,通过结合心跳检测、投票选取、故障切换和故障恢复,从而提供OpenGauss的高可用性。
为解决上述技术问题,本申请提供如下技术方案:
一种故障处理方法,包括:
对每个节点的OpenGauss服务进行心跳检测,得到集群信息;
利用所述集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;
在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;
在选出所述目标容灾系统的情况下,对所述目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
优选地,对每个节点的OpenGauss服务进行心跳检测,得到集群信息,包括:
从分布式键值数据库中获取OpenGauss数据库的实例信息;
根据所述实例信息,通过网络协议判断实例每个节点的OpenGauss服务是否可达,得到可达性信息;
连接OpenGauss服务执行查询复制流命令,得到节点状态信息和节点角色信息;
将所述可达性信息、所述节点状态信息和所述节点角色信息确定为所述集群信息。
优选地,在选出所述目标容灾系统的情况下,对所述目标容灾系统进行故障切换处理,包括:
利用原主节点判断当前启动节点是否有启动参数主节点标记;
如果是,重启OpenGauss服务;
如果否,停止OpenGauss服务,以主节点角色启动;
若所述原主节点启动正常,返回服务正常,主从节点未发生切换的消息;
若所述原主节点启动异常,判断从节点是否正常;
若所述从节点异常,则返回故障切换失败的消息;
若所述从节点正常,则提升所述从节点为新主节点;
若所述新主状态异常,则返回故障切换失败消息;
若所述新主状态正常,则判断所述原主节点启动参数是否有启动参数从节点标记;
若所述原主节点有所述从节点标记,重启服务;
如果所述原主节点无所述从节点标记,则停止OpenGauss服务,并以从节点角色启动;
若集群正常,返回成功消息;
若集群异常,返回失败消息。
优选地,所述集群状态为主节点异常,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
从分布式键值数据库中获取启动参数角色模式;
基于启动参数角色模式对主节点和/或从节点进行服务恢复处理。
优选地,所述集群状态为从节点异常,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
判断节点启动模式是否为从节点;
如果是,重启服务;
如果不是,则以opengauss服务中的从节点启动模式进行启动。
优选地,所述集群状态为脑裂,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
从分布式键值数据库中获取主从节点信息;
利用所述主从节点信息,选定集群主节点;
对从节点以启动opengauss服务中的从节点启动模式进行启动。
优选地,所述集群状态为VIP异常,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
移除现有VIP;
从分布式键值数据库中获取真实的集群信息;
将VIP绑定到所述真实的集群信息对应主节点上,并更新所述分布式键值数据库。
一种故障处理装置,包括:
心跳检测模块,用于对每个节点的OpenGauss服务进行心跳检测,得到集群信息;
投票选举模块,用于利用所述集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;
故障恢复处理模块,用于在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;
主备切换处理模块,用于在选出所述目标容灾系统的情况下,对所述目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述故障处理方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述故障处理方法的步骤。
应用本申请实施例所提供的方法,对每个节点的OpenGauss服务进行心跳检测,得到集群信息;利用集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
在本申请中,首先对每个节点的OpenGauss服务都进行心跳检测,从而得到集群信息,然后基于集群信息对实例集群状态进行投票,可得到集群信息,在需要进行故障切换时,也可确定出需要进行故障切换的目标容灾系统。在集群状态异常的情况下,可按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出了目标容灾系统的情况下,可对目标容灾系统进行故障切换处理。
技术效果:OpenGauss数据库集群中的容灾系统多副本部署保障了本身的高可用性,结合心跳检测、投票选取、故障切换和故障恢复可以处理OpenGauss数据库服务节点异常的各类情况,可以自动处理脑裂等复杂异常情况,可以提供VIP漂移能力。
相应地,本申请实施例还提供了与上述故障处理方法相对应的故障处理装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种故障处理方法的实施流程图;
图2为本申请实施例中一种主节点异常的恢复处理流程示意图;
图3为本申请实施例中一种从节点异常的恢复处理流程示意图;
图4为本申请实施例中一种脑裂恢复处理流程示意图;
图5为本申请实施例中一种VIP异常的恢复流程示意图;
图6为本申请实施例中一种故障切换流程示意图;
图7为本申请实施例中一种故障处理装置的结构示意图;
图8为本申请实施例中一种电子设备的结构示意图;
图9为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种故障处理方法的流程图,该方法可以部署在独立节点之上,该方法包括以下步骤:
S101、对每个节点的OpenGauss服务进行心跳检测,得到集群信息。
在本实施例中,可对每个节点的OpenGauss服务是否可达,节点状态等进行心跳检测,从而得到集群信息。即该集群信息包括但不限于每个节点的OpenGauss服务是否可达,节点是否失活,节点自身的角色状态等信息。
在本申请中的一种具体实施方式中,对每个节点的OpenGauss服务进行心跳检测,得到集群信息,包括:
从分布式键值数据库中获取OpenGauss数据库的实例信息;
根据实例信息,通过网络协议判断实例每个节点的OpenGauss服务是否可达,得到可达性信息;
连接OpenGauss服务执行查询复制流命令,得到节点状态信息和节点角色信息;
将可达性信息、节点状态信息和节点角色信息确定为集群信息。
为便于理解,下面将上述步骤结合起来进行说明。
首先,获取etcd(分布式键值(key-value)数据库)里面存储的OpenGauss数据库的实例信息。根据实例信息,通过SSH(网络协议)方式判断实例的每个节点的OpenGauss服务是否可达,如果节点不可达则记录该节点状态为不可达(UNREACHABLE)。
然后,连接OpenGauss服务执行查询复制流命令(select pg_is_in_recovery())获取当前复制流状态。如果命令执行失败,则节点状态置为DB_DOWN(停止服务)。根据命令执行结果,判断当前节点在集群中的角色,主节点为PRIMARY(主节点),从节点为STANDBY(从节点)。
举例说明:可初始化clusterManager(集群管理进程),创建实例时传过来的相关实例信息。然后,检测是否为维护模式,如果是,则检测虚机内是否有该文件:/etc/opengauss/maintenance_mode。所获取的集群信息状态包括:NodeRunningStatus:sshReachable(ssh可达性)、containsVipNodes(包含VIP节点)、aliveNodes(存活节点)、deadNodes(死亡节点)、nodeRunningStatus(节点运行状态)。
S102、利用集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统。
高可用监控系统SWAN(容灾系统)多副本部署,每个服务分别对数据库节点进行心跳检测,获取集群中每个节点的信息。根据心跳结果做出判断,对数据库集群状态进行投票,超过半数状态检测结果一致时认为投票结果有效。投票结果可存储在etcd中,根据投票阶段判断是否需要进行etcd存储实例状态更新,是否需要进行容灾操作、明确集群状态等。
具体的,即检查集群信息,形成实例集群状态:
检查数据库集群状态checkOpengaussCluster(数据库集群状态检查),依次进行如下投票:
1、活着的节点角色有主,放入primaryList(主节点列表)中;
2、不存在主:PRIMARY_DB_DOWN(主节点异常);
3、存在从节点断开不同步,从disconnected(连接异常)主,DISCONNECTD;
4、存在连不上死节点deadNodes,STANDBY_DB_DOWN(从节点异常);
5、OPENGAUSSL_CLUSTER_NORMAL(集群正常),检查VIP(非包含VIP的节点等于1并且VIP不在真实主节点)是VIP_NORMAL(VIP正常)。
也就是说,集群状态包括但不限于以下几种状态:
PRIMARY_DB_DOWN:主宕机;
DISCONNECTD:从节点不同步,集群主从断开;
STANDBY_DB_DOWN:从节点宕机;
VIP_ABNORMA:VIP异常,如VIP不在主节点上,VIP的节点大于1,均为VIP异常;
NORMAL:状态正常。
S103、在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理。
在获得了集群状态之后,在集群状态异常的情况下,可按照集群异常分类对OpenGauss数据库集群进行恢复处理。
具体的,可分析异常节点上的服务日志,查询节点各项指标。备份保存异常日志。收集分析各个节点的角色和日志,针对故障节点进行异常恢复。如果首次恢复失败,返回操作失败日志,进一步分析异常原因,再次进行故障恢复,多次失败后记录操作记录及错误日志。标记节点状态异常。
一种具体实施方式中,集群状态为主节点异常,在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
从分布式键值数据库中获取启动参数角色模式;
基于启动参数角色模式对主节点和/或从节点进行服务恢复处理。
为便于描述,下面将上述步骤结合起来进行说明。
请参考图2,图2为本申请实施例中一种主节点异常的恢复处理流程示意图。
首先,从etcd中获取集群状态,判断etcd中的主节点启动参数ServerMode(角色模式)是否为Primary,如果ServerMode是Primary,则重新OpenGauss服务,重启后检查服务状态是否正常,如果正常,则异常处理完毕。等待下次心跳检测集群状态是否正常。
如果重启失败,从etcd去获取从节点的信息,检测从节点的状态是否正常,如果从节点状态正常,在从节点执行脚本,进行容灾操作。
容灾操作后查看新的主节点的状态是否正常。如果正常,判断动参数ServerMode是否为Primary,如果是,重启服务,然后判断集群状态是否正常,如果不是,在故障节点执行命名,以从节点的方式启动OpenGauss服务。如果ServerMode(服务启动模式)不是Primary,在当前节点上重启服务,以Primary的角色启动服务,opengauss RunPrimary(主节点启动)。启动后判断当前节点状态是否正常,如果异常,记录实例集群状态异常,产生异常告警。如果正常,在重启从节点服务,然后检测集群状态。如果从节点正常以ServerMode为standby启动,则重启服务,如果不是则重新以standby角色启动服务opengaussRunStandby。
重启完成后判断集群状态。如果正常集群异常处理完毕,如果异常记录实例异常,并产生告警。
一种具体实施方式中,集群状态为从节点异常,在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
判断节点启动模式是否为从节点;
如果是,重启服务;
如果不是,则以opengauss服务中的从节点启动模式进行启动。
为便于描述,下面将上述步骤结合起来进行说明。
请参考图3,图3为本申请实施例中一种从节点异常的恢复处理流程示意图。判断节点启动模式是否为standby,如果是重启服务,如果不是则以从节点模式启动opengauss服务opengauss RunStandby。
一种具体实施方式中,集群状态为脑裂,在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
从分布式键值数据库中获取主从节点信息;
利用主从节点信息,选定集群主节点;
对从节点以启动opengauss服务中的从节点启动模式进行启动。
为便于描述,下面将上述步骤结合起来进行说明。
集群中的主节点(Master(管理节点)或Leader(领导节点))往往是通过选举产生的。在网络正常的情况下,可以顺利的选举出主节点。但当两个机房之间的网络通信出现故障时,选举机制就有可能在不同的网络分区中选出两个主节点。当网络恢复时,这两个主节点该如何处理数据同步,又该听谁的,这也就出现了脑裂现象。
请参考图4,图4为本申请实施例中一种脑裂恢复处理流程示意图。在本实施例中,当出现脑裂之后,以etcd中的数据为依据,设置集群主节点。从节点从节点模式启动opengauss服务opengauss RunStandby(从节点启动)。
一种具体实施方式中,集群状态为VIP异常,在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
移除现有VIP;
从分布式键值数据库中获取真实的集群信息;
将VIP绑定到真实的集群信息对应主节点上,并更新分布式键值数据库。
为便于描述,下面将上述步骤结合起来进行说明。
请参考图5,图5为本申请实施例中一种VIP异常的恢复流程示意图。当发生集群VIP异常时,先将现有VIP移除。然后,从etcd中获取真实的集群信息,将VIP绑定到真实的主节点上面。更新etcd数据。
即,数据库可通过VIP访问,当心跳检测发现集群内节点状态发生变化时,获取集群中节点状态,把VIP(虚拟IP)迁移到主节点上,更新etcd中的集群信息。
S104、在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理。
其中,OpenGauss数据库集群中的容灾系统多副本部署。
故障切换即容灾系统中的主备切换。当投票结果为主节点异常需要进行主备切换时,通过脚本连接数据库实例,执行命令,维护数据库的主从关系。确保集群内存在主节点,稳定对外提供数据库读写服务。记录主从切换日志,更新etcd中数据库的元数据。产生告警,收集异常节点错误日志和服务状态。
一种具体实施方式中,在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理,包括:
利用原主节点判断当前启动节点是否有启动参数主节点标记;
如果是,重启OpenGauss服务;
如果否,停止OpenGauss服务,以主节点角色启动;
若原主节点启动正常,返回服务正常,主从节点未发生切换的消息;
若原主节点启动异常,判断从节点是否正常;
若从节点异常,则返回故障切换失败的消息;
若从节点正常,则提升从节点为新主节点;
若新主状态异常,则返回故障切换失败消息;
若新主状态正常,则判断原主节点启动参数是否有启动参数从节点标记;
若原主节点有从节点标记,重启服务;
如果原主节点无从节点标记,则停止OpenGauss服务,并以从节点角色启动;
若集群正常,返回成功消息;
若集群异常,返回失败消息。
为便于描述,下面将上述步骤结合起来进行说明。
请参考图6,图6为本申请实施例中一种故障切换流程示意图。具体包括以下步骤:
1、检查SSH可达状态等。
2、摘VIP。
3、SSH到主节点执行脚本。该脚本具体为:changeMaster.sh。
changeMaster.sh流程:
(1)、原主节点判断当前启动节点是否带有启动参数primary;
(2)、如果是主节点,重启OpenGauss服务;
(3)、如果否,停止OpenGauss服务,以primary角色启动;
(4)、原主节点启动正常,返回服务正常,主从节点未发生切换的消息,流程结束;
(5)、原主节点启动异常,判断从节点是否正常;
(6)、从节点异常,返回故障切换失败的消息,流程结束;
(6)、从节点正常,把从节点failover(容灾切换)命令提升为新主;
(7)新主状态异常,返回故障切换失败的消息,流程结束;
(8)、新主状态正常,判断老主启动参数是否带standby(从节点启动),如(1),原来的主如果带standby,重启服务,如果不带standby,则停止OpenGauss服务,以standby角色启动。
(9)、判断集群是否正常,正常返回成功的消息;
(10)、集群异常,返回异常的消息。
需要注意的是,在实际应用中,步骤S103和步骤S104都是根据实际情况进行执行的,具体的,当集群状态异常才会执行步骤S103,当SWAN被选出之后,才会执行步骤S104,当两个步骤都需要执行时,可以不分先后进行执行。
应用本申请实施例所提供的方法,对每个节点的OpenGauss服务进行心跳检测,得到集群信息;利用集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
在本申请中,首先对每个节点的OpenGauss服务都进行心跳检测,从而得到集群信息,然后基于集群信息对实例集群状态进行投票,可得到集群信息,在需要进行故障切换时,也可确定出需要进行故障切换的目标容灾系统。在集群状态异常的情况下,可按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出了目标容灾系统的情况下,可对目标容灾系统进行故障切换处理。
技术效果:OpenGauss数据库集群中的容灾系统多副本部署保障了本身的高可用性,结合心跳检测、投票选取、故障切换和故障恢复可以处理OpenGauss数据库服务节点异常的各类情况,可以自动处理脑裂等复杂异常情况,可以提供VIP漂移能力。
相应于上面的方法实施例,本申请实施例还提供了一种故障处理装置,下文描述的故障处理装置与上文描述的故障处理方法可相互对应参照。
参见图7所示,该装置包括以下模块:
心跳检测模块101,用于对每个节点的OpenGauss服务进行心跳检测,得到集群信息;
投票选举模块102,用于利用集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;
故障恢复处理模块103,用于在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;
主备切换处理模块104,用于在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
应用本申请实施例所提供的装置,对每个节点的OpenGauss服务进行心跳检测,得到集群信息;利用集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;在集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出目标容灾系统的情况下,对目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
在本申请中,首先对每个节点的OpenGauss服务都进行心跳检测,从而得到集群信息,然后基于集群信息对实例集群状态进行投票,可得到集群信息,在需要进行故障切换时,也可确定出需要进行故障切换的目标容灾系统。在集群状态异常的情况下,可按照集群异常分类对OpenGauss数据库集群进行恢复处理;在选出了目标容灾系统的情况下,可对目标容灾系统进行故障切换处理。
技术效果:OpenGauss数据库集群中的容灾系统多副本部署保障了本身的高可用性,结合心跳检测、投票选取、故障切换和故障恢复可以处理OpenGauss数据库服务节点异常的各类情况,可以自动处理脑裂等复杂异常情况,可以提供VIP漂移能力。
在本申请的一种具体实施方式中,心跳检测模块,具体用于从分布式键值数据库中获取OpenGauss数据库的实例信息;
根据实例信息,通过网络协议判断实例每个节点的OpenGauss服务是否可达,得到可达性信息;
连接OpenGauss服务执行查询复制流命令,得到节点状态信息和节点角色信息;
将可达性信息、节点状态信息和节点角色信息确定为集群信息。
在本申请的一种具体实施方式中,主备切换处理模块,具体用于利用原主节点判断当前启动节点是否有启动参数主节点标记;
如果是,重启OpenGauss服务;
如果否,停止OpenGauss服务,以主节点角色启动;
若原主节点启动正常,返回服务正常,主从节点未发生切换的消息;
若原主节点启动异常,判断从节点是否正常;
若从节点异常,则返回故障切换失败的消息;
若从节点正常,则提升从节点为新主节点;
若新主状态异常,则返回故障切换失败消息;
若新主状态正常,则判断原主节点启动参数是否有启动参数从节点标记;
若原主节点有从节点标记,重启服务;
如果原主节点无从节点标记,则停止OpenGauss服务,并以从节点角色启动;
若集群正常,返回成功消息;
若集群异常,返回失败消息。
在本申请的一种具体实施方式中,集群状态为主节点异常,故障恢复处理模块,具体用于从分布式键值数据库中获取启动参数角色模式;
基于启动参数角色模式对主节点和/或从节点进行服务恢复处理。
在本申请的一种具体实施方式中,集群状态为从节点异常,故障恢复处理模块,具体用于判断节点启动模式是否为从节点;
如果是,重启服务;
如果不是,则以opengauss服务中的从节点启动模式进行启动。
在本申请的一种具体实施方式中,集群状态为脑裂,故障恢复处理模块,具体用于从分布式键值数据库中获取主从节点信息;
利用主从节点信息,选定集群主节点;
对从节点以启动opengauss服务中的从节点启动模式进行启动。
在本申请的一种具体实施方式中,集群状态为VIP异常,故障恢复处理模块,具体用于移除现有VIP;
从分布式键值数据库中获取真实的集群信息;
将VIP绑定到真实的集群信息对应主节点上,并更新分布式键值数据库。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种故障处理方法可相互对应参照。
参见图8所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的故障处理方法的步骤。
具体的,请参考图9,图9为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的故障处理方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种故障处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的故障处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种故障处理方法,其特征在于,包括:
对每个节点的OpenGauss服务进行心跳检测,得到集群信息;
利用所述集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;
在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;
在选出所述目标容灾系统的情况下,对所述目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
2.根据权利要求1所述的方法,其特征在于,对每个节点的OpenGauss服务进行心跳检测,得到集群信息,包括:
从分布式键值数据库中获取OpenGauss数据库的实例信息;
根据所述实例信息,通过网络协议判断实例每个节点的OpenGauss服务是否可达,得到可达性信息;
连接OpenGauss服务执行查询复制流命令,得到节点状态信息和节点角色信息;
将所述可达性信息、所述节点状态信息和所述节点角色信息确定为所述集群信息。
3.根据权利要求1所述的方法,其特征在于,在选出所述目标容灾系统的情况下,对所述目标容灾系统进行故障切换处理,包括:
利用原主节点判断当前启动节点是否有启动参数主节点标记;
如果是,重启OpenGauss服务;
如果否,停止OpenGauss服务,以主节点角色启动;
若所述原主节点启动正常,返回服务正常,主从节点未发生切换的消息;
若所述原主节点启动异常,判断从节点是否正常;
若所述从节点异常,则返回故障切换失败的消息;
若所述从节点正常,则提升所述从节点为新主节点;
若所述新主状态异常,则返回故障切换失败消息;
若所述新主状态正常,则判断所述原主节点启动参数是否有启动参数从节点标记;
若所述原主节点有所述从节点标记,重启服务;
如果所述原主节点无所述从节点标记,则停止OpenGauss服务,并以从节点角色启动;
若集群正常,返回成功消息;
若集群异常,返回失败消息。
4.根据权利要求1至3任一项所述的故障处理方法,其特征在于,所述集群状态为主节点异常,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
从分布式键值数据库中获取启动参数角色模式;
基于启动参数角色模式对主节点和/或从节点进行服务恢复处理。
5.根据权利要求1至3任一项所述的故障处理方法,其特征在于,所述集群状态为从节点异常,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
判断节点启动模式是否为从节点;
如果是,重启服务;
如果不是,则以opengauss服务中的从节点启动模式进行启动。
6.根据权利要求1至3任一项所述的故障处理方法,其特征在于,所述集群状态为脑裂,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
从分布式键值数据库中获取主从节点信息;
利用所述主从节点信息,选定集群主节点;
对从节点以启动opengauss服务中的从节点启动模式进行启动。
7.根据权利要求1至3任一项所述的故障处理方法,其特征在于,所述集群状态为VIP异常,在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理,包括:
移除现有VIP;
从分布式键值数据库中获取真实的集群信息;
将VIP绑定到所述真实的集群信息对应主节点上,并更新所述分布式键值数据库。
8.一种故障处理装置,其特征在于,包括:
心跳检测模块,用于对每个节点的OpenGauss服务进行心跳检测,得到集群信息;
投票选举模块,用于利用所述集群信息对实例集群状态进行投票,得到集群状态和/或目标容灾系统;
故障恢复处理模块,用于在所述集群状态异常的情况下,按照集群异常分类对OpenGauss数据库集群进行恢复处理;
主备切换处理模块,用于在选出所述目标容灾系统的情况下,对所述目标容灾系统进行故障切换处理;其中,OpenGauss数据库集群中的容灾系统多副本部署。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述故障处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述故障处理方法的步骤。
CN202410035241.3A 2024-01-09 2024-01-09 一种故障处理方法、装置、设备及可读存储介质 Pending CN118018463A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410035241.3A CN118018463A (zh) 2024-01-09 2024-01-09 一种故障处理方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410035241.3A CN118018463A (zh) 2024-01-09 2024-01-09 一种故障处理方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN118018463A true CN118018463A (zh) 2024-05-10

Family

ID=90951049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410035241.3A Pending CN118018463A (zh) 2024-01-09 2024-01-09 一种故障处理方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN118018463A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118277488A (zh) * 2024-05-31 2024-07-02 济南浪潮数据技术有限公司 一种超融合系统分布式存储集群管理方法、装置及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118277488A (zh) * 2024-05-31 2024-07-02 济南浪潮数据技术有限公司 一种超融合系统分布式存储集群管理方法、装置及介质

Similar Documents

Publication Publication Date Title
CN107291787B (zh) 主备数据库切换方法和装置
CN102656565B (zh) 已复制数据的故障切换和恢复的方法和系统
CN102640108B (zh) 已复制数据的监控
US7802128B2 (en) Method to avoid continuous application failovers in a cluster
CN104036043B (zh) 一种mysql高可用的方法及管理节点
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
WO2013102812A1 (en) A fault tolerant system in a loosely-coupled cluster environment
CN118018463A (zh) 一种故障处理方法、装置、设备及可读存储介质
US7373542B2 (en) Automatic startup of a cluster system after occurrence of a recoverable error
CN111752488B (zh) 存储集群的管理方法、装置、管理节点及存储介质
CN110635941A (zh) 一种数据库节点集群故障迁移方法与装置
CN116781488A (zh) 数据库高可用实现方法、装置、数据库架构、设备和产品
CN111342986A (zh) 分布式节点管理方法及装置、分布式系统、存储介质
US10812586B2 (en) Method and system for high availability topology for master-slave data systems with low write traffic
CN114363356B (zh) 数据同步方法、系统、装置、计算机设备和存储介质
CN112491633B (zh) 一种多节点集群的故障恢复方法、系统及相关组件
CN116225607A (zh) 数据库的管理方法和装置
CN115549751A (zh) 遥感卫星地面站监控系统和方法
KR102294048B1 (ko) 블록체인 응용서비스의 복제 실행 방법 및 블록체인 응용서비스의 복제 실행 시스템
CN112702206A (zh) 一种主备集群部署方法及系统
CN114064349A (zh) 一种数据处理方法、装置、设备和存储介质
CN111970329A (zh) 一种集群服务的部署方法、系统、设备以及介质
CN112667449B (zh) 一种集群管理方法及装置
CN115617917B (zh) 一种数据库集群多活控制的方法、装置、系统和设备
CN116775596A (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