CN112131077A - 故障节点的定位方法和定位装置、以及数据库集群系统 - Google Patents

故障节点的定位方法和定位装置、以及数据库集群系统 Download PDF

Info

Publication number
CN112131077A
CN112131077A CN202010997311.5A CN202010997311A CN112131077A CN 112131077 A CN112131077 A CN 112131077A CN 202010997311 A CN202010997311 A CN 202010997311A CN 112131077 A CN112131077 A CN 112131077A
Authority
CN
China
Prior art keywords
node
database cluster
load
problem node
data
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.)
Granted
Application number
CN202010997311.5A
Other languages
English (en)
Other versions
CN112131077B (zh
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 Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202010997311.5A priority Critical patent/CN112131077B/zh
Publication of CN112131077A publication Critical patent/CN112131077A/zh
Application granted granted Critical
Publication of CN112131077B publication Critical patent/CN112131077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了故障节点的定位方法和定位装置、以及数据库集群系统,涉及计算机计算领域。该故障节点的定位方法的一具体实施方式包括:采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;根据所属数据库集群的负载信息,判断本次问题节点是否处于负载倾斜状态;在本次问题节点处于负载倾斜状态的情况下,发送本次问题节点的告警信息,以对本次问题节点所在的机器进行故障检查。该实施方式可以让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。

Description

故障节点的定位方法和定位装置、以及数据库集群系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种故障节点的定位方法和定位装置、以及数据库集群系统。
背景技术
分布式数据库集群允许数据在多个节点上存储,对企业系统的业务逻辑不会产生影响,是很多企业在处理和存储数据时优先选择的解决方案。对于分布式架构,需要在多个节点上执行请求,当所有节点都执行并返回后才是完成请求,因此当出现性能问题时,需要在多个节点上进行定位,也即,多个节点会造成在运维上增加难度。
现有技术分布式数据库集群的性能故障定位方法中,需要用户反馈去检查故障;或者,人工巡检收集节点所在机器的日志,然后对收集的日志进行分析,查询出故障问题。
但是,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:用户反馈才去检查故障的方法中,当有大批量高负载作业时,待到用户发现时已对作业产生较大影响;人工巡检收集机器日志进行分析的方法中,不仅工作量高且效率低下,无法及时快速定位故障节点。
发明内容
有鉴于此,本发明实施例提供一种故障节点的定位方法和定位装置、以及数据库集群系统,能够让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。
为实现上述目的,根据本发明实施例的第一方面,提供了一种故障节点的定位方法。
本发明实施例的故障节点的定位方法,包括:采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;根据所述所属数据库集群的负载信息,判断所述本次问题节点是否处于负载倾斜状态;在所述本次问题节点处于负载倾斜状态的情况下,发送所述本次问题节点的告警信息,以对所述本次问题节点所在的机器进行故障检查。
可选地,所述所属数据库集群的负载信息包括:所述所属数据库集群的上次问题节点、所述所属数据库集群的负载均值、以及所述所属数据库集群的工作状态。
可选地,所述根据所述所属数据库集群的负载信息,判断所述本次问题节点是否处于负载倾斜状态,包括:判断所述本次问题节点与所述上次问题节点是否为同一个节点、所述本次问题节点上的负载值与所述负载均值的比值是否大于预设比例阈值、以及所述工作状态是否为非空闲状态;若是,则确认所述本次问题节点处于负载倾斜状态;若否,则确认所述本次问题节点未处于负载倾斜状态。
可选地,在判断所述上次问题节点与所述本次问题节点是否为同一个节点之前,所述方法还包括:获取所述上次问题节点;其中,所述上次问题节点为上一次采集确定的负载值最高的数据节点。
可选地,在判断所述本次问题节点上的负载值与所述负载均值的比值是否大于预设比例阈值之前,所述方法还包括:对剩余数据节点上的负载值进行均值计算,获得所述所属数据库集群的负载均值;其中,所述剩余数据节点为所述所属数据库集群包含的至少一个数据节点中所述本次问题节点之外的数据节点。
可选地,所述判断所述当前工作状态是否为非空闲状态,包括:判断所述所属数据库集群对应的查询语句是否小于预设个数且所述本次问题节点上的负载值是否小于预设负载值阈值;若是,则确定所述当前工作状态为空闲状态,若否,则确定所述当前工作状态为非空闲状态。
可选地,所述方法还包括:若所述所属数据库集群对应的查询语句不小于预设个数且所述本次问题节点上的负载值小于预设负载值阈值,则发送所述所属数据库集群的异常信息。
可选地,在发送所述本次问题节点的告警信息之前,所述方法还包括:查询所述本次问题节点所在的机器的操作系统日志,判断所述操作系统日志中是否已经出现至少一次报错关键字;若是,则发送所述本次问题节点的告警信息,若否,则监控所述本次问题节点的状态;在所述本次问题节点持续处于负载倾斜状态的时间大于预设时间的情况下,对所述本次问题节点所在的机器进行停机处理,以对所述本次问题节点所在的机器进行检查。
可选地,所述方法还包括:在所述本次问题节点处于负载倾斜状态的情况下,将所述本次问题节点从所述所属数据库集群包含的至少一个数据节点中隔离出去;以及,在所述本次问题节点对应的机器通过故障检查维修后,将所述本次问题节点加入所述所属数据库集群包含的至少一个数据节点中。
可选地,所述方法还包括:在所述本次问题节点未处于负载倾斜状态的情况下,确认所述所属数据库集群正常工作运行。
可选地,所述方法还包括:根据接收的定位故障节点请求,获取预设采集时间周期,按照所述预设采集时间周期,定时执行负载值采集。
可选地,所述采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点,包括:采集在所述预设时间周期内所述所属数据库集群包含的至少一个数据节点上的平均负载值,确定本次采集中平均负载值最高的数据节点为本次采集对应的问题节点。
为实现上述目的,根据本发明实施例的第二方面,提供了一种故障节点的定位装置。
本发明实施例的故障节点的定位装置,包括:采集模块,用于采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;判断模块,用于根据所述所属数据库集群的负载信息,判断所述本次问题节点是否处于负载倾斜状态;告警模块,用于在所述本次问题节点处于负载倾斜状态的情况下,发送所述本次问题节点的告警信息,以对所述本次问题节点所在的机器进行故障检查。
可选地,所述所属数据库集群的负载信息包括:所述所属数据库集群的上次问题节点、所述所属数据库集群的负载均值、以及所述所属数据库集群的工作状态。
可选地,所述判断模块还用于:判断所述本次问题节点与所述上次问题节点是否为同一个节点、所述本次问题节点上的负载值与所述负载均值的比值是否大于预设比例阈值、以及所述工作状态是否为非空闲状态;若是,则确认所述本次问题节点处于负载倾斜状态;若否,则确认所述本次问题节点未处于负载倾斜状态。
可选地,所述判断模块还用于:获取所述上次问题节点;其中,所述上次问题节点为上一次采集确定的负载值最高的数据节点。
可选地,所述判断模块还用于:对剩余数据节点上的负载值进行均值计算,获得所述所属数据库集群的负载均值;其中,所述剩余数据节点为所述所属数据库集群包含的至少一个数据节点中所述本次问题节点之外的数据节点。
可选地,所述判断模块还用于:判断所述所属数据库集群对应的查询语句是否小于预设个数且所述本次问题节点上的负载值是否小于预设负载值阈值;若是,则确定所述当前工作状态为空闲状态,若否,则确定所述当前工作状态为非空闲状态。
可选地,所述判断模块还用于:若所述所属数据库集群对应的查询语句不小于预设个数且所述本次问题节点上的负载值小于预设负载值阈值,则发送所述所属数据库集群的异常信息。
可选地,所述告警模块还用于:查询所述本次问题节点所在的机器的操作系统日志,判断所述操作系统日志中是否已经出现至少一次报错关键字;若是,则发送所述本次问题节点的告警信息,若否,则监控所述本次问题节点的状态;在所述本次问题节点持续处于负载倾斜状态的时间大于预设时间的情况下,对所述本次问题节点所在的机器进行停机处理,以对所述本次问题节点所在的机器进行检查。
可选地,所述采集模块还用于:在所述本次问题节点处于负载倾斜状态的情况下,将所述本次问题节点从所述所属数据库集群包含的至少一个数据节点中隔离出去;以及,在所述本次问题节点对应的机器通过故障检查维修后,将所述本次问题节点加入所述所属数据库集群包含的至少一个数据节点中。
可选地,所述告警模块还用于:在所述本次问题节点未处于负载倾斜状态的情况下,确认所述所属数据库集群正常工作运行。
可选地,所述采集模块还用于:根据接收的定位故障节点请求,获取预设采集时间周期,按照所述预设采集时间周期,定时执行负载值采集。
可选地,所述采集模块还用于:采集在所述预设时间周期内所述所属数据库集群包含的至少一个数据节点上的平均负载值,确定本次采集中平均负载值最高的数据节点为本次采集对应的问题节点。
为实现上述目的,根据本发明实施例的第三方面,提供了一种数据库集群系统。
本发明实施例的数据库集群系统,包括至少一套数据库集群,其中,一套数据库集群包含主节点和至少一个数据节点;所述主节点用于:执行本发明实施例所述的故障节点的定位方法,以对所属数据库集群包含的至少一个数据节点进行故障定位。
可选地,所述主节点还用于:接收所述所属数据库集群对应的查询语句,生成所述查询语句对应查询计划,向所述所属数据库集群对应的至少一个数据节点分发所述查询计划。
可选地,所述一套数据库集群包含的至少一个数据节点所处的机器的配置是相同的;其中,所述配置包括:CPU核数、内存空间、网络带宽以及实例数。
可选地,所述系统还包括监控配置模块,用于:配置所述至少一套数据库集群的参数,其中,所述参数包括:数据库集群的标识、数据库集群对应的超级用户、数据库集群对应的阈值。
可选地,所述监控配置模块还用于:向所述至少一套数据库集群包含的主节点分发采集脚本,以及,接收所述主节点采集的负载值数据。
可选地,所述一套数据库集群包含主节点对应的备用节点;所述备用节点用于在所述主节点异常的情况下,代替所述主节点提供服务。
为实现上述目的,根据本发明实施例的第四方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的故障节点的定位方法。
为实现上述目的,根据本发明实施例的第五方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的故障节点的定位方法。
上述发明中的一个实施例具有如下优点或有益效果:通过采集数据节点上的负载值得到问题节点,若分析该问题节点处于负载倾斜状态,认为该问题节点所在的机器出现故障问题的可能性较大,因此发送该问题节点的告警信息,以实现对该问题节点所在的机器进行故障检查,可以让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。此外,可以从多个判断条件判断本次问题节点是否处于负载倾斜状态,能够准确分析出问题节点是否处于负载倾斜状态,进而可以提高故障定位的准确性。还有,主节点可以定时对数据节点上的负载值进行采集,达到监控数据节点所在的机器是否出现故障问题的目的。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据库集群的系统架构示意图;
图2是根据本发明实施例的故障节点的定位方法的主要步骤的示意图;
图3是根据本发明实施例的判断本次问题节点是否处于负载倾斜状态的主要步骤的示意图;
图4是根据本发明实施例的判断本次问题节点是否处于负载倾斜状态的主要流程的示意图;
图5是根据本发明实施例的故障节点的定位方法的主要流程的示意图;
图6是根据本发明实施例的故障节点的定位装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
大数据的发展,企业级存储的数据量成几何级数的增加,传统的单节点数据库存储方式变得越来越不实用,分布式数据库集群允许数据在更多节点上存储,并且对企业系统的业务逻辑不会产生太大的影响,是很多企业在处理和存储大数据时优先选择的一种解决方案。但是,对于分布式架构,其节点的增多在运维上增加了难度。这是由于需要在多个节点上执行数据请求,且当所有节点都执行并返回后才算是完成请求,那么如果数据库出现性能问题,就需要在多个节点上进行定位。分布式数据库集群是在集群中的多台机器上部署数据库程序,其运行性能依赖于底层硬件。当有机器出现隐性坏盘而又未能及时隔离剔除出集群时,会导致请求卡在该机器上,导致整个集群的处理速度受到影响,数据库集群的性能急剧下降,无法及时完成作业处理。
现有技术定位故障节点的方法中,可以通过用户反馈去检查故障,但是对于该方法,当有大批量高负载作业时,待到用户发现时已对作业产生较大影响。现有技术还可以通过人工巡检收集节点所在机器的日志,然后对收集的日志进行分析,查询出故障问题,但是此种方法,不仅工作量高且效率低下,无法及时快速定位故障节点。
为了解决上述问题,本发明实施例提供一种基于数据库集群系统的故障节点的定位方法。考虑到一套分布式数据库集群涉及到的节点个数可以达到上百台,数据应用多的企业部署的数据库集群也会有几十套,涉及到的机器个数能达到几千台。为了便于理解,先说明数据库集群系统,然后说明基于数据库集群系统的故障节点的定位方法。
数据库集群系统可以包括至少一套数据库集群,图1是根据本发明实施例的数据库集群的系统架构示意图。如图1所示,一套数据库集群可以具有主节点和至少一个数据节点。其中,数据库集群可以采用大规模并行处理(即Massively Parallel Processing,简称MPP)的工作模式。具体的,在数据库集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。
主节点作为所属数据库集群的入口,可以用于:接收所属数据库集群对应的查询语句,生成查询语句对应查询计划,向所属数据库集群对应的至少一个数据节点分发查询计划。举例说明,有数据库集群A,A包含主节点A11和数据节点A21、A22、A23,那么A11可以接收数据库集群A对于的查询语句,并将接收的查询语句生成查询计划,然后将生成的查询计划分发给A21、A22、A23,这样A21、A22、A23可以参与查询执行工作。
在配置节点所在的机器时,需要为数据节点所在的机器进行相同的配置,也即,对于一套数据库集群包含的至少一个数据节点,需要对这些数据节点所在的机器进行相同的配置,具体的,可以配置相同的CPU核数、内存空间、网络带宽以及实例数。考虑到一套数据库集群中,按照规范使用时,数据是均匀分布在数据节点上的,那么一套数据库集群中的数据节点的数据量是一样的。对于相同的配置和相同的数据量,在数据库集群正常运行时,数据节点上的负载值、磁盘读写、输入输出消耗等相差无几的。因此当数据库集群中某一个数据节点出现故障时,该数据节点上的磁盘读写性能就会下降,磁盘读写繁忙率就会上升,进而导致负载值也就比其他高。所以,可以通过数据节点上的负载值判断该数据节点所在的机器是否出现故障问题。
也就是说,如果一个数据节点上的负载值较高,那么该数据节点所在的机器可能存在性能故障,因此,本发明实施例提供的故障节点的定位方法可以通过分析数据节点上的负载值进行故障定位。图2是根据本发明实施例的故障节点的定位方法的主要步骤的示意图。考虑到一套数据库集群中包含主节点和至少一个数据节点,且主节点能够为数据节点分发查询计划,就是说,主节点可以与数据节点连接,因此可以由主节点执行故障节点的定位方法,以对所属数据库集群包含的至少一个数据节点进行故障定位。如图2所示,故障节点的定位方法的主要步骤可以包括:
步骤S201,采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;
步骤S202,根据所属数据库集群的负载信息,判断本次问题节点是否处于负载倾斜状态;
步骤S203,在本次问题节点处于负载倾斜状态的情况下,发送本次问题节点的告警信息,以对本次问题节点所在的机器进行故障检查。
数据库集群系统可以包括至少一套数据库集群,每套数据库集群包含主节点和至少一个数据节点。其中,所属数据库集群是指主节点所属的数据库集群,举例说明,数据库集群A包含主节点A11和数据节点A21、A22、A23,那么A11所属的数据库集群为A,A11可以采集数据库集群A包含的数据节点A21、A22、A23上的负载值,然后确定负载值最高的数据节点为问题节点。需要注意的是,本发明实施例中的问题节点是指一次采集中,得到的负载值最高的数据节点,即该节点出现故障的可能性较大,但是问题节点并不一定是故障节点。还需要注意的是,主节点定时进行负载值采集,因此主节点可以进行多次负载值采集,对于每次负载值采集,获取到本次采集得到的负载值最高的数据点为本次问题节点,步骤S201至步骤S203所示的故障节点的定位方法中,是对某次采集进行分析,将得到的问题节点命名为本次问题节点,然后对本次问题节点进行分析,也就是说,步骤S201至步骤S203是对一次采集进行分析的。
在获取到本次问题节点后,可以利用所属数据库集群的负载信息,判断本次问题节点是否处于负载倾斜状态。其中,负载倾斜状态是指如果某数据节点上的负载值与其他数据节点上的负载值相比,负载值相差较大。某数据节点上的负载值越高,则说明该数据节点出现故障的可能性较大,因此本发明实施例中,如果本次问题节点上的负载值较高,则可以认为本次问题节点处于负载倾斜状态。在本次问题节点处于负载倾斜状态的情况下,可以发送本次问题节点的告警信息,这样可以对本次问题节点所在的机器进行故障检查。如果分析得到本次问题节点未处于负载倾斜状态,那么说明主节点所属数据库集群正常工作运行。
此外,本发明的可参考实施例中,在本次问题节点处于负载倾斜状态的情况下,将本次问题节点从所属数据库集群包含的至少一个数据节点中隔离出去;以及,在本次问题节点对应的机器通过故障检查维修后,将本次问题节点加入所属数据库集群包含的至少一个数据节点中。举例说明,数据库集群A包含主节点A11和数据节点A21、A22、A23,那么A11所属的数据库集群为A,A11可以采集数据库集群A包含的数据节点A21、A22、A23上的负载值,然后确定负载值最高的数据节点A21为本次问题节点。若A21处于负载倾斜状态,则将A21从数据库集群A包含的数据节点中隔离出去,这样可以对A21所在的机器进行故障检查。若检查A21所在的机器出现故障问题,那么进行故障维修后,可以将A21重新加入数据库集群A包含的数据节点中,若检查A21所在的机器未出现故障问题,那么可以直接将A21重新加入数据库集群A包含的数据节点中。
本发明实施例的故障节点的定位技术方案中,通过采集数据节点上的负载值得到问题节点,若分析该问题节点处于负载倾斜状态,认为该问题节点所在的机器出现故障问题的可能性较大,因此发送该问题节点的告警信息,以实现对该问题节点所在的机器进行故障检查,可以让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。
本发明的可参考实施例中,故障节点的定位方法还可以包括:根据接收的定位故障节点请求,获取预设采集时间周期,按照预设采集时间周期,定时执行负载值采集。具体的,主节点可以根据接收的定位故障节点请求,获取到预设采集时间周期。然后,主节点可以按照预设采集时间周期定时采集数据节点上的负载值,比如预设采集时间周期为15分钟,那么主节点可以每15分钟进行一次负载值采集。
本发明的可参考实施例中,采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点,可以包括:采集在预设时间周期内所属数据库集群包含的至少一个数据节点上的平均负载值,确定本次采集中平均负载值最高的数据节点为本次采集对应的问题节点。如预设时间周期为15分钟,那么主节点可以每15分钟进行一次负载值采集。对于某次负载值采集,主节点可以采集所属数据库集群包含的至少一个数据节点上15分钟内的平均负载值,将平均负载值最高的数据节点确定为本次问题节点。
总的来说,主节点可以执行至少一次负载值采集。针对每次采集,可以选择本次采集得到的平均负载值最高的数据节点为本次问题节点,也即,可以每次对平均负载值最高的数据节点进行分析,判断该节点是否处于负载倾斜状态。
若本次问题节点处于负载倾斜状态,则说明本次问题节点所在的机器出现故障问题的可能性较大,因此如何通过所属数据库集群的负载信息判断本次问题节点是否处于负载倾斜状态是本发明实施例的故障节点的定位方法中的重要组成部分。
本发明的可参考实施例中,所属数据库集群的负载信息可以包括:所属数据库集群的上次问题节点、所属数据库集群的负载均值、以及所属数据库集群的工作状态。图3是根据本发明实施例的判断本次问题节点是否处于负载倾斜状态的主要步骤的示意图。如图3所示,判断本次问题节点是否处于负载倾斜状态的主要步骤可以包括:
步骤S301,判断本次问题节点与上次问题节点是否为同一个节点、本次问题节点上的负载值与负载均值的比值是否大于预设比例阈值、以及工作状态是否为非空闲状态,若是,执行步骤S302,若否,执行步骤S303;
步骤S302,确认本次问题节点处于负载倾斜状态;
步骤S303,确认本次问题节点未处于负载倾斜状态。
可以看出,需要满足如下三个条件,才可以确认本次问题节点处于负载倾斜状态:条件一、本次问题节点与上次问题节点为同一个本次问题节点;条件二、本次问题节点上的负载值与负载均值的比值大于预设比例阈值;条件三、所属数据库集群的工作状态为非空闲状态。其中,主节点定时采集所属数据库集群包含的数据节点上的负载值,对于每次采集,确定本次采集中负载值最高的数据节点为本次采集对应的问题节点,即本次问题节点。
针对条件一,判断本次问题节点与上次问题节点是否为同一个节点,其中,上次问题节点为上一次采集确定的负载值最高的数据节点。若本次问题节点与上次问题节点为同一个节点,则说明本次问题节点持续处于负载值较高的情况,进而可以认为本次问题节点所在的机器出现故障问题的可能性较大。那么,本次问题节点与上次问题节点是否为同一个节点可以为本次问题节点是否处于负载倾斜状态的判断条件。
针对条件二,判断本次问题节点上的负载值与负载均值的比值是否大于预设比例阈值。本发明的可参考实施例中,对剩余数据节点上的负载值进行均值计算,获得所属数据库集群的负载均值;其中,剩余数据节点为所属数据库集群包含的至少一个数据节点中本次问题节点之外的数据节点。举例说明,数据库集群A包含主节点A11和数据节点A21、A22、A23,那么A11所属的数据库集群为A,A11可以采集数据库集群A包含的数据节点A21、A22、A23上的负载值,然后确定负载值最高的数据节点A21为本次问题节点,那么剩余数据节点为A22和A23,对A22和A23上的负载值进行均值计算,得到的为数据库集群A的负载均值,需要注意的是,该负载均值为本次采集对应的A的负载均值。考虑到数据库集群运行过程中,存在短时间内某节点上的负载值较高的情况,为避免此情况导致的误判,如果本次问题节点上的负载值与剩余数据节点的负载均值的比值不小于预设比例阈值,则可以确定本次问题节点长时间处于较高负载运行。所以,本次问题节点上的负载值与负载均值的比值是否大于预设比例阈值可以为本次问题节点是否处于负载倾斜状态的判断条件。
针对条件三,判断所属数据库集群的当前工作状态是否为非空闲状态。考虑到数据库集群空闲时,其包含的数据节点上的负载值较低,比如本次问题节点上的负载值为8,其他数据节点上的负载平均值为4,虽然差值为4,但比值就能达到2,这种情况虽然比值大于预设比例阈值,但不能认为本次问题节点长时间处于较高负载运行。所以,所属数据库集群的当前工作状态是否为非空闲状态可以为本次问题节点是否处于负载倾斜状态的判断条件。
因此本发明的可参考实施例中,可以判断所属数据库集群对应的查询语句是否小于预设个数且本次问题节点上的负载值是否小于预设负载值阈值;若是,则确定当前工作状态为空闲状态,若否,则确定当前工作状态为非空闲状态。举例说明,若所属数据库集群对应的查询语句个数小于20且本次问题节点上的负载值小于10,则认为所属数据库集群处于空闲状态,否则,认为所属数据库集群处于非空闲状态。
此外,本发明的可参考实施例中,若所属数据库集群对应的查询语句不小于预设个数且本次问题节点上的负载值小于预设负载值阈值,则发送所属数据库集群的异常信息。比如,若所属数据库集群对应的查询语句个数不小于20且本次问题节点上的负载值小于10,那么说明提交的都是简单的查询语句,但是这种情况出现的概率很低,因此出现这种情况时,说明数据库集群出现故障的可能性较大,需要发送所属数据库集群的异常信息,这样运维人员可以检查是数据库集群出现故障了,还是该数据库集群本身产品就有问题。
图4是根据本发明实施例的判断本次问题节点是否处于负载倾斜状态的主要流程的示意图。如图4所示,判断本次问题节点是否处于负载倾斜状态的主要流程可以包括:
步骤S401,判断本次问题节点与上次问题节点是否为同一个节点,若是,则执行步骤S402,若否,则执行步骤S405;
步骤S402,判断本次问题节点上的负载值与负载均值的比值是否大于预设比例阈值,若是,则执行步骤S403,若否,则执行步骤S405;
步骤S403,判断所属数据库集群的工作状态是否为非空闲状态,若是,执行步骤S404,若否,执行步骤S405;
步骤S404,确认本次问题节点处于负载倾斜状态;
步骤S405,确认本次问题节点未处于负载倾斜状态。
其中,步骤S401至步骤S403的三个判断顺序可以根据实际情况调整,但是需要注意的是,必须三个判断条件均满足的情况下,才可以认为本次问题节点处于负载倾斜状态,相应的,只要有一个判断条件没有满足,则认为本次问题节点未处于负载倾斜状态。本发明实施例的判断本次问题节点是否处于负载倾斜状态的方法中,从多个条件进行判断,能够准确分析出问题节点是否处于负载倾斜状态,进而可以提高故障定位的准确性。
本发明的可参考实施例中,在发送本次问题节点的告警信息之前,故障节点的定位方法还可以包括:查询本次问题节点所在的机器的操作系统日志,判断操作系统日志中是否已经出现至少一次报错关键字;若是,则发送本次问题节点的告警信息,若否,则监控本次问题节点的状态;在本次问题节点持续处于负载倾斜状态的时间大于预设时间的情况下,对本次问题节点所在的机器进行停机处理,以对本次问题节点所在的机器进行检查。
在确定本次问题节点处于负载倾斜状态,但是检查本次问题节点所在的机器没有故障问题,则可以认为错误的告警了,那么为了避免此种情况导致的负载倾斜后的误告率,在确定本次问题节点处于负载倾斜状态后,可以结合本次问题节点所在的机器的操作系统日志进行分析。由于发生的错误都会记录在操作系统日志中,可以通过查询本次问题节点所在的机器的操作系统日志,判断操作系统日志中是否已经出现一次或多次报错关键字。需要注意的是,一般是查询当天的操作系统日志,当然也可以根据实际需求设置操作系统日志的查询时间范围。若有出现一次或多次的报错关键字,则马上告警,以便及时对本次问题节点所在的机器进行故障检查,若检查有故障问题,则及时进行维修。若还未出现报错关键字,则可以监控本次问题节点的状态。若发现本次问题节点持续处于负载倾斜状态的时间大于预设时间,则说明本次问题节点所在的机器已经影响了所属数据库集群的运行,则需对本次问题节点所在的机器进行停机处理,以对本次问题节点所在的机器进行检查。在检查通过后,在可以恢复本次问题节点所在的机器的运行。
图5是根据本发明实施例的故障节点的定位方法的主要流程的示意图,该故障节点的定位方法是由数据库集群包含的主节点执行的,能够对数据库集群包含的数据节点进行故障定位。如图5所示,故障节点的定位方法的主要流程可以包括:
步骤S501,采集在预设时间周期内所属数据库集群包含的至少一个数据节点上的平均负载值;
步骤S502,确定本次采集中平均负载值最高的数据节点为本次采集对应的问题节点,即本次问题节点;
步骤S503,获取所属数据库集群的负载信息,具体包括所属数据库集群的上次问题节点、所属数据库集群的负载均值、以及所属数据库集群的工作状态;
步骤S504,判断本次问题节点与上次问题节点是否为同一个节点,若是,则执行步骤S505,若否,则执行步骤S508;
步骤S505,判断本次问题节点上的负载值与负载均值的比值是否大于预设比例阈值,若是,则执行步骤S506,若否,则执行步骤S508;
步骤S506,判断所属数据库集群的工作状态是否为非空闲状态,若是,执行步骤S507,若否,执行步骤S508;
步骤S507,确认本次问题节点处于负载倾斜状态;
步骤S508,确认本次问题节点未处于负载倾斜状态,以确定所属数据库集群正常运行;
步骤S509,查询本次问题节点所在的机器的操作系统日志,判断操作系统日志中是否已经出现至少一次报错关键字,若是,执行步骤S510,若否,执行步骤S511;
步骤S510,发送本次问题节点的告警信息,以对本次问题节点所在的机器进行故障检查;
步骤S511,监控本次问题节点的状态,判断本次问题节点持续处于负载倾斜状态的时间是否大于预设时间,若是,执行步骤S512,若否,执行步骤S508;
步骤S512,对本次问题节点所在的机器进行停机处理,以对本次问题节点所在的机器进行检查。
需要注意的是,上述步骤S501至步骤S512所示的故障节点的定位方法是主节点执行一次采集,对得到的本次问题节点进行分析。主节点还可以根据接收的定位故障节点请求,获取预设采集时间周期,按照预设采集时间周期,定时执行负载值采集,即主节点可以执行多次负载值采集,这样可以对每次得到的问题节点进行分析,也就是说主节点可以定时对数据节点上的负载值进行采集,达到监控数据节点所在的机器是否出现故障问题的目的。
此外,步骤S510中发送本次问题节点的告警信息的同时,还可以将本次问题节点从所属数据库集群包含的至少一个数据节点中隔离出去,以及在本次问题节点对应的机器通过故障检查维修后,将本次问题节点加入所属数据库集群包含的至少一个数据节点中。还有,在执行步骤S504之前,需要获取上次问题节点;在执行步骤S505之前,需要计算所属数据库集群的负载均值;在执行步骤S506之前,需要确定所属数据库集群的工作状态。以及,在确定所属数据库集群的工作状态过程中,若所属数据库集群对应的查询语句不小于预设个数且本次问题节点上的负载值小于预设负载值阈值,则发送所属数据库集群的异常信息。还有,步骤S504至步骤S506的三个判断顺序可以根据实际情况调整,但是需要注意的是,必须三个判断条件均满足的情况下,才可以认为本次问题节点处于负载倾斜状态,相应的,只要有一个判断条件没有满足,则认为本次问题节点未处于负载倾斜状态。
根据本发明实施例的故障节点的定位方法,通过采集数据节点上的负载值得到问题节点,若分析该问题节点处于负载倾斜状态,认为该问题节点所在的机器出现故障问题的可能性较大,因此发送该问题节点的告警信息,以实现对该问题节点所在的机器进行故障检查,可以让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。此外,可以从多个判断条件判断本次问题节点是否处于负载倾斜状态,能够准确分析出问题节点是否处于负载倾斜状态,进而可以提高故障定位的准确性。还有,主节点可以定时对数据节点上的负载值进行采集,达到监控数据节点所在的机器是否出现故障问题的目的。
此外,如图1所示,数据库集群还可以包含主节点对应的备用节点。为了保证高可用性,当主节点所在的机器出现故障,不能提供服务时,则可以切换到备用节点,由该备用节点提供服务。所以,在数据库集群运行过程中,需要保证主节点和备用节点的数据同步,这样可以使得在主节点异常的情况下,备用节点可以代替主节点提供服务。
数据库集群系统还可以包括:监控配置模块。该监控配置模块可以用于:配置至少一套数据库集群的参数。其中,参数包括:数据库集群的标识、数据库集群对应的超级用户、数据库集群对应的阈值。数据库集群的标识可以为数据库集群包含的主节点所在的机器的标识。由于主节点能够接收查询语句,以及对外提供服务,因此外部请求连接到主节点即可。数据库集群对应的超级用户是指具有该数据库集群所有权限的用户,一般是管理员。数据库集群对应的阈值是指主节点执行故障节点的定位方法中,需要用到的阈值,如预设比例阈值、预设个数、预设负载值阈值、预设时间、以及预设采集时间周期。
此外,监控配置模块还可以用于:向至少一套数据库集群包含的主节点分发采集脚本,这样主节点可以利用采集样本采集数据节点的负载值数据。然后,监控配置模块可以用于:接收主节点采集的负载值数据。也就是说,对于一套数据库集群,该数据库集群包含的主节点可以采集该数据库集群包含的数据节点的负载值,然后将采集到的负载值发送至监控配置模块,这样便于管理数据库集群系统包含的至少一套数据库集群。
图6是根据本发明实施例的故障节点的定位装置的主要模块的示意图。如图6所示,故障节点的定位装置的主要模块600可以包括:采集模块601、判断模块602和告警模块603。
其中,采集模块601可用于采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;判断模块602可用于根据所属数据库集群的负载信息,判断本次问题节点是否处于负载倾斜状态;告警模块603可用于在本次问题节点处于负载倾斜状态的情况下,发送本次问题节点的告警信息,以对本次问题节点所在的机器进行故障检查。
本发明实施例中,所属数据库集群的负载信息可以包括:所属数据库集群的上次问题节点、所属数据库集群的负载均值、以及所属数据库集群的工作状态。
本发明实施例中,判断模块602可用于:判断本次问题节点与上次问题节点是否为同一个节点、本次问题节点上的负载值与负载均值的比值是否大于预设比例阈值、以及工作状态是否为非空闲状态;若是,则确认本次问题节点处于负载倾斜状态;若否,则确认本次问题节点未处于负载倾斜状态。
本发明实施例中,判断模块602可用于:获取上次问题节点;其中,上次问题节点为上一次采集确定的负载值最高的数据节点。
本发明实施例中,判断模块602可用于:对剩余数据节点上的负载值进行均值计算,获得所属数据库集群的负载均值;其中,剩余数据节点为所属数据库集群包含的至少一个数据节点中本次问题节点之外的数据节点。
本发明实施例中,判断模块602可用于:判断所属数据库集群对应的查询语句是否小于预设个数且本次问题节点上的负载值是否小于预设负载值阈值;若是,则确定当前工作状态为空闲状态,若否,则确定当前工作状态为非空闲状态。
本发明实施例中,判断模块602可用于:若所属数据库集群对应的查询语句不小于预设个数且本次问题节点上的负载值小于预设负载值阈值,则发送所属数据库集群的异常信息。
本发明实施例中,告警模块603可用于:查询本次问题节点所在的机器的操作系统日志,判断操作系统日志中是否已经出现至少一次报错关键字;若是,则发送本次问题节点的告警信息,若否,则监控本次问题节点的状态;在本次问题节点持续处于负载倾斜状态的时间大于预设时间的情况下,对本次问题节点所在的机器进行停机处理,以对本次问题节点所在的机器进行检查。
本发明实施例中,采集模块601可用于:在本次问题节点处于负载倾斜状态的情况下,将本次问题节点从所属数据库集群包含的至少一个数据节点中隔离出去;以及,在本次问题节点对应的机器通过故障检查维修后,将本次问题节点加入所属数据库集群包含的至少一个数据节点中。
本发明实施例中,告警模块603可用于:在本次问题节点未处于负载倾斜状态的情况下,确认所属数据库集群正常工作运行。本发明实施例中,采集模块601可用于:根据接收的定位故障节点请求,获取预设采集时间周期,按照预设采集时间周期,定时执行负载值采集。
本发明实施例中,采集模块601可用于:采集在预设时间周期内所属数据库集群包含的至少一个数据节点上的平均负载值,确定本次采集中平均负载值最高的数据节点为本次采集对应的本次问题节点。
本发明实施例的故障节点的定位装置,能够通过采集数据节点上的负载值得到问题节点,若分析该问题节点处于负载倾斜状态,认为该问题节点所在的机器出现故障问题的可能性较大,因此发送该问题节点的告警信息,以实现对该问题节点所在的机器进行故障检查,可以让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。此外,可以从多个判断条件判断本次问题节点是否处于负载倾斜状态,能够准确分析出问题节点是否处于负载倾斜状态,进而可以提高故障定位的准确性。还有,主节点可以定时对数据节点上的负载值进行采集,达到监控数据节点所在的机器是否出现故障问题的目的。
图7示出了可以应用本发明实施例的故障节点的定位方法或故障节点的定位装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用。终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的故障节点的定位方法一般由服务器705执行,相应地,故障节点的定位装置一般设置于服务器705中。应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括采集模块、判断模块和告警模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,采集模块还可以被描述为“定时采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;根据所属数据库集群的负载信息,判断本次问题节点是否处于负载倾斜状态;在本次问题节点处于负载倾斜状态的情况下,发送本次问题节点的告警信息,以对本次问题节点所在的机器进行故障检查。
根据本发明实施例的技术方案,通过采集数据节点上的负载值得到问题节点,若分析该问题节点处于负载倾斜状态,认为该问题节点所在的机器出现故障问题的可能性较大,因此发送该问题节点的告警信息,以实现对该问题节点所在的机器进行故障检查,可以让运维人员及时发现故障,还能够提高故障定位的准确率,减少数据库集群的故障运行时间,保障数据库集群的平稳运行。此外,可以从多个判断条件判断本次问题节点是否处于负载倾斜状态,能够准确分析出问题节点是否处于负载倾斜状态,进而可以提高故障定位的准确性。还有,主节点可以定时对数据节点上的负载值进行采集,达到监控数据节点所在的机器是否出现故障问题的目的。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (23)

1.一种故障节点的定位方法,其特征在于,包括:
采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;
根据所述所属数据库集群的负载信息,判断所述本次问题节点是否处于负载倾斜状态;
在所述本次问题节点处于负载倾斜状态的情况下,发送所述本次问题节点的告警信息,以对所述本次问题节点所在的机器进行故障检查。
2.根据权利要求1所述的方法,其特征在于,所述所属数据库集群的负载信息包括:所述所属数据库集群的上次问题节点、所述所属数据库集群的负载均值、以及所述所属数据库集群的工作状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述所属数据库集群的负载信息,判断所述本次问题节点是否处于负载倾斜状态,包括:
判断所述本次问题节点与所述上次问题节点是否为同一个节点、所述本次问题节点上的负载值与所述负载均值的比值是否大于预设比例阈值、以及所述工作状态是否为非空闲状态;
若是,则确认所述本次问题节点处于负载倾斜状态;
若否,则确认所述本次问题节点未处于负载倾斜状态。
4.根据权利要求3所述的方法,其特征在于,在判断所述上次问题节点与所述本次问题节点是否为同一个节点之前,所述方法还包括:
获取所述上次问题节点;其中,所述上次问题节点为上一次采集确定的负载值最高的数据节点。
5.根据权利要求3所述的方法,其特征在于,在判断所述本次问题节点上的负载值与所述负载均值的比值是否大于预设比例阈值之前,所述方法还包括:
对剩余数据节点上的负载值进行均值计算,获得所述所属数据库集群的负载均值;其中,
所述剩余数据节点为所述所属数据库集群包含的至少一个数据节点中所述本次问题节点之外的数据节点。
6.根据权利要求3所述的方法,其特征在于,所述判断所述当前工作状态是否为非空闲状态,包括:
判断所述所属数据库集群对应的查询语句是否小于预设个数且所述本次问题节点上的负载值是否小于预设负载值阈值;
若是,则确定所述当前工作状态为空闲状态,若否,则确定所述当前工作状态为非空闲状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述所属数据库集群对应的查询语句不小于预设个数且所述本次问题节点上的负载值小于预设负载值阈值,则发送所述所属数据库集群的异常信息。
8.根据权利要求1所述的方法,其特征在于,在发送所述本次问题节点的告警信息之前,所述方法还包括:
查询所述本次问题节点所在的机器的操作系统日志,判断所述操作系统日志中是否已经出现至少一次报错关键字;
若是,则发送所述本次问题节点的告警信息,若否,则监控所述本次问题节点的状态;
在所述本次问题节点持续处于负载倾斜状态的时间大于预设时间的情况下,对所述本次问题节点所在的机器进行停机处理,以对所述本次问题节点所在的机器进行检查。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述本次问题节点处于负载倾斜状态的情况下,将所述本次问题节点从所述所属数据库集群包含的至少一个数据节点中隔离出去;以及,
在所述本次问题节点对应的机器通过故障检查维修后,将所述本次问题节点加入所述所属数据库集群包含的至少一个数据节点中。
10.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
在所述本次问题节点未处于负载倾斜状态的情况下,确认所述所属数据库集群正常工作运行。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据接收的定位故障节点请求,获取预设采集时间周期,按照所述预设采集时间周期,定时执行负载值采集。
12.根据权利要求11所述的方法,其特征在于,所述采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点,包括:
采集在所述预设时间周期内所述所属数据库集群包含的至少一个数据节点上的平均负载值,确定本次采集中平均负载值最高的数据节点为本次采集对应的问题节点。
13.一种故障节点的定位装置,其特征在于,包括:
采集模块,用于定时采集所属数据库集群包含的至少一个数据节点上的负载值,确定负载值最高的数据节点为本次问题节点;
判断模块,用于根据所述所属数据库集群的负载信息,判断所述本次问题节点是否处于负载倾斜状态;
告警模块,用于在所述本次问题节点处于负载倾斜状态的情况下,发送所述本次问题节点的告警信息,以对所述本次问题节点所在的机器进行故障检查。
14.根据权利要求13所述的装置,其特征在于,所述所属数据库集群的负载信息包括:所述所属数据库集群的上次问题节点、所述所属数据库集群的负载均值、以及所述所属数据库集群的工作状态;以及,
所述判断模块还用于:
判断所述本次问题节点与所述上次问题节点是否为同一个节点、所述本次问题节点上的负载值与所述负载均值的比值是否大于预设比例阈值、以及所述工作状态是否为非空闲状态;
若是,则确认所述本次问题节点处于负载倾斜状态;
若否,则确认所述本次问题节点未处于负载倾斜状态。
15.根据权利要求13所述的装置,其特征在于,所述告警模块还用于:
查询所述本次问题节点所在的机器的操作系统日志,判断所述操作系统日志中是否已经出现至少一次报错关键字;
若是,则发送所述本次问题节点的告警信息,若否,则监控所述本次问题节点的状态;
在所述本次问题节点持续处于负载倾斜状态的时间大于预设时间的情况下,对所述本次问题节点所在的机器进行停机处理,以对所述本次问题节点所在的机器进行检查。
16.一种数据库集群系统,其特征在于,所述系统包括至少一套数据库集群,其中,一套数据库集群包含主节点和至少一个数据节点;
所述主节点用于:执行权利要求1-12中任一所述的故障节点的定位方法,以对所属数据库集群包含的至少一个数据节点进行故障定位。
17.根据权利要求16所述的系统,其特征在于,所述主节点还用于:
接收所述所属数据库集群对应的查询语句,生成所述查询语句对应查询计划,向所述所属数据库集群对应的至少一个数据节点分发所述查询计划。
18.根据权利要求16所述的系统,其特征在于,所述一套数据库集群包含的至少一个数据节点所处的机器的配置是相同的;其中,所述配置包括:CPU核数、内存空间、网络带宽以及实例数。
19.根据权利要求16所述的系统,其特征在于,所述系统还包括监控配置模块,用于:
配置所述至少一套数据库集群的参数,其中,所述参数包括:数据库集群的标识、数据库集群对应的超级用户、数据库集群对应的阈值。
20.根据权利要求19所述的系统,其特征在于,所述监控配置模块还用于:向所述至少一套数据库集群包含的主节点分发采集脚本,以及,接收所述主节点采集的负载值数据。
21.根据权利要求16所述的系统,其特征在于,所述一套数据库集群包含主节点对应的备用节点;
所述备用节点用于在所述主节点异常的情况下,代替所述主节点提供服务。
22.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
23.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-12中任一所述的方法。
CN202010997311.5A 2020-09-21 2020-09-21 故障节点的定位方法和定位装置、以及数据库集群系统 Active CN112131077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010997311.5A CN112131077B (zh) 2020-09-21 2020-09-21 故障节点的定位方法和定位装置、以及数据库集群系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010997311.5A CN112131077B (zh) 2020-09-21 2020-09-21 故障节点的定位方法和定位装置、以及数据库集群系统

Publications (2)

Publication Number Publication Date
CN112131077A true CN112131077A (zh) 2020-12-25
CN112131077B CN112131077B (zh) 2024-09-03

Family

ID=73842064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010997311.5A Active CN112131077B (zh) 2020-09-21 2020-09-21 故障节点的定位方法和定位装置、以及数据库集群系统

Country Status (1)

Country Link
CN (1) CN112131077B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505017A (zh) * 2021-07-16 2021-10-15 中国建设银行股份有限公司 一种问题排查方法、装置、存储介质和设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138687A1 (en) * 2008-11-28 2010-06-03 Fujitsu Limited Recording medium storing failure isolation processing program, failure node isolation method, and storage system
CN102577241A (zh) * 2009-12-31 2012-07-11 华为技术有限公司 分布式缓存资源调度的方法、装置及系统
CN103580903A (zh) * 2012-08-02 2014-02-12 人人游戏网络科技发展(上海)有限公司 识别服务器系统中的热点和可能故障的方法、设备和系统
CN103607297A (zh) * 2013-11-07 2014-02-26 上海爱数软件有限公司 一种计算机集群系统的故障处理方法
US20150186228A1 (en) * 2013-12-27 2015-07-02 Dinesh Kumar Managing nodes in a distributed computing environment
CN105138441A (zh) * 2015-06-30 2015-12-09 中标软件有限公司 高可用集群系统及基于该系统的告警方法、告警系统
CN111046091A (zh) * 2019-10-24 2020-04-21 杭州数梦工场科技有限公司 数据交换系统的运行方法、装置及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138687A1 (en) * 2008-11-28 2010-06-03 Fujitsu Limited Recording medium storing failure isolation processing program, failure node isolation method, and storage system
CN102577241A (zh) * 2009-12-31 2012-07-11 华为技术有限公司 分布式缓存资源调度的方法、装置及系统
CN103580903A (zh) * 2012-08-02 2014-02-12 人人游戏网络科技发展(上海)有限公司 识别服务器系统中的热点和可能故障的方法、设备和系统
CN103607297A (zh) * 2013-11-07 2014-02-26 上海爱数软件有限公司 一种计算机集群系统的故障处理方法
US20150186228A1 (en) * 2013-12-27 2015-07-02 Dinesh Kumar Managing nodes in a distributed computing environment
CN105138441A (zh) * 2015-06-30 2015-12-09 中标软件有限公司 高可用集群系统及基于该系统的告警方法、告警系统
CN111046091A (zh) * 2019-10-24 2020-04-21 杭州数梦工场科技有限公司 数据交换系统的运行方法、装置及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505017A (zh) * 2021-07-16 2021-10-15 中国建设银行股份有限公司 一种问题排查方法、装置、存储介质和设备

Also Published As

Publication number Publication date
CN112131077B (zh) 2024-09-03

Similar Documents

Publication Publication Date Title
CN107016480B (zh) 任务调度方法、装置及系统
WO2021129367A1 (zh) 一种监控分布式存储系统的方法及装置
US10152382B2 (en) Method and system for monitoring virtual machine cluster
CN109257200B (zh) 大数据平台监控的方法和装置
US11526386B2 (en) System and method for automatically scaling a cluster based on metrics being monitored
US20150081880A1 (en) System and method of monitoring and measuring performance relative to expected performance characteristics for applications and software architecture hosted by an iaas provider
CN111190888A (zh) 一种管理图数据库集群的方法和装置
EP3591485B1 (en) Method and device for monitoring for equipment failure
US20220179729A1 (en) Correlation-based multi-source problem diagnosis
CN112181942A (zh) 时序数据库系统和数据处理方法及装置
CN112860343A (zh) 配置变更方法、系统、装置、电子设备以及存储介质
CN111240936A (zh) 一种数据完整性校验的方法及设备
CN112131077B (zh) 故障节点的定位方法和定位装置、以及数据库集群系统
CN113254245A (zh) 一种存储集群的故障检测方法和系统
CN113656239A (zh) 针对中间件的监控方法、装置及计算机程序产品
US11777810B2 (en) Status sharing in a resilience framework
CN112817687A (zh) 一种数据同步方法和装置
Alekseev et al. The BigPanDA self-monitoring alarm system for ATLAS
CN114816914A (zh) 基于Kubernetes的数据处理方法、设备及介质
CN114706893A (zh) 故障检测方法、装置、设备及存储介质
CN112235332B (zh) 一种集群的读写切换方法和装置
CN114095394A (zh) 网络节点故障检测方法、装置、电子设备及存储介质
CN106953759B (zh) 集群控制方法和集群控制设备
CN112181763B (zh) 一种智能调度中的智能检测告警方法及装置
CN113778657B (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
GR01 Patent grant
GR01 Patent grant