CN111694694A - 数据库集群的处理方法、装置、存储介质和节点 - Google Patents

数据库集群的处理方法、装置、存储介质和节点 Download PDF

Info

Publication number
CN111694694A
CN111694694A CN202010443241.9A CN202010443241A CN111694694A CN 111694694 A CN111694694 A CN 111694694A CN 202010443241 A CN202010443241 A CN 202010443241A CN 111694694 A CN111694694 A CN 111694694A
Authority
CN
China
Prior art keywords
state
processing
node
exception handling
exception
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
CN202010443241.9A
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202010443241.9A priority Critical patent/CN111694694A/zh
Publication of CN111694694A publication Critical patent/CN111694694A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种数据库集群的处理方法、装置、存储介质和节点,应用于第一目标节点,该方法包括:在第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,将第一处理状态作为第一目标节点的第二处理状态,根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。

Description

数据库集群的处理方法、装置、存储介质和节点
技术领域
本公开涉及数据库故障处理技术领域,具体地,涉及一种数据库集群的处理方法、装置、存储介质和节点。
背景技术
随着企业的用户数量、数据量快速增长,对数据库处理能力和计算强度的要求不断提高。为了满足大数据场景下的数据服务要求,分布式数据库得到了广泛的应用。在对分布式数据库进行系统设计时,通常会在一致性和可用性之间进行妥协来满足不同的业务场景,在互联网业务场景下,对可用性的要求大于对一致性的要求。采用MySQL MS(英文:Master-Slave)架构的分布式数据库,是通过主从复制方案来实现副本之间的数据一致性,并通过数据库高可用系统来实现高可用。
当前,高可用系统主要是通过Raft算法来选举出Leader节点,并通过Leader节点,对数据库集群进行故障处理,当Leader节点所处的IDC(英文:Internet Data Center,中文:互联网数据中心)发生网络分区或Leader节点发生故障时,高可用系统会通过Raft算法,重新选举一个新的Leader节点,来对数据库集群进行故障处理。但是,新的Leader节点只会处理新发现的故障,而不会继续处理发生网络分区或Leader节点发生故障之前的故障,导致不能完成对数据库集群的故障处理,需要人工介入,影响高可用系统的可用性,增大故障恢复的RTO(英文:Recovery time objective,中文:恢复时间目标),进而导致无法快速重建数据库集群。
发明内容
为了解决现有技术中存在的问题,本公开提供了一种数据库集群的处理方法、装置、存储介质和节点。
为了实现上述目的,根据本公开实施例的第一方面,本公开提供一种数据库集群的处理方法,应用于数据处理系统中的第一目标节点,所述方法包括:
在所述数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若所述第一主节点发生异常,获取所述第一主节点在发生异常时的第一处理状态;所述第一处理状态为所述第一主节点在异常处理过程中所处的状态,所述第一目标节点为在所述第一主节点发生异常的情况下,重新选举的节点;
将所述第一处理状态作为所述第一目标节点的第二处理状态,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态;
根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
可选地,所述获取所述第一主节点在发生异常时的第一处理状态包括:
将所述第一主节点在发生异常前最后一次同步的处理状态,作为所述第一处理状态。
可选地,所述根据所述第二处理状态确定异常处理方式包括:
获取所述第二处理状态的状态处理标识,所述状态处理标识用于表征所述第二处理状态对应的所述异常处理方式;
根据所述状态处理标识确定所述第二处理状态对应的所述异常处理方式。
可选地,所述异常处理方式包括:回滚处理或推进处理,所述根据所述状态处理标识确定所述第二处理状态对应的所述异常处理方式,包括:
在所述状态处理标识标示可推进及可回滚的情况下,确定所述异常处理方式为回滚处理;
在所述状态处理标识标示不可推进及可回滚的情况下,确定所述异常处理方式为回滚处理;
在所述状态处理标识标示可推进及不可回滚的情况下,确定所述异常处理方式为推进处理;
在所述状态处理标识标示不可推进及不可回滚的情况下,确定所述异常处理方式为推进处理。
可选地,所述通过所述异常处理方式对所述数据库集群进行异常处理,包括:
在所述异常处理方式为回滚处理的情况下,将所述第一目标节点的所述第二处理状态回滚到处理逻辑的初始状态,所述处理逻辑为所述第一目标节点对所述数据库集群进行异常处理时所述第一目标节点的处理状态的切换顺序,所述初始状态为所述处理逻辑的第一个处理状态;
在所述异常处理方式为推进处理的情况下,将所述第一目标节点的所述第二处理状态推进到处理逻辑的最终状态,所述最终状态为所述处理逻辑的最后一个处理状态。
根据本公开实施例的第二方面,提供一种数据库集群的处理方法,应用于数据处理系统中的第二目标节点,所述方法包括:
若所述数据处理系统中的第二主节点所处的互联网数据中心IDC发生网络分区,对所述数据库集群进行异常处理,所述第二目标节点为在所述第二主节点所处的IDC发生网络分区的情况下,重新选举的节点;
在所述第二目标节点对所述数据库集群进行异常处理的情况下,将所述第二目标节点的第一处理状态同步到所述数据处理系统中除所述第二目标节点外的其他节点,所述第一处理状态为所述第二目标节点在异常处理过程中所处的状态,以便在所述第二目标节点发生异常的情况下,由第一目标节点在将所述第一处理状态作为所述第一目标节点的第二处理状态后,根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理,所述第一目标节点为在所述第二目标节点发生异常的情况下,重新选举的节点,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态。
可选地,所述方法还包括:
在所述第二主节点所处的IDC未发生网络分区,且所述第二主节点对发生异常的数据库集群进行异常处理的情况下,若所述第二主节点发生异常,获取所述第二主节点的第三处理状态,所述第三处理状态为所述第二主节点在异常处理过程中所处的状态;
将所述第三处理状态作为所述第二目标节点的所述第一处理状态;
根据所述第三处理状态确定所述异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
可选地,所述对所述数据库集群进行异常处理,包括:
在第一预设时长后,对所述数据库集群进行异常处理,其中,所述第二主节点在确定所述第二主节点所处的IDC是否发生网络分区前,停止对所述数据库集群的异常处理,所述第一预设时长大于或等于所述第二目标节点的选举时长。
可选地,通过以下方式确定所述第二主节点所处的IDC是否发生网络分区:
若所述第二主节点确定所述第二主节点所处的IDC包括的多个数据库中,存在网络状态异常的数据库的目标数量,大于或等于预设数量,确定所述第二主节点所处的IDC发生网络分区;
若所述第二主节点确定所述目标数量小于所述预设数量,确定所述第二主节点所处的IDC未发生网络分区。
根据本公开实施例的第三方面,提供一种数据库集群的处理装置,应用于数据处理系统中的第一目标节点,所述装置包括:
第一获取模块,用于在所述数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若所述第一主节点发生异常,获取所述第一主节点在发生异常时的第一处理状态;所述第一处理状态为所述第一主节点在异常处理过程中所处的状态,所述第一目标节点为在所述第一主节点发生异常的情况下,重新选举的节点;
第一处理模块,用于将所述第一处理状态作为所述第一目标节点的第二处理状态,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态;
所述第一处理模块,用于根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
可选地,所述第一获取模块用于:
将所述第一主节点在发生异常前最后一次同步的处理状态,作为所述第一处理状态。
可选地,所述第一处理模块用于:
获取所述第二处理状态的状态处理标识,所述状态处理标识用于表征所述第二处理状态对应的所述异常处理方式;
根据所述状态处理标识确定所述第二处理状态对应的所述异常处理方式。
可选地,所述异常处理方式包括:回滚处理或推进处理,所述第一处理模块用于:
在所述状态处理标识标示可推进及可回滚的情况下,确定所述异常处理方式为回滚处理;
在所述状态处理标识标示不可推进及可回滚的情况下,确定所述异常处理方式为回滚处理;
在所述状态处理标识标示可推进及不可回滚的情况下,确定所述异常处理方式为推进处理;
在所述状态处理标识标示不可推进及不可回滚的情况下,确定所述异常处理方式为推进处理。
可选地,所述第一处理模块用于:
在所述异常处理方式为回滚处理的情况下,将所述第一目标节点的所述第二处理状态回滚到处理逻辑的初始状态,所述处理逻辑为所述第一目标节点对所述数据库集群进行异常处理时所述第一目标节点的处理状态的切换顺序,所述初始状态为所述处理逻辑的第一个处理状态;
在所述异常处理方式为推进处理的情况下,将所述第一目标节点的所述第二处理状态推进到处理逻辑的最终状态,所述最终状态为所述处理逻辑的最后一个处理状态。
根据本公开实施例的第四方面,提供一种数据库集群的处理装置,应用于数据处理系统中的第二目标节点,所述装置包括:
第二处理模块,用于若所述数据处理系统中的第二主节点所处的互联网数据中心IDC发生网络分区,对所述数据库集群进行异常处理,所述第二目标节点为在所述第二主节点所处的IDC发生网络分区的情况下,重新选举的节点;
同步模块,用于在所述第二目标节点对所述数据库集群进行异常处理的情况下,将所述第二目标节点的第一处理状态同步到所述数据处理系统中除所述第二目标节点外的其他节点,所述第一处理状态为所述第二目标节点在异常处理过程中所处的状态,以便在所述第二目标节点发生异常的情况下,由第一目标节点在将所述第一处理状态作为所述第一目标节点的第二处理状态后,根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理,所述第一目标节点为在所述第二目标节点发生异常的情况下,重新选举的节点,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态。
可选地,所述装置还包括第二获取模块;
所述第二获取模块,用于在所述第二主节点所处的IDC未发生网络分区,且所述第二主节点对发生异常的数据库集群进行异常处理的情况下,若所述第二主节点发生异常,获取所述第二主节点的第三处理状态,所述第三处理状态为所述第二主节点在异常处理过程中所处的状态;
所述第二处理模块,还用于将所述第三处理状态作为所述第二目标节点的所述第一处理状态;
所述第二处理模块,还用于根据所述第三处理状态确定所述异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
可选地,所述第二处理模块用于:
在第一预设时长后,对所述数据库集群进行异常处理,其中,所述第二主节点在确定所述第二主节点所处的IDC是否发生网络分区前,停止对所述数据库集群的异常处理,所述第一预设时长大于或等于所述第二目标节点的选举时长。
可选地,通过以下方式确定所述第二主节点所处的IDC是否发生网络分区:
若所述第二主节点确定所述第二主节点所处的IDC包括的多个数据库中,存在网络状态异常的数据库的目标数量,大于或等于预设数量,确定所述第二主节点所处的IDC发生网络分区;
若所述第二主节点确定所述目标数量小于所述预设数量,确定所述第二主节点所处的IDC未发生网络分区。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第一方面所述方法的步骤。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第二方面所述方法的步骤。
根据本公开实施例的第七方面,提供一种节点,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现以上第一方面所述方法的步骤。
根据本公开实施例的第八方面,提供一种节点,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现以上第二方面所述方法的步骤。
通过上述技术方案,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种数据库集群的处理方法的流程图;
图2是图1所示实施例示出的一种处理状态的切换的示意图;
图3是图1所示实施例示出的一种数据处理系统和数据库集群的示意图;
图4是图1所示实施例示出的一种步骤103的流程图;
图5是图1所示实施例示出的另一种步骤103的流程图;
图6是图1所示实施例示出的一种第二处理状态切换的示意图;
图7是根据一示例性实施例示出的另一种数据库集群的处理方法的流程图;
图8是根据一示例性实施例示出的又一种数据库集群的处理方法的流程图;
图9是根据一示例性实施例示出的一种数据库集群的处理装置的框图;
图10是根据一示例性实施例示出的另一种数据库集群的处理装置的框图;
图11是根据一示例性实施例示出的又一种数据库集群的处理装置的框图;
图12是根据一示例性实施例示出的一种节点的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开提供的数据库集群的处理方法、装置、存储介质和节点之前,首先对本公开各个实施例所涉及应用场景进行介绍,该应用场景可以是通过数据库集群对外提供数据服务的场景。在该场景下,当数据库集群为采用MySQL MS架构的分布式数据库时,为了确保数据库集群能够对外提供稳定的数据服务,需要使该数据库集群在网络分区场景下也能够具备高可用性,即在数据库集群的Master节点(主节点)所处的IDC发生网络分区的情况下,数据库集群也能够快速地从没有发生网络分区的IDC中,选出新的Master节点,并通过新的Master节点完成对数据库集群的拓扑重建,以降低停工时间,从而使数据库集群能够对外提供稳定的数据服务。但是,MS架构自身并不能完成对数据库集群的拓扑重建,需要依赖独立的、具备高可用性的数据处理系统。
现有技术中,主要是采用Raft算法来确保数据处理系统的高可用,数据处理系统通过Raft算法来选举出主节点(即leader节点),并通过主节点,对数据库集群进行异常处理,当主节点所处的IDC发生网络分区或主节点发生故障时,数据处理系统会通过Raft算法,重新选举一个新的主节点,来对数据库集群进行异常处理。但是,新的主节点只会处理新发现的异常,而不会继续处理主节点所处的IDC发生网络分区或主节点发生故障之前的未完成的异常处理任务,导致无法完成对数据库集群的异常处理。例如,当主节点所处的机房出现宕机时(现实场景中,单机房中发生异常的数据库可以达到1000以上),该机房中的集群可能无法完成对数据库集群的拓扑重建,需要人工介入,影响数据处理系统的可用性,增大了数据库集群的异常恢复的RTO。
为了解决现有技术中存在的问题,本公开通过将数据处理系统中的节点对数据库集群进行异常处理的过程,分为一系列处理状态。在主节点对数据库集群进行异常处理时,通过Raft算法将主节点当前的处理状态,同步到数据处理系统中除主节点外的其他节点。当主节点发生异常时(主节点发生异常可以是主节点所处的IDC发生网络分区,也可以是主节点发生故障),由新选举出来的主节点,根据之前的主节点发生异常时的处理状态,继续处理之前的主节点未完成的异常处理任务,以完成对数据库集群的拓扑重建,不需要人工介入,缩短了数据库集群的异常恢复的RTO,同时提高了数据处理系统的可用性。
图1是根据一示例性实施例示出的一种数据库集群的处理方法的流程图。如图1所示,应用于数据处理系统中的第一目标节点,该方法包括以下步骤:
步骤101,在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点。
举例来说,数据处理系统包括多个处理节点,每个处理节点用于检测数据库集群中发生异常的异常数据库(异常数据库包括:发生故障的数据库,和处于网络分区中的数据库),并对数据库集群进行异常处理。在处理节点对数据库集群进行异常处理之前,可以预先将处理节点对数据库集群进行异常处理的过程,分为多个处理状态(处理状态可以是状态机,每个处理状态代表一个执行逻辑,例如,处理状态可以是主节点选取状态、拓扑重建状态、数据同步状态等),并根据多个处理状态在异常处理过程中的先后顺序生成处理状态的切换顺序,如图2所示。数据处理系统中的全部处理节点以及数据库集群中的全部数据库分布在多个IDC中,每个IDC均包括至少一个处理节点和至少一个数据库。如图3所示(L0、F0为数据处理系统的处理节点,M0、S0、M1、S1为数据库集群中的数据库),数据处理系统中的全部处理节点以及数据库集群中的全部数据库可以分布在IDC1、IDC2和IDC3中。在数据处理系统的第一主节点L0处于IDC1的情况下,若第一主节点L0检测到IDC1中的数据库M0发生异常,第一主节点L0开始对数据库集群进行异常处理,并将第一主节点L0在异常处理过程中所处的第一处理状态,通过Raft算法同步到多个处理节点中除第一主节点L0外的其他处理节点。
在第一主节点L0对数据库集群进行异常处理的过程中,若第一主节点L0发生异常,需要重新从多个处理节点中选举出第一目标节点L1,来对数据库集群进行异常处理。其中,第一主节点L0发生异常可以是第一主节点L0所处的IDC1发生网络分区,也可以是第一主节点L0发生故障(例如第一主节点L0出现宕机)。当第一主节点L0所处的IDC1发生网络分区时,选取第一目标节点L1的方式为:从不处于IDC1的全部处理节点中(即从IDC2、IDC3的全部处理节点中)选取第一目标节点L1。当第一主节点L0发生故障时,选取第一目标节点L1的方式为:从除第一主节点L0外的全部处理节点中选取第一目标节点L1。
在第一目标节点L1选举完成之后,第一目标节点L1可以获取第一主节点L0在发生异常时的第一处理状态,并根据第一处理状态,确定第一主节点L0是否完成对数据库集群的异常处理。确定第一主节点L0是否完成对数据库集群的异常处理的方式可以是:若第一处理状态为处理状态的切换顺序中的最后一个处理状态,则确定第一主节点L0完成对数据库集群的异常处理,若第一处理状态为处理状态的切换顺序中,除最后一个处理状态外的其他处理状态,则确定第一主节点L0未完成对数据库集群的异常处理。
步骤102,将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态。
在本步骤中,若第一主节点L0完成对数据库集群的异常处理,则第一目标节点L1不需要继续处理第一主节点L0未完成的异常处理任务,开始进行新一轮的异常数据库检测。若第一主节点L0未完成对数据库集群的异常处理,那么第一目标节点L1可以将第一主节点L0在发生异常前最后一次同步的处理状态,作为第一处理状态,并将第一处理状态,作为第一目标节点L1在异常处理过程中所处的第二处理状态。可以理解为,第一目标节点L1根据第一主节点L0的第一处理状态,确定第一主节点L0对数据库集群进行异常处理的进度,并根据第一主节点L0对数据库集群进行异常处理的进度,来确定第一目标节点L1所需要继续对数据库集群进行异常处理的进度。
步骤103,根据第二处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理。
示例的,在第一目标节点L1将第一处理状态作为第一目标节点L1的第二处理状态之后,第一目标节点L1可以根据第二处理状态确定异常处理方式,其中,异常处理方式可以包括:回滚处理或推进处理。当异常处理方式为回滚处理时,第一目标节点L1将第一主节点L0对数据库集群进行异常处理的进度,恢复到第一主节点L0对数据库集群进行异常处理之前的状态,并由第一目标节点L1重新对数据库集群进行异常处理,直至将数据库集群的拓扑重建为M1、S1、S0,以完成对数据库集群的异常处理。当异常处理方式为推进处理时,第一目标节点L1将继续推进第一主节点L0对数据库集群进行异常处理的进度(即由第一目标节点L1完成第一主节点L0未完成的异常处理任务),直至将数据库集群的拓扑重建为M1、S1、S0,以完成对数据库集群的异常处理。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
图4是图1所示实施例示出的一种步骤103的流程图。如图4所示,步骤103包括以下步骤:
步骤1031,获取第二处理状态的状态处理标识,状态处理标识用于表征第二处理状态对应的异常处理方式。
步骤1032,根据状态处理标识确定第二处理状态对应的异常处理方式。
举例来说,在第一主节点L0的第一处理状态不同时(即第一主节点L0对数据库集群进行异常处理的进度不同时),第一目标节点L1继续处理第一主节点L0未完成的异常处理任务的方式不同。为了确保第一目标节点L1能够继续处理第一主节点L0未完成的异常处理任务,可以预先根据处理状态的不同,设置每个处理状态对应的状态处理标识。其中,状态处理标识用于表征第二处理状态对应的异常处理方式,状态处理标识可以包括:回滚标识和推进标识,回滚标识分为可回滚/不可回滚,推进标识分为可推进/不可推进。
在第一目标节点L1将第一处理状态作为第一目标节点L1的第二处理状态之后,第一目标节点L1可以获取第二处理状态的状态处理标识,并根据状态处理标识确定第二处理状态对应的异常处理方式。其中,异常处理方式包括:回滚处理或推进处理,根据状态处理标识确定第二处理状态对应的异常处理方式的方式可以为:在状态处理标识标示可推进及可回滚的情况下,确定异常处理方式为回滚处理。在状态处理标识标示不可推进及可回滚的情况下,确定异常处理方式为回滚处理。在状态处理标识标示可推进及不可回滚的情况下,确定异常处理方式为推进处理。在状态处理标识标示不可推进及不可回滚的情况下,确定异常处理方式为推进处理。
图5是图1所示实施例示出的另一种步骤103的流程图。如图5所示,步骤103还可以包括以下步骤:
步骤1033,在异常处理方式为回滚处理的情况下,将第一目标节点的第二处理状态回滚到处理逻辑的初始状态,处理逻辑为第一目标节点对数据库集群进行异常处理时第一目标节点的处理状态的切换顺序,初始状态为处理逻辑的第一个处理状态。
举例来说,在异常处理方式为回滚处理的情况下,第一目标节点L1将第一目标节点的第二处理状态回滚到处理逻辑的初始状态(即将第二处理状态回滚到处理状态的切换顺序中的第一个处理状态),可以理解为,第一目标节点L1将第一主节点L0对数据库集群进行异常处理的进度,恢复到第一主节点L0对数据库集群进行异常处理之前的状态。之后由第一目标节点L1进行新一轮的异常数据库检测(此时能够检测出第一主节点L0所处理的异常数据库),并重新对数据库集群进行异常处理,直至完成对数据库集群的拓扑重建。如图6所示,在处理逻辑包括7个处理状态时,当第二处理状态为图6中的处理状态4时,第一目标节点L1根据处理状态4的状态处理标识确定异常处理方式为回滚处理。第一目标节点L1可以将第一目标节点L1的第二处理状态由处理状态4回滚到初始状态(如图6中的虚线箭头所示),初始状态为对数据库集群进行异常处理之前的状态。
步骤1034,在异常处理方式为推进处理的情况下,将第一目标节点的第二处理状态推进到处理逻辑的最终状态,最终状态为处理逻辑的最后一个处理状态。
示例的,在异常处理方式为推进处理的情况下,第一目标节点L1将第一目标节点的第二处理状态推进到处理逻辑的最终状态(即将第二处理状态推进到处理状态的切换顺序中的最后一个处理状态),可以理解为,第一目标节点L1继续推进第一主节点L0对数据库集群进行异常处理的进度,直至完成对数据库集群的拓扑重建。例如,当第二处理状态为图6中的处理状态4时,第一目标节点L1根据处理状态4的状态处理标识确定异常处理方式为推进处理。第一目标节点L1可以将第一目标节点的第二处理状态推进到处理逻辑的最终状态(如图6中的实线箭头所示),最终状态为完成对数据库集群进行异常处理的状态。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
图7是根据一示例性实施例示出的另一种数据库集群的处理方法的流程图。如图7所示,应用于数据处理系统中的第二目标节点,该方法包括以下步骤:
步骤201,若数据处理系统中的第二主节点所处的互联网数据中心IDC发生网络分区,对数据库集群进行异常处理,第二目标节点为在第二主节点所处的IDC发生网络分区的情况下,重新选举的节点。
举例来说,在第二主节点L0’对数据库集群进行异常处理的过程中,若第二主节点L0’所处的IDC发生网络分区,则需要从非第二主节点L0’所处的IDC中重新选举出第二目标节点L2,并由第二目标节点L2继续处理第二主节点L0’之前未完成的异常处理任务,即需要两个处理节点来对数据库集群进行异常处理,会增大异常恢复的RTO。为了缩短异常恢复的RTO,可以令第二主节点L0’在检测异常数据库之前,先确定第二主节点L0’所处的IDC是否发生网络分区。若第二主节点L0’所处的IDC发生网络分区,且第二主节点L0’未发生故障,第二主节点L0’会切换为关闭状态(即停止对数据库集群进行异常处理),并从多个处理节点中重新选举出第二目标节点L2。由第二目标节点L2对数据库集群进行异常处理。此时,第二目标节点L2将会从零开始对数据库集群进行异常处理,不需要由两个处理节点来对数据库集群进行异常处理,缩短了异常恢复的RTO。
步骤202,在第二目标节点对数据库集群进行异常处理的情况下,将第二目标节点的第一处理状态同步到数据处理系统中除第二目标节点外的其他节点,第一处理状态为第二目标节点在异常处理过程中所处的状态,以便在第二目标节点发生异常的情况下,由第一目标节点在将第一处理状态作为第一目标节点的第二处理状态后,根据第二处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理,第一目标节点为在第二目标节点发生异常的情况下,重新选举的节点,第二处理状态为第一目标节点在异常处理过程中所处的状态。
示例的,在第二目标节点L2对数据库集群进行异常处理的情况下,第二目标节点L2可以将第二目标节点L2在异常处理过程中所处的的第一处理状态,通过Raft算法同步到数据处理系统中,除第二目标节点L2外的其他处理节点。若第二目标节点L2发生异常(例如,第二目标节点L2所处的IDC发生网络分区或第二目标节点L2出现宕机),可以从多个处理节点中重新选举出第一目标节点L1。由第一目标节点L1根据第一处理状态确定第二目标节点L2是否完成对数据库集群的异常处理,并在第二目标节点L2未完成对数据库集群的异常处理的情况下,将第一处理状态作为第一目标节点的第二处理状态。之后第一目标节点L1根据第二处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
可选地,步骤201可以通过以下方式实现:
在第一预设时长后,对数据库集群进行异常处理,其中,第二主节点在确定所述第二主节点所处的IDC是否发生网络分区前,停止对数据库集群的异常处理,第一预设时长大于或等于第二目标节点的选举时长。
在一种场景中,第二目标节点L2对数据库集群进行异常处理的方式可以为:在第二主节点L0’对数据库集群进行异常处理之前,可以先确定第二主节点L0’所处的IDC是否发生网络分区。若第二主节点L0’所处的IDC发生网络分区,且第二主节点L0’未发生故障,第二主节点L0’会切换为关闭状态(即停止对数据库集群进行异常处理),并在第一预设时长T1后,由第二目标节点L2对数据库集群进行异常处理。此时,第二目标节点L2将会从零开始对数据库集群进行异常处理,不需要由两个处理节点来对数据库集群进行异常处理,缩短了异常恢复的RTO。其中,由第二目标节点L2从零开始对数据库集群进行异常处理,所需的异常恢复的RTO为T1+T2,T2为第二目标节点L2处理异常所需的时间,第一预设时长T1大于或等于第二目标节点的选举时长T0(通常可以设置T1略大于T0)。
图8是根据一示例性实施例示出的又一种数据库集群的处理方法的流程图。如图8所示,该方法还包括以下步骤:
步骤203,在第二主节点所处的IDC未发生网络分区,且第二主节点对发生异常的数据库集群进行异常处理的情况下,若第二主节点发生异常,获取第二主节点的第三处理状态,第三处理状态为第二主节点在异常处理过程中所处的状态。
步骤204,将第三处理状态作为第二目标节点的第一处理状态。
步骤205,根据第三处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理。
在另一种场景中,若第二主节点L0’所处的IDC未发生网络分区,第二主节点L0’开始对发生异常的数据库集群进行异常处理,并将第二目标节点L2在异常处理过程中所处的的第三处理状态,通过Raft算法同步到数据处理系统中,除第二主节点L0’外的其他处理节点。在第二主节点L0’对数据库集群进行异常的情况下,若第二主节点L0’发生异常,需要从多个处理节点中重新选举出第二目标节点L2。在第二目标节点L2选举完成之后,由第二目标节点L2获取在第二主节点L0’发生异常时的第三处理状态,并根据第三处理状态,确定第二主节点L0’是否完成对数据库集群的异常处理。若第二主节点L0’未完成对数据库集群的异常处理,那么第二目标节点L2可以将第二主节点L0’在发生异常前最后一次同步的处理状态,作为第三处理状态,并将第三处理状态作为第二目标节点L2的第一处理状态。最后由第二目标节点L2根据第三处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理。
可选地,可以通过以下方式确定第二主节点所处的IDC是否发生网络分区:
步骤1)若第二主节点确定第二主节点所处的IDC包括的多个数据库中,存在网络状态异常的数据库的目标数量,大于或等于预设数量,确定第二主节点所处的IDC发生网络分区。
步骤2)若第二主节点确定目标数量小于预设数量,确定第二主节点所处的IDC未发生网络分区。
举例来说,第二主节点L0’可以通过检测第二主节点L0’所处的IDC包括的多个数据库中,存在网络状态异常的数据库的目标数量,例如,第二主节点L0’可以通过核心交换线路与设置在第二主节点L0’所处的IDC的交换机进行通信,来确定存在网络状态异常的数据库的目标数量,其中,核心交换线路大于1且为奇数。若第二主节点L0’确定目标数量大于或等于预设数量(预设数量例如可以是第二主节点L0’所处的IDC包括的数据库的数量的1/2),则确定第二主节点所处的IDC发生网络分区。若第二主节点L0’确定目标数量小于预设数量,则确定第二主节点L0’所处的IDC未发生网络分区。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
图9是根据一示例性实施例示出的一种数据库集群的处理装置的框图。如图9所示,应用于数据处理系统中的第一目标节点,该装置300包括:
第一获取模块301,用于在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点。
第一处理模块302,用于将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态。
第一处理模块302,用于根据第二处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理。
可选地,第一获取模块301用于:
将第一主节点在发生异常前最后一次同步的处理状态,作为第一处理状态。
可选地,第一处理模块302用于:
获取第二处理状态的状态处理标识,状态处理标识用于表征第二处理状态对应的异常处理方式。
根据状态处理标识确定第二处理状态对应的异常处理方式。
可选地,异常处理方式包括:回滚处理或推进处理,第一处理模块302用于:
在状态处理标识标示可推进及可回滚的情况下,确定异常处理方式为回滚处理。
在状态处理标识标示不可推进及可回滚的情况下,确定异常处理方式为回滚处理。
在状态处理标识标示可推进及不可回滚的情况下,确定异常处理方式为推进处理。
在状态处理标识标示不可推进及不可回滚的情况下,确定异常处理方式为推进处理。
可选地,第一处理模块302用于:
在异常处理方式为回滚处理的情况下,将第一目标节点的第二处理状态回滚到处理逻辑的初始状态,处理逻辑为第一目标节点对数据库集群进行异常处理时第一目标节点的处理状态的切换顺序,初始状态为处理逻辑的第一个处理状态。
在异常处理方式为推进处理的情况下,将第一目标节点的第二处理状态推进到处理逻辑的最终状态,最终状态为处理逻辑的最后一个处理状态。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
图10是根据一示例性实施例示出的另一种数据库集群的处理装置的框图。如图10所示,应用于数据处理系统中的第二目标节点,该装置400包括:
第二处理模块401,用于若数据处理系统中的第二主节点所处的互联网数据中心IDC发生网络分区,对数据库集群进行异常处理,第二目标节点为在第二主节点所处的IDC发生网络分区的情况下,重新选举的节点。
同步模块402,用于在第二目标节点对数据库集群进行异常处理的情况下,将第二目标节点的第一处理状态同步到数据处理系统中除第二目标节点外的其他节点,第一处理状态为第二目标节点在异常处理过程中所处的状态,以便在第二目标节点发生异常的情况下,由第一目标节点在将第一处理状态作为第一目标节点的第二处理状态后,根据第二处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理,第一目标节点为在第二目标节点发生异常的情况下,重新选举的节点,第二处理状态为第一目标节点在异常处理过程中所处的状态。
图11是根据一示例性实施例示出的又一种数据库集群的处理装置的框图,如图11所示,装置400还包括第二获取模块403。
第二获取模块403,用于在第二主节点所处的IDC未发生网络分区,且第二主节点对发生异常的数据库集群进行异常处理的情况下,若第二主节点发生异常,获取第二主节点的第三处理状态,第三处理状态为第二主节点在异常处理过程中所处的状态。
第二处理模块401,还用于将第三处理状态作为第二目标节点的第一处理状态。
第二处理模块401,还用于根据第三处理状态确定异常处理方式,并通过异常处理方式对数据库集群进行异常处理。
可选地,第二处理模块401用于:
在第一预设时长后,对数据库集群进行异常处理,其中,第二主节点在确定第二主节点所处的IDC是否发生网络分区前,停止对数据库集群的异常处理,第一预设时长大于或等于第二目标节点的选举时长。
可选地,通过以下方式确定第二主节点所处的IDC是否发生网络分区:
若第二主节点确定第二主节点所处的IDC包括的多个数据库中,存在网络状态异常的数据库的目标数量,大于或等于预设数量,确定第二主节点所处的IDC发生网络分区。
若第二主节点确定目标数量小于预设数量,确定第二主节点所处的IDC未发生网络分区。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
图12是根据一示例性实施例示出的一种节点的框图。如图12所示,该节点700可以是上述实施例中的任一种第一目标节点或第二目标节点,该节点700可以包括:处理器701,存储器702。该节点700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该节点700的整体操作,以完成上述的数据库集群的处理方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该节点700的操作,这些数据例如可以包括用于在该节点700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该节点700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,节点700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据库集群的处理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据库集群的处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由节点700的处理器701执行以完成上述的数据库集群的处理方法。
综上所述,本公开通过在数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若第一主节点发生异常,获取第一主节点在发生异常时的第一处理状态,其中,第一处理状态为第一主节点在异常处理过程中所处的状态,第一目标节点为在第一主节点发生异常的情况下,重新选举的节点,之后将第一处理状态作为第一目标节点的第二处理状态,第二处理状态为第一目标节点在异常处理过程中所处的状态,最后根据第二处理状态确定异常处理方式,并通过该异常处理方式对数据库集群进行异常处理。本公开通过第一目标节点根据获取的第一主节点在发生异常时的第一处理状态,来确定第一目标节点的第二处理状态,并根据第二处理状态对数据库集群进行异常处理,能够在第一主节点发生异常时,由第一目标节点继续进行异常处理,不需要人工介入,数据库集群的异常恢复时间小,提高了数据处理系统的可用性。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (13)

1.一种数据库集群的处理方法,其特征在于,应用于数据处理系统中的第一目标节点,所述方法包括:
在所述数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若所述第一主节点发生异常,获取所述第一主节点在发生异常时的第一处理状态;所述第一处理状态为所述第一主节点在异常处理过程中所处的状态,所述第一目标节点为在所述第一主节点发生异常的情况下,重新选举的节点;
将所述第一处理状态作为所述第一目标节点的第二处理状态,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态;
根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一主节点在发生异常时的第一处理状态包括:
将所述第一主节点在发生异常前最后一次同步的处理状态,作为所述第一处理状态。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第二处理状态确定异常处理方式包括:
获取所述第二处理状态的状态处理标识,所述状态处理标识用于表征所述第二处理状态对应的所述异常处理方式;
根据所述状态处理标识确定所述第二处理状态对应的所述异常处理方式。
4.根据权利要求3所述的方法,其特征在于,所述异常处理方式包括:回滚处理或推进处理,所述根据所述状态处理标识确定所述第二处理状态对应的所述异常处理方式,包括:
在所述状态处理标识标示可推进及可回滚的情况下,确定所述异常处理方式为回滚处理;
在所述状态处理标识标示不可推进及可回滚的情况下,确定所述异常处理方式为回滚处理;
在所述状态处理标识标示可推进及不可回滚的情况下,确定所述异常处理方式为推进处理;
在所述状态处理标识标示不可推进及不可回滚的情况下,确定所述异常处理方式为推进处理。
5.根据权利要求4所述的方法,其特征在于,所述通过所述异常处理方式对所述数据库集群进行异常处理,包括:
在所述异常处理方式为回滚处理的情况下,将所述第一目标节点的所述第二处理状态回滚到处理逻辑的初始状态,所述处理逻辑为所述第一目标节点对所述数据库集群进行异常处理时所述第一目标节点的处理状态的切换顺序,所述初始状态为所述处理逻辑的第一个处理状态;
在所述异常处理方式为推进处理的情况下,将所述第一目标节点的所述第二处理状态推进到处理逻辑的最终状态,所述最终状态为所述处理逻辑的最后一个处理状态。
6.一种数据库集群的处理方法,其特征在于,应用于数据处理系统中的第二目标节点,所述方法包括:
若所述数据处理系统中的第二主节点所处的互联网数据中心IDC发生网络分区,对所述数据库集群进行异常处理,所述第二目标节点为在所述第二主节点所处的IDC发生网络分区的情况下,重新选举的节点;
在所述第二目标节点对所述数据库集群进行异常处理的情况下,将所述第二目标节点的第一处理状态同步到所述数据处理系统中除所述第二目标节点外的其他节点,所述第一处理状态为所述第二目标节点在异常处理过程中所处的状态,以便在所述第二目标节点发生异常的情况下,由第一目标节点在将所述第一处理状态作为所述第一目标节点的第二处理状态后,根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理,所述第一目标节点为在所述第二目标节点发生异常的情况下,重新选举的节点,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述第二主节点所处的IDC未发生网络分区,且所述第二主节点对发生异常的数据库集群进行异常处理的情况下,若所述第二主节点发生异常,获取所述第二主节点的第三处理状态,所述第三处理状态为所述第二主节点在异常处理过程中所处的状态;
将所述第三处理状态作为所述第二目标节点的所述第一处理状态;
根据所述第三处理状态确定所述异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
8.根据权利要求6所述的方法,其特征在于,所述对所述数据库集群进行异常处理,包括:
在第一预设时长后,对所述数据库集群进行异常处理,其中,所述第二主节点在确定所述第二主节点所处的IDC是否发生网络分区前,停止对所述数据库集群的异常处理,所述第一预设时长大于或等于所述第二目标节点的选举时长。
9.根据权利要求6-8中任一项所述的方法,其特征在于,通过以下方式确定所述第二主节点所处的IDC是否发生网络分区:
若所述第二主节点确定所述第二主节点所处的IDC包括的多个数据库中,存在网络状态异常的数据库的目标数量,大于或等于预设数量,确定所述第二主节点所处的IDC发生网络分区;
若所述第二主节点确定所述目标数量小于所述预设数量,确定所述第二主节点所处的IDC未发生网络分区。
10.一种数据库集群的处理装置,其特征在于,应用于数据处理系统中的第一目标节点,所述装置包括:
第一获取模块,用于在所述数据处理系统中的第一主节点对发生异常的数据库集群进行异常处理的情况下,若所述第一主节点发生异常,获取所述第一主节点在发生异常时的第一处理状态;所述第一处理状态为所述第一主节点在异常处理过程中所处的状态,所述第一目标节点为在所述第一主节点发生异常的情况下,重新选举的节点;
第一处理模块,用于将所述第一处理状态作为所述第一目标节点的第二处理状态,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态;
所述第一处理模块,用于根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理。
11.一种数据库集群的处理装置,其特征在于,应用于数据处理系统中的第二目标节点,所述装置包括:
第二处理模块,用于若所述数据处理系统中的第二主节点所处的互联网数据中心IDC发生网络分区,对所述数据库集群进行异常处理,所述第二目标节点为在所述第二主节点所处的IDC发生网络分区的情况下,重新选举的节点;
同步模块,用于在所述第二目标节点对所述数据库集群进行异常处理的情况下,将所述第二目标节点的第一处理状态同步到所述数据处理系统中除所述第二目标节点外的其他节点,所述第一处理状态为所述第二目标节点在异常处理过程中所处的状态,以便在所述第二目标节点发生异常的情况下,由第一目标节点在将所述第一处理状态作为所述第一目标节点的第二处理状态后,根据所述第二处理状态确定异常处理方式,并通过所述异常处理方式对所述数据库集群进行异常处理,所述第一目标节点为在所述第二目标节点发生异常的情况下,重新选举的节点,所述第二处理状态为所述第一目标节点在异常处理过程中所处的状态。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5或6-9中任一项所述方法的步骤。
13.一种节点,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5或6-9中任一项所述方法的步骤。
CN202010443241.9A 2020-05-22 2020-05-22 数据库集群的处理方法、装置、存储介质和节点 Pending CN111694694A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010443241.9A CN111694694A (zh) 2020-05-22 2020-05-22 数据库集群的处理方法、装置、存储介质和节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010443241.9A CN111694694A (zh) 2020-05-22 2020-05-22 数据库集群的处理方法、装置、存储介质和节点

Publications (1)

Publication Number Publication Date
CN111694694A true CN111694694A (zh) 2020-09-22

Family

ID=72477249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010443241.9A Pending CN111694694A (zh) 2020-05-22 2020-05-22 数据库集群的处理方法、装置、存储介质和节点

Country Status (1)

Country Link
CN (1) CN111694694A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468596A (zh) * 2020-12-02 2021-03-09 苏州浪潮智能科技有限公司 一种集群仲裁方法、装置、电子设备及可读存储介质
CN113364874A (zh) * 2021-06-09 2021-09-07 网易(杭州)网络有限公司 基于区块链的节点同步方法、装置、存储介质及服务器
CN117827981A (zh) * 2024-03-06 2024-04-05 北京万里开源软件有限公司 一种MySQL数据库集群的链路检测方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331047A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 一种集群设备性能同步统计方法及系统
CN107480004A (zh) * 2017-07-27 2017-12-15 东软集团股份有限公司 故障恢复方法、装置和计算机设备
CN108599996A (zh) * 2018-04-03 2018-09-28 武汉斗鱼网络科技有限公司 数据库集群的故障处理方法、装置及终端
CN108616566A (zh) * 2018-03-14 2018-10-02 华为技术有限公司 raft分布式系统选主方法、相关设备及系统
CN109951331A (zh) * 2019-03-15 2019-06-28 北京百度网讯科技有限公司 用于发送信息的方法、装置和计算集群
CN109976980A (zh) * 2019-04-11 2019-07-05 苏州浪潮智能科技有限公司 一种分布式集群监控方法、系统和存储介质
CN110290012A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 RabbitMQ集群故障的检测恢复系统及方法
US10454754B1 (en) * 2016-12-16 2019-10-22 Amazon Technologies, Inc. Hybrid cluster recovery techniques
CN110990183A (zh) * 2019-12-04 2020-04-10 腾讯科技(深圳)有限公司 数据库集群的异常检测方法、装置、计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331047A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 一种集群设备性能同步统计方法及系统
US10454754B1 (en) * 2016-12-16 2019-10-22 Amazon Technologies, Inc. Hybrid cluster recovery techniques
CN107480004A (zh) * 2017-07-27 2017-12-15 东软集团股份有限公司 故障恢复方法、装置和计算机设备
CN108616566A (zh) * 2018-03-14 2018-10-02 华为技术有限公司 raft分布式系统选主方法、相关设备及系统
CN108599996A (zh) * 2018-04-03 2018-09-28 武汉斗鱼网络科技有限公司 数据库集群的故障处理方法、装置及终端
CN109951331A (zh) * 2019-03-15 2019-06-28 北京百度网讯科技有限公司 用于发送信息的方法、装置和计算集群
CN109976980A (zh) * 2019-04-11 2019-07-05 苏州浪潮智能科技有限公司 一种分布式集群监控方法、系统和存储介质
CN110290012A (zh) * 2019-07-03 2019-09-27 浪潮云信息技术有限公司 RabbitMQ集群故障的检测恢复系统及方法
CN110990183A (zh) * 2019-12-04 2020-04-10 腾讯科技(深圳)有限公司 数据库集群的异常检测方法、装置、计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
庄超明;: "构建高可用的公安视频图像信息数据库接口服务", 中国安防, no. 09, 1 September 2018 (2018-09-01) *
王嘉豪;蔡鹏;钱卫宁;周傲英;: "集群数据库系统的日志复制和故障恢复", 软件学报, no. 03, 31 December 2017 (2017-12-31), pages 476 - 489 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468596A (zh) * 2020-12-02 2021-03-09 苏州浪潮智能科技有限公司 一种集群仲裁方法、装置、电子设备及可读存储介质
CN112468596B (zh) * 2020-12-02 2022-07-05 苏州浪潮智能科技有限公司 一种集群仲裁方法、装置、电子设备及可读存储介质
US11902095B2 (en) 2020-12-02 2024-02-13 Inspur Suzhou Intelligent Technology Co., Ltd. Cluster quorum method and apparatus, electronic device, and readable storage medium
CN113364874A (zh) * 2021-06-09 2021-09-07 网易(杭州)网络有限公司 基于区块链的节点同步方法、装置、存储介质及服务器
CN113364874B (zh) * 2021-06-09 2022-06-10 网易(杭州)网络有限公司 基于区块链的节点同步方法、装置、存储介质及服务器
CN117827981A (zh) * 2024-03-06 2024-04-05 北京万里开源软件有限公司 一种MySQL数据库集群的链路检测方法及系统

Similar Documents

Publication Publication Date Title
CN111694694A (zh) 数据库集群的处理方法、装置、存储介质和节点
CN113014634B (zh) 集群选举处理方法、装置、设备及存储介质
JP4648447B2 (ja) 障害復旧方法、プログラムおよび管理サーバ
CN110389858B (zh) 存储设备的故障恢复方法和设备
EP3528431B1 (en) Paxos protocol-based methods and apparatuses for online capacity expansion of distributed consistency system
CN108984349B (zh) 主节点选举方法及装置、介质和计算设备
US11902095B2 (en) Cluster quorum method and apparatus, electronic device, and readable storage medium
CN110659262A (zh) 一种redis节点主从切换方法及装置
CN110635941A (zh) 一种数据库节点集群故障迁移方法与装置
WO2023071999A1 (zh) 一种用户匹配方法、装置、设备及存储介质
CN113126925B (zh) 一种成员列表确定方法、装置、设备及可读存储介质
CN115168322A (zh) 数据库系统、主库选举方法及装置
CN112437119B (zh) 分布式系统升级方法、装置及节点
CN113810216B (zh) 一种集群的故障切换方法、装置及电子设备
US10169441B2 (en) Synchronous data replication in a content management system
CN113438111A (zh) 基于Raft分布式恢复RabbitMQ网络分区的方法及应用
CN112751693B (zh) 分布式存储系统的数据处理方法、装置及电子设备
CN115563028A (zh) 一种数据缓存方法、装置、设备和存储介质
CN108881452B (zh) 一种数据同步的方法、装置及存储介质
CN109587061B (zh) 一种路由处理的方法、装置及设备
CN108984346B (zh) 一种生产数据容灾的方法、系统及存储介质
CN107710165B (zh) 用于存储节点同步业务请求的方法和装置
CN111083192B (zh) 数据共识方法、装置及电子设备
CN112714143A (zh) 分布式存储系统的服务协调方法、装置及电子设备
CN115981879B (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