CN116069583A - 一种数据库集群管理方法、装置及网络设备 - Google Patents

一种数据库集群管理方法、装置及网络设备 Download PDF

Info

Publication number
CN116069583A
CN116069583A CN202111300010.3A CN202111300010A CN116069583A CN 116069583 A CN116069583 A CN 116069583A CN 202111300010 A CN202111300010 A CN 202111300010A CN 116069583 A CN116069583 A CN 116069583A
Authority
CN
China
Prior art keywords
node
master node
database cluster
cluster
vip
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
CN202111300010.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.)
China Mobile Communications Group Co Ltd
China Mobile Shanghai ICT Co Ltd
CM Intelligent Mobility Network Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Shanghai ICT Co Ltd
CM Intelligent Mobility Network 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 China Mobile Communications Group Co Ltd, China Mobile Shanghai ICT Co Ltd, CM Intelligent Mobility Network Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202111300010.3A priority Critical patent/CN116069583A/zh
Publication of CN116069583A publication Critical patent/CN116069583A/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/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • 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/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据库集群管理方法、装置及网络设备,涉及数据库技术领域。该方法包括:获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。本发明的方案,解决了现有技术中的数据库集群脑裂应急处理方案成本较高,且难以满足部署在虚拟机或云上的数据库集群的脑裂应急处理需求的问题。

Description

一种数据库集群管理方法、装置及网络设备
技术领域
本发明涉及数据库技术领域,特别是指一种数据库集群管理方法、装置及网络设备。
背景技术
随着开源项目的兴起,开源数据库得到了广泛的使用。其中,PostgreSQL是一种功能非常强大而且开放源代码的关系型数据库,被称为实际上最先进的开源关系型数据库。因为功能强大,加之现代计算机的计算能力和存储性能的巨大提升,以及云计算的技术越来越成熟,使得PostgreSQL在各个企业被广泛使用,一个企业拥有几十个甚至上百个PostgreSQL实例或者集群的情况已经普遍存在。
PostgreSQL提供一种原生主从数据复制技术,可以使数据库以主从的模式在多个服务器上运行,主数据库和从数据库组成了一个数据库集群,主数据库提供数据读写功能,从数据库提供只读功能,整个集群通过VIP(Virtual IP Address,虚拟IP地址)提供数据库服务,VIP需要挂载在主节点,数据库集群才能提供读写服务。当提供读写功能的主数据库出现故障的时候,需要把从数据库提升为新主数据库,并把VIP切换到新主数据库,保证数据库的高可用性,保证应用通过VIP能继续在新主节点写入数据,不影响应用正常运行,最大程度的保证数据库集群服务对应用的透明性。但是,由于PostgreSQL本身并不提供自动切换的功能,当需要切换的时候,需要运维人员手工输入命令来切换。然而,这种方法难以满足应用对数据库高可用性的要求,而且手工切换时效性较差,对应用的影响较大,所以,PostgreSQL数据库需要通过第三方软件来实现高可用,目前最为流行的开源软件是Corosync+Pacemaker的组合,能够实现PostgreSQL数据库集群的主从数据复制以及主从自动切换功能。
数据库脑裂是指一个数据库集群由于网络故障等原因出现多个主节点,并且VIP同时挂载在多个主节点,都可以提供读写服务。比如三个节点组成的集群,出现了两个小集群:一个集群由一个节点组成,另外一个集群由剩下的两个节点组成。发生脑裂后,应用的数据可能任意写到分裂出来的小集群里,造成两个集群的数据不一致,应用的数据变得混乱,并且很难修复,所以数据库集群一定要有可靠的防脑裂方案。
目前,主流的防脑裂技术是通过共享存储和切断主机电源的方式来实现,而这两种方案都需要硬件方案来支撑,需要投入资金购买相关硬件设备,如果一个企业部署了大量PostgreSQL数据库集群,通过采购防脑裂硬件设备会增加大量投资成本及运维成本,也会增加后期运维工作的难度,且硬件设备都有一定使用年限,随着时间推移,故障率越高,维护成本也越高。
另外,随着虚拟化和云化技术的盛行,许多企业采用虚拟化技术或者云化服务器部署数据库集群,而在虚拟化和云中难以通过硬件方案来实现数据库集群防脑裂。
综上,现有数据库集群防脑裂方案主要是通过购买并部署硬件设备来实现,造成投资及运维成本较高,且难以满足部署在虚拟机或云上的数据库集群的防脑裂需求。
发明内容
本发明的目的是提供一种数据库集群管理方法、装置及网络设备,解决了现有技术中的数据库集群脑裂应急处理方案成本较高,且难以满足部署在虚拟机或云上的数据库集群的脑裂应急处理需求的问题。
为达到上述目的,本发明的实施例提供一种数据库集群管理方法,应用于数据库集群中的第一节点,包括:
获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、IP(Internet Protocol,互联网协议)地址和网关地址;
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
可选地,所述根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作,包括:
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点;
在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
根据判断结果,对所述数据库集群中的节点执行管理操作。
可选地,所述根据判断结果,对所述数据库集群中的节点执行管理操作,包括:
在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
可选地,在所述对所述预配置主节点执行第一管理操作之后,所述方法还包括:
判断所述预配置主节点是否为主节点状态;
在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
可选地,还包括以下至少一项:
在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
可选地,所述根据判断结果,对所述数据库集群中的节点执行管理操作,包括:
在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
根据判断结果,对所述第一节点执行管理操作。
可选地,所述根据判断结果,对所述第一节点执行管理操作,包括:
在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
可选地,所述根据判断结果,对所述第一节点执行管理操作,包括:
在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
可选地,所述方法还包括:
发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
可选地,所述方法还包括:
在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
为达到上述目的,本发明的实施例提供一种数据库集群管理装置,应用于数据库集群中的第一节点,包括:
获取模块,用于获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
处理模块,用于根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
可选地,所述处理模块包括:
第一处理子模块,用于根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点;
第二处理子模块,用于在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
第三处理子模块,用于根据判断结果,对所述数据库集群中的节点执行管理操作。
可选地,所述第三处理子模块包括:
第一处理单元,用于在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
第二处理单元,用于在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
第三处理单元,用于在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
可选地,所述第三处理子模块还包括:
第四处理单元,用于判断所述预配置主节点是否为主节点状态;
第五处理单元,用于在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
可选地,所述装置还包括:
第一发送模块,用于在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
第二发送模块,用于在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
第一记录模块,用于在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
可选地,所述第三处理子模块包括:
第六处理单元,用于在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
第七处理单元,用于根据判断结果,对所述第一节点执行管理操作。
可选地,所述第七处理单元包括:
第一处理子单元,用于在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
可选地,所述第七处理单元包括:
第二处理子单元,用于在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
解除绑定子单元,用于在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
可选地,所述装置还包括:
第三发送模块,用于发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
可选地,所述装置还包括:
第四发送模块,用于在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
为达到上述目的,本发明的实施例提供一种网络设备,包括处理器和收发机,其中,所述处理器用于:
获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
可选地,所述处理器在根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作时,具体用于:
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点;
在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
根据判断结果,对所述数据库集群中的节点执行管理操作。
可选地,所述处理器在根据判断结果,对所述数据库集群中的节点执行管理操作时,具体用于:
在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
可选地,所述处理器还用于:
判断所述预配置主节点是否为主节点状态;
在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
可选地,所述处理器还用于:
在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
可选地,所述处理器在根据判断结果,对所述数据库集群中的节点执行管理操作时,具体用于:
在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
根据判断结果,对所述第一节点执行管理操作。
可选地,所述处理器在根据判断结果,对所述第一节点执行管理操作时,具体用于:
在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
可选地,所述处理器在根据判断结果,对所述第一节点执行管理操作时,具体用于:
在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
可选地,所述处理器还用于:
发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
可选地,所述处理器还用于:
在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
为达到上述目的,本发明的实施例提供一种网络设备,包括收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行所程序或指令时实现如上所述的数据库集群管理方法。
为达到上述目的,本发明的实施例提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上所述的数据库集群管理方法中的步骤。
本发明的上述技术方案的有益效果如下:
本发明实施例的方法,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
附图说明
图1为本发明实施例的数据库集群管理方法的流程图;
图2为本发明实施例中PostgreSQL集群架构图;
图3为本发明实施例的fence_check代码执行流程图;
图4为本发明实施例的数据库集群管理装置的结构图;
图5为本发明实施例的网络设备的结构图;
图6为本发明另一实施例的网络设备的结构图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
如图1所示,本发明实施例的一种数据库集群管理方法,应用于数据库集群中的第一节点,包括:
步骤101,获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址。
需要说明的是,服务器名是节点所在服务器的服务器名,IP地址为节点所在服务器的IP地址,网关地址为该数据库集群对应网关的网关地址。其中,互联网协议IP地址和网关地址可以用来检测数据库集群中节点到网关的网络连通状态。
步骤102,根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
该实施例中,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
作为本发明一可选的实施例,本发明所提供的数据库集群管理方法可以由代码来实现,例如,本发明实施例可以使用开源软件Pacemaker和Corosync作为集群管理基础软件,来实现集群管理的基础功能,并使用自主开发的RA(Resource Agent,资源实体)fence_check来实现集群防脑裂功能(即及时发现集群脑裂现象,并及时采取应对措施,停止该脑裂现象)。具体的,通过编写符合Pacemaker集群资源管理组件的Resource Agent(RA)规范的代码(即fence_check代码),在开源集群管理组件Pacemaker中注册资源并按照需要自动运行。
如此,fence_check代码作为一个资源在数据库集群中运行,不需要依赖如ZOOKEEPER、ETCD等分布式仲裁软件即可实现防脑裂功能;这样,可以使用代码来实现PostgreSQL数据库集群的防脑裂功能,代码量少且易理解,还可以根据不同场景需求对防脑裂代码进行修改;此外,还可在任意数量节点的数据库集群部署实施,可实时在线拓展新节点,不影响现有集群的正常运行。
现有技术中的数据库防脑裂机制主要通过硬件(硬件主要指的是共享磁盘和切断电源的设备)来实现,在大规模部署的情况下,硬件成本会很高,后期硬件维护成本也很高。相较于现有技术,本发明实施例的fence_check代码不需要部署在额外的服务器或者虚拟机上边,无需增加防脑裂的硬件,部署成本低,投资少,减少了运维成本。
需要指出的是,当前云和虚拟化技术十分流行,数据库集群大部分部署在虚拟化或者云化的服务器中,在此种场景下,无法使用硬件防脑裂设备。本发明实施例可以采用代码的方式,在物理机、虚拟机和云上部署,能够解决在虚拟化或者云化环境部署的PostgreSQL数据库集群无法使用硬件防脑裂设备的问题,适用于物理机、虚拟机和云服务器中部署的PostgreSQL集群,满足了多场景的部署需求。
还需要指出的是,本发明实施例可以采用SHELL脚本编写,代码量少,简单易懂,集群管理人员可以快速理解和掌握,还可以使用一些自动化部署工具,如ANSIBLE、PUPPET等来快速部署,并能够根据特定需求进行代码修改,方便管理。
可选地,所述根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作,包括:
(一)根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点。
需要说明的是,根据所述数据库集群的资源配置信息,可以获知预配置主节点对应的所述第一信息,从而可以通过对比预配置主节点对应的服务器名和当前的主节点对应的服务器名是否一致,来确定当前的主节点是否为预配置主节点。如果一致,则确定当前的主节点是预配置主节点。
(二)在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
(三)根据判断结果,对所述数据库集群中的节点执行管理操作。
该实施例中,通过确定当前的所述主节点是否为预配置主节点,可以获知集群(即数据库集群)是否发生过故障切换。例如,当前主节点不是预配置主节点,则表明集群可能发生过故障切换,需要进一步判断集群是否发生集群分区,以便及时采取对应措施来避免集群脑裂,保证整个数据库集群数据的一致性和完整性。
可选地,所述根据判断结果,对所述数据库集群中的节点执行管理操作,包括:
在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
该实施例中,第一节点可以测试其与预配置主节点之间的网络连接状态,如果第一节点可以连接到预配置主节点,则进一步判断读写VIP是否仍然运行在预配置主节点,即判断Master vip(即读写VIP)是否挂载在预配置主节点上,以判断集群是否发生脑裂。如果读写VIP是否仍然运行在预配置主节点上,也即在读写VIP与所述预配置主节点绑定的情况下,通过对所述预配置主节点执行第一管理操作,来避免集群脑裂。
可选地,在所述对所述预配置主节点执行第一管理操作之后,所述方法还包括:
判断所述预配置主节点是否为主节点状态;
在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
该实施例中,可以对执行第一管理操作的结果(即强制结束预配置主节点上的相关进程等的处理结果)进行复查,直到完全移除故障节点的读写VIP并停止相关PostgreSQL进程,避免集群脑裂。
可选地,所述方法还包括以下至少一项:
在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
本发明实施例中,可以通过日志记录全部的检测及操作,从而将日志提供给运维人员,用于查询及追溯集群的异常记录。
本发明实施例提供的数据库集群管理方法,适用于不同节点数的数据库集群,集群管理人员可在不同环境、不同节点数的集群中应用该方法,还可以利用该方法中的问题诊断以及日志记录功能,便于追查和分析集群主从切换或者故障原因,解决了重复运维导致运维效率低下、集群管理人员负担过重的问题,极大的提升了数据库集群的管理效率以及系统稳定性。
可选地,所述根据判断结果,对所述数据库集群中的节点执行管理操作,包括:
在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
根据判断结果,对所述第一节点执行管理操作。
该实施例中,若第一节点为预配置主节点,需要判断第一节点为从节点,还是主节点,亦或既不是主节点也不是从节点,并进一步根据判断结果,对第一节点的服务状态进行判断,从而执行相应的管理操作,以避免集群脑裂。
可选地,所述根据判断结果,对所述第一节点执行管理操作,包括:
在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
需要说明的是,在第一节点不为从节点的情况下,可以进一步判断第一节点是否为主节点。如果第一节点为主节点,则可以对第一节点执行第二管理操作,来避免集群脑裂。
可选地,所述根据判断结果,对所述第一节点执行管理操作,包括:
在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
也就是说,第一节点不是主节点,但是Master VIP仍挂载在第一节点,此时,可以通知运维人员该异常情况,并删除第一节点上的Master VIP。
可选地,所述方法还包括:
发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
例如,可以通知运维人员第一节点是设定的主节点,但主节点已切换到新的节点。
可选地,所述方法还包括:
在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
需要说明的是,在第一节点不为从节点的情况下,可以进一步判断第一节点是否为主节点。如果第一节点为主节点,则可以通过邮件等方式发送第四提示信息,通知运维人员集群状态异常。
此外,一些防止脑裂的软件,通常需要数据库集群至少需要三个以上的奇数节点(3个,5个,7个等等),通过选举获得多数选票的方式来产生主节点。本方案避免了这个限制,集群中数据库节点个数没有奇数限制。而本发明实施例提供的数据库集群管理方法中,可以在数据集群只有2节点情况下部署PostgreSQL集群,相比至少需要3节点的集群至少能节省一个服务器资源。而且,本发明实施例无需通过检测集群内从节点的状态或者通过集群内节点投票方式产生数据库主节点。
下面,结合具体场景说明本发明实施例的应用:
本发明一可选实施例中,可以使用开源软件Pacemaker和Corosync作为集群管理基础软件,来实现集群管理的基础功能。其中,Corosync负责集群通信和成员关系管理,Pacemaker负责集群资源管理。这样,可以实现集群中数据库实例的主从自动切换及VIP漂移功能,整体架构图如图2所示。
其中,集群用到的Pacemaker预置资源包括PostgreSQL、IPaddr2和ping,PostgreSQL对应的Resource Agent(RA)为pgsql,pgsql负责实施PostgreSQL的启停、监视、failover(即失效转移)等操作。
集群初始启动时,pgsql通过比较所有节点的在线事务日志位置,找出在线事务日志最新的节点作为主节点,其它节点作为从节点通过读写VIP连接到主节点上进行事务日志复制。读写VIP和主节点绑定,只读VIP和从节点绑定,应用只需访问对应VIP,而无需关心具体访问哪个节点。
集群启动后,pgsql资源通过连接到每个节点上数据库实例监视PostgreSQL服务的健康状况:当pgsql发现PostgreSQL服务故障时报告给Pacemaker,由Pacemaker实施相应动作。
如果是PostgreSQL进程故障,尝试重启PostgreSQL,并且该节点上的fail-count加1。当fail-count累加到3时不再分配PostgreSQL资源到这个节点。
如果发生故障的是主节点,会提升同步复制的从节点为主节点,即发起failover。
pgsql资源会不断监视从节点的复制健康状况,并会选定一个从节点作为实时同步节点。在同步复制下只有实时同步从节点才有资格成为候选主节点,可以确保failover后数据不丢失。当实时同步从节点出现故障时,为不影响数据库集群的可用性,pgsql资源会临时将同步复制切换到异步复制,防止主节点上的写操作被hang住。如果故障从节点恢复或存在另一个健康的从节点,再切换到同步复制,最大程度保证数据复制的实时性和数据多副本安全性。
在此集群管理组合上,本发明实施例提供了针对PostgreSQL数据库集群的防脑裂功能,可以防止集群分区后Pacemaker将实时同步从节点升级为新主节点,而旧主节点服务器上还启动有PostgreSQL数据库进程和VIP导致脑裂和数据双写。如图2所示,本发明实施例可以利用fence_check资源进行仲裁,来实现本发明实施例所提供的数据库集群管理方法。具体的,集群中各个节点的fence_check都会对本节点进行仲裁,判断为异常的主节点会主动停止PostgreSQL、Corosync、Pacemaker进程,停止读写VIP,防止出现双主及VIP挂载在两个数据库服务器情况。
如图3所示,结合流程图对本发明提供的数据库集群管理方法的一可选实施例详述如下:
S301:Pacemaker自动定时调用fence_check资源(也即fence_check代码);
本发明实施例可以使用自主开发的Resource Agent(RA)fence_check来实现预防脑裂功能,即可以使用该fence_check资源来实现本发明实施例的数据库集群管理方法。这样,可以在集群发生脑裂时,及时发现脑裂情况并及时处理,停掉相关的进程及VIP,从而避免出现一个集群在存在两个PostgreSQL Master以及VIP挂载两个节点的情况,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性。
需要指出的是,该fence_check资源可以被Pacemaker管理并按照配置自动定时调用,作为数据库防脑裂资源,fence_check运行在数据库集群中的每个节点上,按照配置的时间间隔被循环自动调用运行。
其中,fence_check运行时间间隔可以根据需求设置参数值来进行调整,最短可以支持每秒运行一次。
S302:判断集群是否存在master节点;这里,master节点即主节点。
否,即不存在,执行S303;是,即存在,则执行S304。
具体的,可以通过Pacemaker管理工具获取当前数据库集群的Master节点所在服务器的IP地址和服务器名。
S303:集群状态异常,通知运维人员修复集群。
需要说明的是,集群中不存在master节点,表明出现了集群故障,可以通过触发邮件等方式,向运维人员通知集群状态。
S304:当前master节点是否为设定的master节点;
是,即当前master节点是设定的master节点,则执行S305;
否,即当前master节点不是设定的master节点,则执行S308。
S305:判断当前的master节点是否可以连接网关;是,执行S306;否,执行S307。
S306:日志记录集群状态正常。
S307:触发fence机制,强制结束当前的master节点上的PostgreSQL等进程,停止当前的master节点挂载的读写VIP。
S308:即集群存在master节点,这里,可以在当前master节点不是设定的master节点的情况下,判断本机(即本节点)是否为设定的master节点;
是,即本机是设定的master节点,则执行S309;
否,即本机不是设定的master节点,则执行S316。
需要说明的是,设定的master节点即预配置主节点。当前master节点不是设定的master节点,表明集群可能发生过故障切换,需要进一步判断集群是否发生脑裂。
S309:即本机是设定的master节点的情况,这里,可以进一步判断本机是否为slave节点?需要说明的是,slave节点即从节点。
否,即本机不是slave节点,则执行S310;
是,即本机是slave节点,则执行S313。
S310:即本机不是slave节点的情况,此时,可以进一步判断本机是否为master节点;是,执行S311;否,执行S312;
S311:即本机是master节点,此时,可以触发fence机制,强制结束本机上的PostgreSQL等进程,停止读写VIP。
此外,fence_check资源还可以通过连接网关IP地址,检查确认本机网络连接状态。如在设定的时间(可根据需求设定该时间的长短)内仍没有通过本机到网关的连通测试,则判断为本机发生网络故障或者服务器故障,并触发fence_check防脑裂脚本,结束本机节点上的读写VIP及相关PostgreSQL进程。
S312:即本机不是master节点,也不是slave节点的情况,表明本机状态异常,需要通知运维人员本机的异常状态。
也就是说VIP未挂载本机,本机既不是Master节点也不是Slave节点,则通知运维人员集群状态异常,并退出fence_check代码。
S313:即本机是slave节点,该步骤中,可以进一步判断Master vip是否挂载在本机;
是,则执行S314;否,则执行S315。
该步骤中,由于本机是配置文件中设定的Master节点,而本机当前是Slave节点,当前Master节点不是配置文件(即资源配置信息)中设定的Master节点,说明发生了故障切换,可以在日志中记录此集群发生了故障切换。
S314:即Master vip仍挂载在本机,强制删除Master VIP,通知运维人员集群状态异常。
也就是说,本机节点不是Master节点,但是Master VIP仍挂载在本机,此时,可以通知运维人员该异常情况,并触发Pacemaker的fence_check脚本(即fence_check代码),删除本机上的Master VIP。
S315:即Master vip未挂载在本机,通知运维人员本机是设定的master节点,但master节点已切换到新的节点。另外,master节点已发生切换,可以通知运维人员需要修改相关配置,例如修改设定的master参数。
S316:即本机不是fence_check配置文件中(set_master参数)设定的master节点的情况,可以判断本机是否为当前master节点。
是,则执行S317;否,则执行S318。
S317:即本机是当前master节点,通知运维人员本机为新的master节点,集群发生过故障切换。另外,由于本机已提升为新Master,可以通知运维人员需要修改相关配置,例如修改设定的master参数。
S318:即本机不是当前master节点,可以通过日志记录本机不是新的master节点,集群发生过故障切换;还可以进一步判断本机是否连接到设定的master节点;
否,则执行S319;是,则执行S320。
需要说明的是,fence_check资源在运行过程中,可以记录全部检测及操作日志,输出记录有集群主节点发生故障时候网络及数据库实例状态的详细日志,从而提供给运维人员查询及追溯集群的异常记录,用于分析故障原因,还可以通过邮件向运维人员发送集群异常通知。
S319:通知运维人员本机无法连接设定的master节点。
这里,在本机无法连接设定的master节点时,可以告知运维人员资源配置信息中的配置参数设定的Master节点发生了网络故障,需要修复。
S320:即本机可以连接到设定的master节点,此时,可以进一步判断Master vip是否挂载在设定的master节点上;
否,则执行S321;是,则执行S322。
该步骤中,本机可以测试本机与配置文件中设定的Master之间的网络连接状态,如可以连接,则进一步判断读写VIP是否仍然运行在配置文件中设定的Master节点,即判断Master vip是否挂载在设定的master节点上,以判断集群是否发生脑裂。
S321:日志记录master vip未运行在设定的master节点,集群状态正常。
S322:即读写VIP仍在挂载在设定的master节点上,则可以在设定的master节点触发fence机制,即触发fence_check防脑裂脚本,强制结束设定的master节点上的PostgreSQL等相关进程,停止读写VIP。
S323:判断设定的master节点是否为master状态。是,则执行S324;否,则执行S325。
该步骤中,Pacemaker可以对处理结果(即强制结束相关进程等的处理结果)进行复查,直到完全移除故障节点的读写VIP并停止相关PostgreSQL进程。
S324:在设定的master节点触发fence机制,强制结束设定的master节点上的PostgreSQL等进程,停止读写VIP。
S325:日志记录设定的master节点不是master状态,无需触发fence。
上述实施例中,fence_check资源通过资源配置信息中的配置参数,可以获知应该成为主节点的节点所对应的IP地址、服务器名及服务器的网关地址,fence_check资源会根据这些配置参数信息对各个数据库节点到网关的网络连通状态和数据库服务状态进行实时判断,并根据状态执行对应操作。一旦发生数据库集群主节点无法连接到网关,则判断为集群发生脑裂,立刻运行fence_check代码检测集群状态,根据逻辑判断是否需要关闭主节点上对应服务(即相应的进程),避免集群脑裂,保证整个数据库集群数据的一致性和完整性。
作为本发明一可选实施例,fence_check资源代码中可设置参数,具体示例如下:
      
Figure BDA0003337979400000201
Figure BDA0003337979400000211
需要说明的是,可以自定义fence_check资源运行参数,参数(即配置参数)可根据需求增加,可以根据需求新增参数或者修改参数值。fence_check资源也可随时启动、停止以及查看资源运行状态。例如,可执行的操作类型如下:
Figure BDA0003337979400000212
以上代码表示可对fence_check类型资源执行start、stop、status等操作,其中monitor是用来监控数据库服务器状态预防脑裂的操作,当不需要资源运行时,也可以停止。
该实施例的数据库集群管理方法,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
如图4所示,本发明实施例的一种数据库集群管理装置,应用于数据库集群中的第一节点,包括:
获取模块410,用于获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
处理模块420,用于根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
该实施例中,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
可选地,所述处理模块420包括:
第一处理子模块,用于根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点;
第二处理子模块,用于在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
第三处理子模块,用于根据判断结果,对所述数据库集群中的节点执行管理操作。
可选地,所述第三处理子模块包括:
第一处理单元,用于在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
第二处理单元,用于在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
第三处理单元,用于在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
可选地,所述第三处理子模块还包括:
第四处理单元,用于判断所述预配置主节点是否为主节点状态;
第五处理单元,用于在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
可选地,所述装置还包括:
第一发送模块,用于在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
第二发送模块,用于在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
第一记录模块,用于在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
可选地,所述第三处理子模块包括:
第六处理单元,用于在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
第七处理单元,用于根据判断结果,对所述第一节点执行管理操作。
可选地,所述第七处理单元包括:
第一处理子单元,用于在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
可选地,所述第七处理单元包括:
第二处理子单元,用于在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
解除绑定子单元,用于在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
可选地,所述装置还包括:
第三发送模块,用于发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
可选地,所述装置还包括:
第四发送模块,用于在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
该实施例的数据库集群管理装置,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
如图5所示,本发明实施例的一种网络设备500,包括处理器510和收发机520,其中,所述处理器用于:
获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
该实施例中,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
可选地,所述处理器在根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作时,具体用于:
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点;
在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
根据判断结果,对所述数据库集群中的节点执行管理操作。
可选地,所述处理器在根据判断结果,对所述数据库集群中的节点执行管理操作时,具体用于:
在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
可选地,所述处理器还用于:
判断所述预配置主节点是否为主节点状态;
在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
可选地,所述处理器还用于:
在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
可选地,所述处理器在根据判断结果,对所述数据库集群中的节点执行管理操作时,具体用于:
在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
根据判断结果,对所述第一节点执行管理操作。
可选地,所述处理器在根据判断结果,对所述第一节点执行管理操作时,具体用于:
在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
可选地,所述处理器在根据判断结果,对所述第一节点执行管理操作时,具体用于:
在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
可选地,所述处理器还用于:
发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
可选地,所述处理器还用于:
在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
该实施例的网络设备,通过获取数据库集群当前的主节点的相关信息,结合数据库集群的资源配置信息,能够确定对应的管理操作对数据库集群的节点进行管理,从而能够及时发现数据库脑裂现象,进而能够及时采取相应处理措施,在一定程度上可以避免集群脑裂情况发生,保证数据的一致性和完整性;无需增加防脑裂的硬件,投资少,减少了运维成本,满足了虚拟化或者云化部署的数据库集群防脑裂的需求。
本发明另一实施例的网络设备,如图6所示,包括收发器610、处理器600、存储器620及存储在所述存储器620上并可在所述处理器600上运行的程序或指令;所述处理器600执行所述程序或指令时实现上述应用于数据库集群管理方法。
所述收发器610,用于在处理器600的控制下接收和发送数据。
其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
本发明实施例的一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上所述的数据库集群管理方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
进一步需要说明的是,此说明书中所描述的终端包括但不限于智能手机、平板电脑等,且所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
上述范例性实施例是参考该些附图来描述的,许多不同的形式和实施例是可行而不偏离本发明精神及教示,因此,本发明不应被建构成为在此所提出范例性实施例的限制。更确切地说,这些范例性实施例被提供以使得本发明会是完善又完整,且会将本发明范围传达给那些熟知此项技术的人士。在该些图式中,组件尺寸及相对尺寸也许基于清晰起见而被夸大。在此所使用的术语只是基于描述特定范例性实施例目的,并无意成为限制用。如在此所使用地,除非该内文清楚地另有所指,否则该单数形式“一”、“一个”和“该”是意欲将该些多个形式也纳入。会进一步了解到该些术语“包含”及/或“包括”在使用于本说明书时,表示所述特征、整数、步骤、操作、构件及/或组件的存在,但不排除一或更多其它特征、整数、步骤、操作、构件、组件及/或其族群的存在或增加。除非另有所示,陈述时,一值范围包含该范围的上下限及其间的任何子范围。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种数据库集群管理方法,应用于数据库集群中的第一节点,其特征在于,包括:
获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作,包括:
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,确定当前的所述主节点是否为预配置主节点;
在当前的所述主节点不为预配置主节点的情况下,根据所述资源配置信息,判断所述第一节点是否为预配置主节点;
根据判断结果,对所述数据库集群中的节点执行管理操作。
3.根据权利要求2所述的方法,其特征在于,所述根据判断结果,对所述数据库集群中的节点执行管理操作,包括:
在所述第一节点不为预配置主节点,且所述第一节点不是当前的所述主节点的情况下,确定所述第一节点是否与所述预配置主节点连接;
在所述第一节点与所述预配置主节点连接的情况下,确定读写虚拟IP地址VIP是否与所述预配置主节点绑定;
在读写VIP与所述预配置主节点绑定的情况下,对所述预配置主节点执行第一管理操作;
其中,所述第一管理操作包括以下至少一项:
指示关闭所述预配置主节点上的第一进程;
指示解除所述读写VIP与所述预配置主节点之间的绑定。
4.根据权利要求3所述的方法,其特征在于,在所述对所述预配置主节点执行第一管理操作之后,所述方法还包括:
判断所述预配置主节点是否为主节点状态;
在所述预配置主节点为主节点状态的情况下,对所述预配置主节点执行所述第一管理操作。
5.根据权利要求3所述的方法,其特征在于,还包括以下至少一项:
在所述第一节点是当前的所述主节点的情况下,发送第一提示信息,所述第一提示信息用于提示所述数据库集群的主节点已切换至所述第一节点;
在所述第一节点未与所述预配置主节点连接的情况下,发送第二提示信息,所述第二提示信息用于提示所述预配置主节点已发生网络故障;
在所述读写VIP未与所述预配置主节点绑定的情况下,在日志中记录第一状态信息,所述第一状态信息用于表示所述读写VIP未与所述预配置主节点绑定。
6.根据权利要求2所述的方法,其特征在于,所述根据判断结果,对所述数据库集群中的节点执行管理操作,包括:
在所述第一节点为预配置主节点的情况下,判断所述第一节点是否为从节点;
根据判断结果,对所述第一节点执行管理操作。
7.根据权利要求6所述的方法,其特征在于,所述根据判断结果,对所述第一节点执行管理操作,包括:
在所述第一节点为主节点的情况下,对所述第一节点执行第二管理操作;
其中,所述第二管理操作包括以下至少一项:
关闭所述第一节点上的第一进程;
解除读写VIP与所述第一节点之间的绑定。
8.根据权利要求6所述的方法,其特征在于,所述根据判断结果,对所述第一节点执行管理操作,包括:
在所述第一节点为从节点的情况下,确定读写VIP是否与所述第一节点绑定;
在所述读写VIP与所述第一节点绑定的情况下,解除所述读写VIP与所述第一节点之间的绑定。
9.根据权利要求8所述的方法,其特征在于,还包括:
发送第三提示信息,所述第三提示信息用于提示所述数据库集群的主节点切换至所述预配置主节点之外的其他节点。
10.根据权利要求6所述的方法,其特征在于,还包括:
在第一节点不为主节点,且第一节点不为从节点的情况下,发送第四提示信息,所述第四提示信息用于提示所述第一节点状态异常。
11.一种数据库集群管理装置,其特征在于,包括:
获取模块,用于获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
处理模块,用于根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
12.一种网络设备,其特征在于,包括:收发机和处理器;所述处理器用于:
获取数据库集群当前的主节点对应的第一信息;其中,所述第一信息包括以下至少一项:服务器名、互联网协议IP地址和网关地址;
根据所述数据库集群的资源配置信息和当前的所述主节点对应的所述第一信息,对所述数据库集群中的节点执行管理操作;
其中,所述资源配置信息包括:预配置主节点对应的所述第一信息,所述预配置主节点为针对所述数据库集群配置的主节点。
13.一种网络设备,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;其特征在于,所述处理器执行所述程序或指令时实现如权利要求1至10任一项所述的数据库集群管理方法。
14.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至10任一项所述的数据库集群管理方法中的步骤。
CN202111300010.3A 2021-11-04 2021-11-04 一种数据库集群管理方法、装置及网络设备 Pending CN116069583A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111300010.3A CN116069583A (zh) 2021-11-04 2021-11-04 一种数据库集群管理方法、装置及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111300010.3A CN116069583A (zh) 2021-11-04 2021-11-04 一种数据库集群管理方法、装置及网络设备

Publications (1)

Publication Number Publication Date
CN116069583A true CN116069583A (zh) 2023-05-05

Family

ID=86170458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111300010.3A Pending CN116069583A (zh) 2021-11-04 2021-11-04 一种数据库集群管理方法、装置及网络设备

Country Status (1)

Country Link
CN (1) CN116069583A (zh)

Similar Documents

Publication Publication Date Title
US9798632B2 (en) Providing boot data in a cluster network environment
US3812469A (en) Multiprocessing system having means for partitioning into independent processing subsystems
KR100575497B1 (ko) 내고장성 컴퓨터 시스템
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
CN110647580A (zh) 分布式容器集群镜像管理主节点、从节点、系统及方法
WO2017177941A1 (zh) 主备数据库切换方法和装置
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
KR20110044858A (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
CN104036043A (zh) 一种mysql高可用的方法及管理节点
CN111209265B (zh) 一种数据库切换方法和终端设备
CN112506702A (zh) 数据中心容灾方法、装置、设备及存储介质
CN108833164B (zh) 服务器控制方法、装置、电子设备及存储介质
CN110291505A (zh) 减少应用的恢复时间
CN110275793B (zh) 一种用于MongoDB数据分片集群的检测方法及设备
CN115658166A (zh) 集中管理和容易使用应用程序配置的系统、方法及介质
CN116185697B (zh) 容器集群管理方法、装置、系统、电子设备及存储介质
CN113438111A (zh) 基于Raft分布式恢复RabbitMQ网络分区的方法及应用
CN109104314B (zh) 一种修改日志配置文件的方法及装置
CN116069583A (zh) 一种数据库集群管理方法、装置及网络设备
CN114546427A (zh) 一种基于DNS和MGR的MySQL高可用实现方法
CN110287066B (zh) 一种服务器分区迁移方法及相关装置
CN113961398A (zh) 业务处理方法、装置、系统、设备、存储介质和产品
CN113176969A (zh) 服务提供方法、装置、设备及计算机可读存储介质
CN113064755A (zh) 数据恢复方法、装置、设备、介质及程序产品
CN111258823A (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