CN113704029A - 节点可用性管理、控制方法、节点、集群、装置及介质 - Google Patents

节点可用性管理、控制方法、节点、集群、装置及介质 Download PDF

Info

Publication number
CN113704029A
CN113704029A CN202111123565.5A CN202111123565A CN113704029A CN 113704029 A CN113704029 A CN 113704029A CN 202111123565 A CN202111123565 A CN 202111123565A CN 113704029 A CN113704029 A CN 113704029A
Authority
CN
China
Prior art keywords
node
master node
original
slave
master
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
CN202111123565.5A
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.)
Ctrip Travel Information Technology Shanghai Co Ltd
Original Assignee
Ctrip Travel Information Technology Shanghai 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 Ctrip Travel Information Technology Shanghai Co Ltd filed Critical Ctrip Travel Information Technology Shanghai Co Ltd
Priority to CN202111123565.5A priority Critical patent/CN113704029A/zh
Publication of CN113704029A publication Critical patent/CN113704029A/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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请实施例中提供节点可用性管理、控制方法、节点、集群、装置及介质,方法包括:在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;在所述切换完成后,关闭所述原主节点的写入服务。本申请实现数据库集群中主、从节点热备的自动快速切换,无需人工介入,提升效率;并且,能避免原、新主节点的数据不一致的问题,避免“脑裂”情况发生。

Description

节点可用性管理、控制方法、节点、集群、装置及介质
技术领域
本申请涉及数据库技术领域,尤其涉及节点可用性管理、控制方法、节点、集群、装置及介质。
背景技术
随着基于PostgreSQL的数据库在不断的投入生产使用后,需要保证PoststgreSQL数据库集群能够平稳运行。即需要一套高可用性机制,以在遭遇数据库服务中断、数据库服务器宕机、网络中断等情况下依然能够快速恢复业务。
通常,会采用数据库的主节点到备节点的热切换的方式来快速恢复业务。但是,切换过程中往往因为切换时的数据处理不妥,导致难以保障强数据一致性,造成正常写入数据丢失,以及数据在主、备节点发生错乱(也被称为“脑裂”)等,影响业务的一致性。此外,切换通常需要人工干预,耗时长、效率低,人工损耗较大,业务影响时间长;另外,目前的主备热切换方案在极端情况下的应对能力较弱,比如当集群中多数节点发生故障时,就会导致业务不可用。
以上问题会极大的影响数据库集群的可靠性,并且在发生问题时需要人工接入,效率低、耗时长,使得业务无法提供稳定且可靠的服务。
发明消息
鉴于以上所述现有技术的缺点,本申请的目的在于提供节点可用性管理、控制方法、节点、集群、装置及介质,解决现有技术的问题。
本申请第一方面提供一种节点可用性管理方法,应用于包含主节点及其通信的多个从节点的数据库集群;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点可用性管理方法包括:在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;在所述切换完成后,关闭所述原主节点的写入服务。
在第一方面的实施例中,所述的节点可用性管理方法包括:根据预设判活逻辑检测原主节点是否故障;所述判活逻辑包括:当检测到与原主节点之间连接失败的连续次数达到预设数量,判断原主节点故障;其中,所述检测周期性地执行;所述周期的时长配置成使至少一次所述检测位于短暂网络波动影响之后的网络正常状态中。
在第一方面的实施例中,所述的节点可用性管理方法包括:对各所述从节点按复制延迟大小进行排序;所述从各个原有的从节点中选择一个配置为新主节点,包括:选择各个原有的从节点中复制延迟最低的作为新主节点。
在第一方面的实施例中,所述的节点可用性管理方法包括:当原主节点及新主节点均故障时,依照所述排序选择延迟最低的存活从节点作为下一新主节点。
在第一方面的实施例中,所述的节点可用性管理方法还包括:各从节点搭建复制关系至所述新主节点。
在第一方面的实施例中,所述的节点可用性管理方法还包括:当所述原主节点故障修复后,其作为从节点搭建复制关系至所述新主节点。
在第一方面的实施例中,所述的节点可用性管理方法还包括:周期性地对各所述从节点进行复制延迟检测;若复制延迟超过预设延迟值,则告警提示。
在第一方面的实施例中,所述的节点可用性管理方法包括:当所有从节点均故障时,主节点与各从节点之间配置为异步复制模式;或者,当从节点从故障恢复时,主节点与恢复的从节点之间配置为同步复制模式。
在第一方面的实施例中,所述的节点可用性管理方法包括:周期性地检测各存活的从节点对主节点的复制模式是否为同步复制模式;若为异步复制模式,则修改配置为同步复制模式。
在第一方面的实施例中,所述数据库集群为关系型数据库;和/或,所述数据库集群为PostgresSQL数据库集群。
本申请第二方面提供一种节点控制方法,应用于数据库集群中的主节点,所述数据库集群还包括与所述主节点通信的多个从节点;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点控制方法包括:在出现故障时,原主节点被配置为从节点;在所述原主节点切换至新主节点后,所述原主节点的写入服务关闭;其中,所述新主节点从原有的各所述从节点中选择。
本申请第三方面提供一种节点可用性管理装置,应用于包含主节点及其通信的多个从节点的数据库集群;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点可用性管理装置包括:第一管理模块,用于在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;第二管理模块,用于在所述切换完成后,关闭所述原主节点的写入服务。
本申请第四方面提供一种节点控制装置,应用于数据库集群中的主节点,所述数据库集群还包括与所述主节点通信的多个从节点;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点控制装置包括:配置模块,用于在出现故障时,原主节点被配置为从节点;服务模块,用于在所述原主节点切换至新主节点后,关闭所述原主节点的写入服务;其中,所述新主节点从原有的各所述从节点中选择。
本申请第五方面提供一种管理节点,应用于数据库集群;所述管理节点包括:通信器、存储器及处理器;所述通信器用于与外部通信;所述存储器存储有程序指令;所述处理器用于运行所述程序指令以执行如第一方面任一项所述的节点可用性管理方法。
本申请第六方面提供一种主节点,应用于数据库集群;所述主节点包括:通信器、存储器及处理器;所述通信器用于与外部通信;所述存储器存储有程序指令;所述处理器用于运行所述程序指令以执行如第二方面所述的节点控制方法。
本申请第七方面提供一种数据库集群,包括:如第六方面所述的主节点;多个从节点,与所述主节点通信;如第五方面所述的管理节点,与所述主节点及各从节点通信。
本申请第八方面提供一种计算机可读存储介质,存储有程序指令,所述程序指令被运行以执行如第一方面任一项所述的节点可用性管理方法;或者,执行如第二方面任一项所述的节点控制方法。
综上,本申请实施例中提供节点可用性管理、控制方法、节点、集群、装置及介质,方法包括:在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;在所述切换完成后,关闭所述原主节点的写入服务。本申请实现数据库集群中主、从节点热备的自动快速切换,无需人工介入,提升效率;并且,能避免原、新主节点的数据不一致的问题,避免“脑裂”情况发生。
附图说明
图1展示本申请实施例中应用场景的示意图。
图2A和图2B展示本申请实施例中节点切换的过程示意图。
图3展示本申请实施例中节点可用性管理方法的流程示意图。
图4展示本申请实施例中节点控制方法的流程示意图。
图5展示本申请实施例中节点可用性管理装置的模块示意图。
图6展示本申请实施例中节点控制装置的模块示意图。
图7展示本申请实施例中高可用性软件工具的模块示意图。
图8展示本申请实施例中的计算机装置的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本申请所揭露的消息轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用系统,本申请中的各项细节也可以根据不同观点与应用系统,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属技术领域的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。
在本申请的表示中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的表示意指结合该实施例或示例表示的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,表示的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本申请中表示的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于表示目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的表示中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了明确说明本申请,省略与说明无关的器件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某器件与另一器件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种器件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
虽然在一些实例中术语第一、第二等在本文中用来表示各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等表示。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、模块、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、模块、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
此处使用的专业术语只用于言及特定实施例,并非意在限定本申请。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、作业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、作业、要素及/或成份的存在或附加。
虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本申请所属技术领域的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的消息相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。
目前,PostgreSQL数据库集群的稳定性依然受到挑战。如之前所述,虽然有采用主、备节点热切换的方案来替换故障的主节点,但是效率低下。并且,往往数据在主、备节点发生错乱,即“脑裂”,影响业务的一致性。
鉴于此,本申请实施例中通过对节点切换的控制,以及对节点数据写入的限制,以保障数据在原、新主节点的数据一致性,以防止“脑裂”发生。
如图1所示,展示本申请实施例中应用场景的示意图。
在图示场景中,展示有数据库集群100中的各个节点。在一些实例中,所述数据库集群100可以是关系型的,例如PoststgreSQL、或者MySQL等。其中,PoststgreSQ为开源数据库,相比MySQL而言限制更少。需说明的是,上述数据库类型只是举例,在其它实施例中可以加以变化,并非以此为限。各所述节点之间可基于网络通信连接。在一些实施例中,所述网络可以是有线网络,比如网络线缆、光纤连接的局域和/或广域网络。
如图1所示,展示的数据库集群100中的各节点包括:主节点101和多个从节点102。所述主节点101用于供外部写入数据,比如外部的通信设备对主节点101写入数据。各所述从节点102通信连接于所述主节点101,用于持续地从所述主节点101复制写入的数据以供外部读取,比如外部的通信设备从其中一个从节点102读取数据等。由此,数据库集群100可以实现与外部的通信设备之间的读写交互。主节点101用于供写数据,而从节点102用于供读数据,实现“读写分离”。对于使用频次高的数据库而言,读写分离能有效提升数据库的读、写效率。需说明的是,虽然图1示例中展示了“一写多读”的结构,即一个主节点101(即“一写”)多个从节点102(即“多读”)
在所述数据库集群100中还可包括管理节点103,通信连接于主节点101及各从节点102,以能在主节点101出现故障时,管理节点103执行主节点101从节点102之间的主备热切换。
如图2A及图2B所示,展示节点切换的一个具体示例,其中展示了节点1~节点4,节点1为主节点,节点2~节点4为从节点,主节点和从节点用不同的图案表示。在图2A中,当原主节点1发生故障(比如宕机等)时,管理节点根据预设规则从各个从节点(即节点2~节点4)中选择一个(比如节点3)设置为新主节点,并可将原主节点(即节点1)设置成新的从节点,如图2B中图案变化所示,而维持数据库集群一写多读的状态。
在原、新主节点的切换过程中,即原主节点降为从节点及原从节点升为新主节点的过程,一方面需要对切换时间控制,另一方面也需要对切换时原主节点的数据写入进行控制,以能保持原主节点和各个从节点的数据一致,则原、新主节点之间也可保持数据一致,以防止脑裂。
如图3所示,展示本申请实施例中节点可用性管理方法的流程示意图。所述节点可用性管理方法可应用在前述实施例中的管理节点。
具体的,所述流程包括:
步骤S301:管理节点在检测到原主节点故障时,配置所述原主节点为从节点,且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点。
在一些实施例中,当管理节点检测到原主节点故障,将原主节点降级为从节点。所述并行指的可以是同时或接近于同时,也就是管理节点在降级原主节点为从节点的情况下,同时将选择的一个从节点配置成新主节点。如此,保证尽量在最短时间内完成节点切换。举例来说,主节点A,从节点为B、C、D,当A故障,若在从节点选择节点C作为新主节点,则将A配置为从节点且同时将节点C切换为新主节点,形成新主节点C,以及从节点A、B、D。
在一些实施例中,各从节点可搭建复制关系至所述新主节点。例如上述示例中,新主节点C,从节点B、D可搭建复制关系至C,即从C复制数据。另外,当所述原主节点故障修复后,其作为从节点搭建复制关系至所述新主节点。例如上述示例中,原主节点即从节点A,待其故障修复后可正常作为从节点身份工作,其搭建复制关系到新主节点C,维持了原来一写三读的数据库节点结构。
在一些实施例中,所述管理节点可以根据预设判活逻辑来检测原主节点是否故障。其中,“活”指的是存活,形象地表示设备处于正常工作状态,判活逻辑即判断是否正常工作,不正常即故障。具体的,所述判活逻辑包括:当检测到与原主节点之间连接失败的连续次数达到预设数量,判断原主节点故障。其中,所述检测可周期性地执行,即每隔一个时间间隔执行一次检测。举例来说,管理节点对主节点的判活逻辑可采用在[0,N(s)*a]的时间范围内连续a次检测,若连续a次连接失败即判定当前主故障。N(s)表示单次检测的时间间隔,可以由预先的输入参数决定。通过这样的预设判活逻辑,可以有效避免现有技术中因为例如短暂网络报错或者服务短暂繁忙等短暂的网络波动情形而导致误切换的难点问题,也可以方便运维人员按照短暂的网络波动情形的影响时间而调整检测的单次间隔时间N(s),以使a次检测的时间范围会越过该短暂网络波动影响的影响时间,从而能避开所述短暂网络波动影响,让至少一次检测落在网络正常状态下,以避免误切换的可能。
在一些实施例中,关于从各从节点中选择新主节点的方式,可以根据各从节点的性能来选择。例如,对各所述从节点按复制延迟大小进行排序,并进一步选择延迟最低(即性能最强)的从节点作为新主节点,以维持或提升数据库性能。
步骤S302:在所述切换完成后,管理节点关闭所述原主节点的写入服务。
通过关闭原主节点的写入服务,使得原主节点不会有数据修改变化,使得从原主节点复制数据的各从节点能与主节点维持数据一致。
在更具体的实例中,在基于PostgreSQL的数据库的各个节点,从节点会先将主节点的数据复制到内存,并进而从内存复制数据到非易失性存储介质,如硬盘。当原主节点发生故障时,其写入的数据实际已被预先复制载入到从节点的内存中,以进一步从从节点的内存写入硬盘。因此,在通过步骤S301尽可能快地让原主节点下线并切换到新主节点,且通过步骤S302限制了原主节点切换到新主节点后继续被写入数据,从而保持原、新主节点上的数据强一致,避免脑裂现象。
对于原主节点,可以清除其数据,以在其从故障恢复后作为从节点构建对新主节点的复制关系。各个原有的从节点也搭建复制关系到新主节点。
为避免因多个从节点故障而令整个数据库系统无法使用的问题,在一些实施例中,当原主节点及新主节点均故障时,依照所述排序选择延迟最低的存活从节点作为下一新主节点,并将剩余的从节点搭建复制关系到此新主节点。举例来说,原主节点A,从节点B、C、D,当A故障,延迟从低到高顺序为C、B、D,C延迟最低应提升为新主节点,但若C也出了故障,则选择B作为新主节点,并将从节点D搭建复制关系到B。如此,就可以在原、新主节点都故障的极端情况下,也能保持数据库系统正常运作并满足数据强一致性的特性要求。
在一些实施例中,与对主节点进行判活的原理相似的是,也可对各个作为备选的从节点进行健康检测。例如,可以周期性(比如间隔10秒)地对各所述从节点进行复制延迟检测;若复制延迟超过预设延迟值(比如600秒),则告警提示。
在一些实施例中,从节点和主节点之间可以有多种复制模式,以应对节点正常或故障的不同情形。例如,当所有的从节点出现故障,各从节点与主节点的复制模式可以设置成异步复制模式,主节点持续写入,等有从节点故障恢复后,再进行复制。可选的,可以将出现故障的从节点的复制模式设置改为异步复制模式;当从节点从故障恢复时,修改主节点与恢复的从节点之间配置为同步复制模式。在另一些示例中,也可以周期性地检测各存活的从节点对主节点的复制模式是否为同步复制模式;若为异步复制模式,则可修改配置为同步复制模式。在上述示例中,即对出现故障的从节点设置异步复制模式以等待恢复,对正常运行(包括从故障恢复)的从节点设置同步复制模式,以保持与主节点的强数据一致性。
根据上述实施例,可以理解的是,选择延迟最低的从节点作为新主节,配合相应的同步复制模式,以保证从节点一直能接受到最新的主节点的数据,并可在最快的时间内无损地切换到新主节点,解决切换过程中始终保持强数据一致性,做到数据零丢失。
如图4所示,展示本申请实施例中节点控制方法的流程示意图。所述节点控制方法可以用于前述实施例中的主节点。
所述流程包括:
步骤S401:在出现故障时,原主节点被配置为从节点;
步骤S402:在所述原主节点切换至新主节点后,所述原主节点的写入服务关闭;其中,所述新主节点从原有的各所述从节点中选择。
如图5所示,展示本申请实施例中节点可用性管理装置500的模块示意图。所述节点可用性管理装置500应用于包含主节点及其通信的多个从节点的数据库集群,例如图1所示。需说明的是,所述节点可用性管理装置500的原理可以参考之前实施例(例如图3实施例)中的管理节点,故此处不对技术特征作重复赘述。
所述节点可用性管理装置500包括:
第一管理模块501,用于在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;
第二管理模块502,用于在所述切换完成后,关闭所述原主节点的写入服务。
在一些实施例中,所述的节点可用性管理装置500包括:
检测模块,根据预设判活逻辑检测原主节点是否故障;所述判活逻辑包括:当检测到与原主节点之间连接失败的连续次数达到预设数量,判断原主节点故障;其中,所述检测周期性地执行;所述周期的时长配置成使至少一次所述检测位于短暂网络波动影响之后的网络正常状态中。
在一些实施例中,所述的节点可用性管理装置500包括:
延迟计算模块,用于对各所述从节点按复制延迟大小进行排序;
所述第一管理模块501,用于选择各个原有的从节点中复制延迟最低的作为新主节点。
在一些实施例中,所述第一管理模块501,用于当原主节点及新主节点均故障时,依照所述排序选择延迟最低的存活从节点作为下一新主节点。
在一些实施例中,各从节点搭建复制关系至所述新主节点。
在一些实施例中,当所述原主节点故障修复后,其作为从节点搭建复制关系至所述新主节点。
在一些实施例中,所述的节点可用性管理装置500还包括:
延迟检测模块,用于周期性地对各所述从节点进行复制延迟检测;若复制延迟超过预设延迟值,则告警提示。
在一些实施例中,所述的节点可用性管理装置500包括:
复制模式配置模块,用于当所有从节点均故障时,使主节点与各从节点之间配置为异步复制模式;或者,当从节点从故障恢复时,主节点与恢复的从节点之间配置为同步复制模式。
在一些实施例中,所述的节点可用性管理装置500包括:复制模式检测模块,周期性地检测各存活的从节点对主节点的复制模式是否为同步复制模式;若为异步复制模式,则通过复制模式配置模块修改配置为同步复制模式。
在一些实施例中,所述数据库集群为关系型数据库;和/或,所述数据库集群为PostgresSQL数据库集群。
如图6所示,展示本申请实施例中节点控制装置600的模块示意图。所述节点控制装置600应用于包含主节点及其通信的多个从节点的数据库集群,例如图1所示。需说明的是,所述节点控制装置600的原理可以参考之前实施例(例如图4实施例)中的主节点,故此处不对技术特征作重复赘述。
所述节点控制装置600包括:
配置模块601,用于在出现故障时,原主节点被配置为从节点;
服务模块602,用于在所述原主节点切换至新主节点后,关闭所述原主节点的写入服务;其中,所述新主节点从原有的各所述从节点中选择。
需特别说明的是,在图5、图6实施例中的各个功能模块,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以程序指令产品的形式实现。程序指令产品包括一个或多个程序指令。在计算机上加载和执行程序指令指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
并且,图5、图6实施例所揭露的装置,可通过其它的模块划分方式实现。以上所表示的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或模块可以结合或者可以动态到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接于可以是通过一些接口,装置或模块的间接耦合或通信连接于,可以是电性或其它的形式。
另外,图5、图6实施例中的各功能模块及子模块可以动态在一个处理部件中,也可以是各个模块单独物理存在,也可以两个或两个以上模块动态在一个部件中。上述动态的部件既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述动态的部件如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
在一些实施例中,所述管理节点可以配置有高可用性的软件工具,通过运行所述高可用性软件工具来实现前述实施例中方法步骤的节点切换、检测等。
再如图7所示,展示本申请一具体实施例中高可用性软件工具的应用示意图。
所述高可用性工具700包括:主节点管理模块701、节点切换模块702、及从节点检测模块703。
以下逐一说明:
a)主节点管理模块701;
可选的,所述主节点管理模块701,可以用于进行主节点健康检查,例如检测主节点是否出现故障。
可选的,所述主节点管理模块701,还可以用于在原主节点发生故障时在原有的各从节点中选择新主节点,例如,根据各所述从节点最近的一个延时日志(relay log)中记载的的复制延时时间来选择延时最短的从节点。
b)节切换模块702;
可选的,所述节切换模块702,连接所述主节点管理模块701,用于根据主节点管理模块701选出的从节点(或者另外指定的从节点)提升为新主节点;进一步的,所述节切换模块702可用于配置剩余存活的从节点重新将复制搭建到新主节点。
c)从节点检测模块703;
可选的,所述从节点检测模块703,可用于从节点健康检测。例如,对从节点进行故障检测。又例如,对从节点进行复制延迟检测(可根据从节点的延时日志获得延时);当延时超过某个阈值(例如600秒),进行告警提示。
可选的,所述从节点检测模块703,还可用于进行从节点对主节点复制模式的配置。比如,当从节点全部故障时,主节点复制降级为异步复制模式;当存在从节点故障恢复或存活时,主节点复制升级为同步复制。以及,在原、新主节点切换后,当故障的原主节点(新从节点)恢复后重新搭建复制到新主节点。
可以理解的是,图7示例中的高可用性软件工具的模块构成只是一种示例,各模块的数量和各自功能皆可以加以变化,并非以此为限。
如图8所示,展示本申请实施例中计算机装置的电路结构示意图。
前述实施例中的管理节点、主节点、从节点等所依赖的计算机硬件基础(比如服务器、服务器组等),可基于本实施例中计算机装置800实现。在具体实现的示例中,所述计算机装置800可以作为所述管理节点、主节点、或从节点的例如服务器等电子设备中的一个处理单元。
所述计算机装置800包括:总线801、处理器802、存储器803;还可以包括通信器。通信器804。处理器802、存储器803之间可以通过总线801通信。所述存储器803中可以存储有程序指令(比如管理节点运行的高可用性软件工具),存储器803还可以存储有供程序指令读写的数据。所述处理器802通过运行存储器803中的程序指令来执行前述实施例(例如图3或图4)中方法的步骤流程。
总线801可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,虽然图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在一些实施例中,处理器802可以为中央处理器(Central Processing Unit,CPU)、微处理单元(MCU)、片上系统(System On Chip)、或现场可编程逻辑阵列(FPGA)等实现。存储器803可以包括易失性存储器(Volatile Memory)以用于运行程序时的数据暂存使用,例如随机存取存储器(Random Access Memory,RAM)。
存储器803还可以包括非易失性存储器(non-volatile memory)以用于数据存储,例如只读存储器(Read-Only Memory,ROM),快闪存储器,硬盘驱动器(Hard Disk Drive,HDD)或固态盘(Solid-State Disk,SSD)。
所述通信器804用于与外部通信。在具体实例中,所述通信器804可以包括一个或多个有线和/或无线通信电路模块。举例来说,所述通信器804可以包括例如有线网卡、USB模块、串行接口模块等中的一种或多种。无线通信模块所遵循的无线通信协议包括:例如近距离无线通信(Nearfield communication,NFC)技术、红外(Infared,IR)技术、全球移动通讯系统(Global System forMobile communications,GSM)、通用分组无线服务(GeneralPacket Radio Service,GPRS)、码分多址引入(Code Division MultipleAccess,CDMA)、宽带码分多址(Wideband Code division multiple access,WCDMA)、时分码分多址(Time-Division Code DivisionMultipleAccess,TD-SCDMA)、长期演进(Long Term Evolution,LTE)、蓝牙(BlueTooth,BT)、全球导航卫星系统(Global Navigation Satellite System,GNSS)等中的一种或多种。
本申请实施例中还可以提供一种计算机可读存储介质,存储有程序指令,所述程序指令被运行时执行之前实施例(例如图2、图3)中管理节点、主节点执行的方法流程步骤。
上述实施例中的方法步骤被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此表示的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。
需特别说明的是,本申请上述实施例的流程图表示的流程或方法表示可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
例如,图2、图3实施例中的各个步骤的顺序可能可以在具体场景中加以变化,并非以上述表示为限。
综上,本申请实施例中提供节点可用性管理、控制方法、节点、集群、装置及介质,方法包括:在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;在所述切换完成后,关闭所述原主节点的写入服务。本申请实现数据库集群中主、从节点热备的自动快速切换,无需人工介入,提升效率;并且,能避免原、新主节点的数据不一致的问题,避免“脑裂”情况发生。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (17)

1.一种节点可用性管理方法,其特征在于,应用于包含主节点及其通信的多个从节点的数据库集群;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点可用性管理方法包括:
在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;
在所述切换完成后,关闭所述原主节点的写入服务。
2.根据权利要求1所述的节点可用性管理方法,其特征在于,包括:根据预设判活逻辑检测原主节点是否故障;所述判活逻辑包括:
当检测到与原主节点之间连接失败的连续次数达到预设数量,判断原主节点故障;其中,所述检测周期性地执行;所述周期的时长配置成使至少一次所述检测位于短暂网络波动影响之后的网络正常状态中。
3.根据权利要求1所述的节点可用性管理方法,其特征在于,包括:对各所述从节点按复制延迟大小进行排序;
所述从各个原有的从节点中选择一个配置为新主节点,包括:
选择各个原有的从节点中复制延迟最低的作为新主节点。
4.根据权利要求3所述的节点可用性管理方法,其特征在于,包括:
当原主节点及新主节点均故障时,依照所述排序选择延迟最低的存活从节点作为下一新主节点。
5.根据权利要求1所述的节点可用性管理方法,其特征在于,还包括:各从节点搭建复制关系至所述新主节点。
6.根据权利要求1所述的节点可用性管理方法,其特征在于,还包括:当所述原主节点故障修复后,其作为从节点搭建复制关系至所述新主节点。
7.根据权利要求1所述的节点可用性管理方法,其特征在于,还包括:
周期性地对各所述从节点进行复制延迟检测;
若复制延迟超过预设延迟值,则告警提示。
8.根据权利要求1所述的节点可用性管理方法,其特征在于,包括:
当所有从节点均故障时,主节点与各从节点之间配置为异步复制模式;或者,当从节点从故障恢复时,主节点与恢复的从节点之间配置为同步复制模式。
9.根据权利要求1或8所述的节点可用性管理方法,其特征在于,包括:
周期性地检测各存活的从节点对主节点的复制模式是否为同步复制模式;
若为异步复制模式,则修改配置为同步复制模式。
10.根据权利要求1所述的节点可用性管理方法,其特征在于,所述数据库集群为关系型数据库;和/或,所述数据库集群为PostgresSQL数据库集群。
11.一种节点控制方法,其特征在于,应用于数据库集群中的主节点,所述数据库集群还包括与所述主节点通信的多个从节点;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点控制方法包括:
在出现故障时,原主节点被配置为从节点;
在所述原主节点切换至新主节点后,所述原主节点的写入服务关闭;其中,所述新主节点从原有的各所述从节点中选择。
12.一种节点可用性管理装置,其特征在于,应用于包含主节点及其通信的多个从节点的数据库集群;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点可用性管理装置包括:
第一管理模块,用于在检测到原主节点故障时,配置所述原主节点为从节点且并行地从各个原有的从节点中选择一个配置为新主节点,以从所述原主节点切换至新主节点;
第二管理模块,用于在所述切换完成后,关闭所述原主节点的写入服务。
13.一种节点控制装置,其特征在于,应用于数据库集群中的主节点,所述数据库集群还包括与所述主节点通信的多个从节点;所述主节点用于供写入数据,各所述从节点用于从所述主节点复制数据以供读取;所述节点控制方法包括:
配置模块,用于在出现故障时,原主节点被配置为从节点;
服务模块,用于在所述原主节点切换至新主节点后,关闭所述原主节点的写入服务;其中,所述新主节点从原有的各所述从节点中选择。
14.一种管理节点,其特征在于,应用于数据库集群;所述管理节点包括:通信器、存储器及处理器;所述通信器用于与外部通信;所述存储器存储有程序指令;所述处理器用于运行所述程序指令以执行如权利要求1至10中任一项所述的节点可用性管理方法。
15.一种主节点,其特征在于,应用于数据库集群;所述主节点包括:通信器、存储器及处理器;所述通信器用于与外部通信;所述存储器存储有程序指令;所述处理器用于运行所述程序指令以执行如权利要求11所述的节点控制方法。
16.一种数据库集群,其特征在于,包括:
如权利要求13所述的主节点;
多个从节点,与所述主节点通信;
如权利要求14所述的管理节点,与所述主节点及各从节点通信。
17.一种计算机可读存储介质,其特征在于,存储有程序指令,所述程序指令被运行以执行如权利要求1至10中任一项所述的节点可用性管理方法;或者,执行如权利要求11所述的节点控制方法。
CN202111123565.5A 2021-09-24 2021-09-24 节点可用性管理、控制方法、节点、集群、装置及介质 Pending CN113704029A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111123565.5A CN113704029A (zh) 2021-09-24 2021-09-24 节点可用性管理、控制方法、节点、集群、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111123565.5A CN113704029A (zh) 2021-09-24 2021-09-24 节点可用性管理、控制方法、节点、集群、装置及介质

Publications (1)

Publication Number Publication Date
CN113704029A true CN113704029A (zh) 2021-11-26

Family

ID=78661898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111123565.5A Pending CN113704029A (zh) 2021-09-24 2021-09-24 节点可用性管理、控制方法、节点、集群、装置及介质

Country Status (1)

Country Link
CN (1) CN113704029A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150273A (zh) * 2022-06-30 2022-10-04 联想(北京)有限公司 一种升级处理方法及装置
CN118503022A (zh) * 2024-07-16 2024-08-16 天翼视联科技有限公司 Redis Cluster集群数据中心故障切换隔离方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108599996A (zh) * 2018-04-03 2018-09-28 武汉斗鱼网络科技有限公司 数据库集群的故障处理方法、装置及终端
CN110635941A (zh) * 2019-08-30 2019-12-31 苏州浪潮智能科技有限公司 一种数据库节点集群故障迁移方法与装置
CN111200532A (zh) * 2020-01-02 2020-05-26 广州虎牙科技有限公司 数据库集群节点主从切换的方法、装置、设备和介质
CN111581284A (zh) * 2020-04-29 2020-08-25 上海中通吉网络技术有限公司 一种数据库高可用性方法、装置、系统和存储介质
CN113326251A (zh) * 2021-06-25 2021-08-31 深信服科技股份有限公司 数据管理方法、系统、设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108599996A (zh) * 2018-04-03 2018-09-28 武汉斗鱼网络科技有限公司 数据库集群的故障处理方法、装置及终端
CN110635941A (zh) * 2019-08-30 2019-12-31 苏州浪潮智能科技有限公司 一种数据库节点集群故障迁移方法与装置
CN111200532A (zh) * 2020-01-02 2020-05-26 广州虎牙科技有限公司 数据库集群节点主从切换的方法、装置、设备和介质
CN111581284A (zh) * 2020-04-29 2020-08-25 上海中通吉网络技术有限公司 一种数据库高可用性方法、装置、系统和存储介质
CN113326251A (zh) * 2021-06-25 2021-08-31 深信服科技股份有限公司 数据管理方法、系统、设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150273A (zh) * 2022-06-30 2022-10-04 联想(北京)有限公司 一种升级处理方法及装置
CN115150273B (zh) * 2022-06-30 2024-05-28 联想(北京)有限公司 一种升级处理方法及装置
CN118503022A (zh) * 2024-07-16 2024-08-16 天翼视联科技有限公司 Redis Cluster集群数据中心故障切换隔离方法及系统

Similar Documents

Publication Publication Date Title
CN107844268B (zh) 一种数据分发方法、数据存储方法、相关装置以及系统
CN105718570B (zh) 用于数据库的数据迁移方法和装置
CN113704029A (zh) 节点可用性管理、控制方法、节点、集群、装置及介质
CN108153622B (zh) 一种故障处理的方法、装置和设备
CN110532278B (zh) 声明式的MySQL数据库系统高可用方法
CN106933843B (zh) 数据库心跳检测方法以及装置
CN108228678B (zh) 一种多副本数据恢复方法及装置
CN104036043A (zh) 一种mysql高可用的方法及管理节点
CN105468484A (zh) 用于在存储系统中确定故障位置的方法和装置
US10176065B2 (en) Intelligent failure prediction and redundancy management in a data storage system
CN112199240B (zh) 一种节点故障时进行节点切换的方法及相关设备
CN115994044B (zh) 基于监控服务的数据库故障处理方法、装置及分布式集群
US9697078B2 (en) Method and device for auto recovery storage of JBOD array
CN108647118B (zh) 基于存储集群的副本异常恢复方法、装置及计算机设备
JP6511739B2 (ja) 冗長システムおよび冗長化方法
WO2017220013A1 (zh) 业务处理方法及装置、存储介质
CN110597655A (zh) 一种迁移与基于纠删码的重构相耦合的快速预知修复方法和实现
CN106844166B (zh) 一种数据处理方法及装置
CN115657965A (zh) 一种元数据的配置方法、装置及介质
US9116859B2 (en) Disk array system having a plurality of chassis and path connection method
CN110674099A (zh) 副本平衡方法、装置、存储介质及电子设备
CN106844094B (zh) 一种文件修复方法及装置
CN115794769A (zh) 高可用数据库管理的方法、电子设备及存储介质
CN115268785A (zh) 一种应用于分布式存储系统的管理方法、装置及存储介质
CN108599982B (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