一种复制组状态监控方法、装置、设备及存储介质与流程

文档序号:18192878发布日期:2019-07-17 05:39阅读:140来源:国知局
一种复制组状态监控方法、装置、设备及存储介质与流程

本申请的实施方式涉及计算机领域,尤其涉及一种复制组状态监控方法、装置、设备及存储介质。



背景技术:

mysql是一种关系型数据库管理系统,所使用的sql(structuredquerylanguage,结构化查询)语言是用于访问数据库最常用的标准化语言。由于mysql体积小、速度快、成本低,尤其是开放源码这一特点,成为最受欢迎的数据库管理系统之一。

为了在故障发生时保证业务的可持续性,mysql具有主库(master)和从库(slave)。主库和从库都属于数据库,从库是主库的备份,当主库发生故障后,由从库接替主库承担起运行业务的功能。这种通过备份来保证业务可持续性的机制简称“高可用性”。一个主库可以具有一个从库,也可以具有多个从库。一个主库与其所有从库可以形成一个复制组。

在很多情况下,用户希望能掌握复制组的状况,例如了解有哪些数据库目前是主库,哪些数据库目前是从库。现有技术通过人工查看的方式来了解复制组的状况,显然这种方式效率较低,尤其是当主库和从库数量较多的时候。因此,目前亟待需要出现能够快速获取复制组状况的方法。



技术实现要素:

为了解决现有技术通过人工查看的方式了解复制组状况导致的效率低的问题,本申请提供了一种复制组状态监控方法、装置、设备及存储介质,实现快速获取复制组状况的目的。

第一方面,本申请提供了一种复制组状态监控方法,所述方法可以包括:

检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

可选的,所述根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息包括:

根据所述复制组管理进程得到所述复制组的位置信息;

利用所述复制组的位置信息获取复制组中主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

可选的,所述根据所述复制组管理进程得到所述复制组的位置信息包括:

从所述复制组管理进程中得到配置文件路径,并根据所述配置文件路径找到配置文件,所述配置文件中存储有所述复制组的位置信息。

可选的,所述方法还包括:

根据所述主库的状态信息和所述从库的状态信息得到所述主库和所述从库之间的主从关系。

可选的,所述复制组管理进程由复制组管理服务器执行;

所述方法还包括:

获取复制组管理服务器与所述复制组之间的关联关系。

可选的,所述方法还包括:

将所述主库的状态信息和/或所述从库的状态信息、所述主从关系以及所述关联关系,以图的方式进行显示。

可选的,所述方法还包括:

根据所述主库的状态信息判断所述主库是否发生异常,和/或,根据所述从库的状态信息判断所述从库是否发生异常;

若所述主库和/或从库发生异常,则将表示异常的所述主库和/或从库的状态信息在图中进行标识。

可选的,所述方法还包括:

响应对所述主从关系的变更请求,改变图中的所述主从关系,并控制所述主库和所述从库变更所述主从关系。

第二方面,本申请提供了一种复制组状态监控装置,所述装置可以包括:

检测单元,用于检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

状态信息获取单元,用于根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

第三方面,本申请提供了一种复制组状态监控设备,所述设备可以包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为:

检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

第四方面,本申请提供了一种复制组状态监控存储介质,所述存储介质用于存储程序,其中所述程序在被执行时使得电子设备进行以下操作:

检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

本申请可以对用来监控复制组的状态的复制组管理进程进行检测,根据检测到的复制组管理进程获得复制组中主库和/或从库的状态信息,从而实现对复制组状态的监控。本申请摆脱了现有技术通过人工查看的方式来了解复制组状态,采用了自动检测的方式来获取复制组状态,提高了获取复制组状态的效率,实现了快速获取复制组状况的目的。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的一种mha的网络架构示意图;

图2为本申请实施例提供的一种复制组状态监控方法的流程示意图;

图3为本申请实施例提供的web用户界面显示示意图;

图4为本申请实施例提供的一种复制组状态监控方法的流程示意图;

图5为本申请实施例提供的一种复制组状态监控装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

mysqlmasterha(简称mha)是目前mysql使用最广泛的高可用性组件,可以通过使用从库来备份主库的方法在故障发生时保证业务可持续性。本申请提供的一种复制组状态监控方法可以用于例如图1所示的一种mha的网络架构中,其中包括:复制组管理服务器(简称mha-manager)101、复制组102、复制组103和复制组104。

mha-manager101可以执行复制组管理进程,本申请提供的复制组状态监控设备可以检测mha-manager101执行的复制组管理进程,所述复制组管理进程用于监控复制组102、复制组103和复制组104的状态,复制组状态监控设备根据所述复制组管理进程获得复制组102、复制组103和复制组104中主库和从库的状态信息,从而实现对复制组102、复制组103和复制组104状态的监控。

其中,mha-manager101可以为用于管理一个或多个复制组的复制组管理服务器。在图1中,一个mha-manager管理着三组复制组,即复制组102、复制组103和复制组104。本申请提供的复制组状态监控设备可以是mha-manager,也可以是一个独立的服务器。可选的,如果复制组状态监控设备监控多个mha-manager对应的复制组,那么复制组状态监控设备可以独立使用一个服务器;如果复制组状态监控设备仅对一个mha-manager对应的复制组进行监控,那么复制组状态监控设备可以是mha-manager。

图1中的m表示主库,s表示从库。复制组102、复制组103和复制组104中每个复制组可以包含一个主库和其所有从库,一个主库可以具有一个从库,也可以具有多个从库。例如图1中的复制组102具有一个主库和一个从库;复制组103具有一个主库和两个从库;复制组104具有一个主库和三个从库。复制组中主从库之间的切换可以由mha-manager104负责管理。

需要注意的是,上述应用场景仅是为了便于理解本申请的原理而示出的,不用于限定本申请实施例提供的技术方案。

参见图2,该图为本申请实施例提供的一种复制组状态监控方法的流程示意图。

本实施例提供的一种复制组状态监控方法可以包括如下步骤:

s201、检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库。

复制组状态监控设备可以检测到复制组管理进程,其中,所述复制组管理进程可以由复制组管理服务器执行,所述复制组状态监控设备可以是一个独立的服务器。

所述复制组管理进程用于监控复制组的状态,其中一个复制组管理进程可以监控一个复制组的状态。所述复制组的状态可以包括:复制正常、复制延迟、复制报错、复制停止和可能由宕机导致的复制组中的数据库实例无法访问等。

一般情况下,可以通过在从库上执行“showslavestatus”命令来查询复制组的状态。例如,若复制组管理进程执行“showslavestatus”命令,显示的查询信息中没有任何错误信息,可以表示复制组的状态为复制正常;若复制组管理进程执行“showslavestatus”命令,显示的查询信息中表示从库的延时信息处显示的延时时间不为0,可以表示复制组的状态为复制延时,所述复制延时可能由主从库复制发生中断等原因引起的;若复制组管理进程执行“showslavestatus”命令,显示的查询信息中出现“error”报错信息,则可以表示复制组的状态为复制报错等等。

s202、根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

可以理解的是,由于所述复制组管理进程用于监控复制组的状态,所述复制组可能是多组。所以,复制组状态监控设备根据检测到的所述复制组管理进程可以获得各个复制组中主库和/或从库的状态信息。

作为一种示例,根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息可以是直接从所述复制组管理进程中获得所述主库的状态信息和/或从库的状态信息。但是,所述获得所述主库的状态信息和/或从库的状态信息的方法需要mha-manager具有查询复制组中所述主库的状态信息和/或从库的状态信息的接口。

作为一种示例,所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息可以包括:根据所述复制组管理进程得到所述复制组的位置信息;利用所述复制组的位置信息获取复制组中主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

需要说明的是,在查找复制组的位置信息时,可以通过复制组中的实例hostname、网络之间互连的协议(internetprotocol,简称ip)、域名系统(domainnamesystem,简称dns)、网络中的hostname和接口port等得到复制组的位置信息。但是,为了可以使获得复制组的位置信息实时有效,本实施例可以利用进程中的配置文件来获得复制组的位置信息。

具体地,所述根据所述复制组管理进程得到所述复制组的位置信息可以包括:从所述复制组管理进程中得到配置文件路径,并根据所述配置文件路径找到配置文件,所述配置文件中存储有所述复制组的位置信息。通常情况下,一个复制组管理进程对应一个复制组,所以一个复制组管理进程具有一个配置文件路径,从该配置文件路径可以找到存储有该复制组的位置信息的配置文件。

作为一种示例,在使用上述步骤获得所述复制组的位置信息时,可以首先使用命令“ps–ef|grepmasterha_manager|grep–vgrep”得到的mha的复制组管理进程,显示的结果中可以包括如下内容:

masterha_manager

--global_conf=/usr/local/masterha/conf/masterha_default.cnf

--conf=/usr/local/masterha/conf/app1.cnf>/tmp/mha_manager.log

其中/usr/local/masterha/conf/masterha_default.cnf是mha全局配置文件;/usr/local/masterha/conf/app1.cnf是所述复制组管理进程对应的复制组的配置文件,从而实现在所述复制组的配置文件中得到所述复制组的位置信息。

为了能够获得复制组中的数据库哪些数据库是主库、哪些数据库是从库,在s202之后还可以包括:根据所述主库的状态信息和所述从库的状态信息得到所述主库和所述从库之间的主从关系。

具体地,可以在复制组中任一实例(主库和从库均为实例)上执行“showslavestatus”命令,如果执行“showslavestatus”命令后,显示的查询信息为空,则所述数据库是主库;如果显示的查询信息是主库的详细信息,则所述数据库是从库。其中,显示的查询信息可以包括例如以下内容:

master_host:172.17.2.40

master_user:root

master_port:4331

为了能够获得复制组中各个复制组和mha-manager的关系,在s202之后还可以包括:获取复制组管理服务器与所述复制组之间的关联关系。

在获得了所述主库的状态信息和/或所述从库的状态信息、所述主从关系以及所述关联关系后,为了可以直观的反映复制组的拓扑结构以及各个复制组和mha-manager的关联关系,所述复制组的拓扑结构可以是复制组中主库和其所有从库的结构关系,所述主库和其所有从库的结构关系可以由所述主库和所述从库之间的主从关系得到,为了可以完整的展现复制组的状态,本实施例所述的方法还可以包括:将所述主库的状态信息和/或所述从库的状态信息、所述主从关系以及所述关联关系,以图的方式进行显示。所述显示可以是在全球广域网(worldwideweb,简称web)的用户界面上进行显示。

在对复制组状态进行监控的过程中,获得了所述主库的状态信息和/或所述从库的状态信息,根据所述主库的状态信息判断所述主库是否发生异常,和/或,根据所述从库的状态信息判断所述从库是否发生异常。为了可以使用户直观、清楚地看到哪一个数据库发生异常以及所述异常具体是什么,本实施例可以在显示所述主库的状态信息和/或所述从库的状态信息、所述主从关系以及所述关联关系的图中对表示异常的所述主库和/或从库的状态信息进行标识。具体地,本实施例所述的方法还可以包括:若所述主库和/或从库发生异常,则将表示异常的所述主库和/或从库的状态信息在图中进行标识。

需要说明的是,若主库发生异常,所述异常可以是:cpu过高、连接数超过阈值、内存用尽、主机无法连接和数据库无法连接等。若从库发生异常,所述异常可以是:cpu过高、连接数超过阈值、内存用尽、主机无法连接和数据库无法连接、复制延迟,复制报错,复制停止等。对所述主库和/或所述从库是否发生异常的判断方法可以根据所述发生异常的类型来确定。所述标识可以是将异常的所述主库和/或从库的状态信息及相应的异常的所述主库和/或从库在图中采用高亮状态进行标识。

作为一种示例,cpu过高、内存用尽和主机无法连接等此类异常可以作为主机信息异常类型。所述主机信息异常可以通过登陆到主机后执行相关命令来获取对应的性能数据。对于cpu过高的判断,可以通过uptime命令查看cpu负载,然后通过free命令查看内存使用情况,从而判断cpu是否过高。

作为一种示例,数据库无法连接、连接数超过阈值、复制延迟、复制报错和复制停止等此类异常可以作为数据库信息异常类型。所述数据库信息异常可以通过访问数据库来获取信息。对于连接数超过阈值的判断,可以在数据库中每分钟执行showstatuslike‘%connections%’命令,并把结果保存下来,每次的执行结果减去上一次的执行结果,就是最近若干分钟数据库的连接数。若所述连接数太大,可以判断所述数据库连接数超过阈值,也可以说明所述数据库连接有阻塞。

参见图3,示出了本申请实施例web用户界面显示示意图。从图3可以直观的看到所述主库的状态信息和所述从库的状态信息、所述主从关系以及所述关联关系。图3的显示框中显示的是所述主库的状态信息和所述从库的状态信息,其中深色显示框中的状态信息表示的是对所述主库和所述从库没有发生异常,浅色显示框中的状态信息表示的是对所述主库和/或所述从库异常。图3中,带有192.168.100.5:3306的状态信息表示的是主库和从库同步报错;带有192.168.100.7:3306的状态信息表示的是mysql服务停止;带有192.168.100.9:3306的状态信息表示的是主库和从库同步严重延时,所述延时为600秒。在对复制组状态进行监控的过程中,如果监控到复制组中的主库发生故障,为了在发生故障时保证业务的连续性,需要将所述主库对应的从库变更为主库,改变所述主库对应的复制组的主从关系。具体地,本实施例所述的方法还可以包括:响应对所述主从关系的变更请求,改变图中的所述主从关系,并控制所述主库和所述从库变更所述主从关系。

需要说明的是,用户可以通过鼠标或触摸板的拖动操作在用户界面上拖动图标,从而控制复制组中所述主库和所述从库变更所述主从关系。所述拖动的对象可以是所述主库和从库的变更关系的实例,拖动后放置的位置可以是拖动对象的新主库。拖放事件将生成命令可以包括如下命令:changemastertomaster_host='192.168.170.76',master_port=3306,master_user='root',master_password='password'........。所述命令可以是直接向主从库发送的命令,也可以是通过mha-manager向主从库发送的命令。

本申请可以对用来监控复制组的状态的复制组管理进程进行检测,根据检测到的复制组管理进程获得复制组中主库和/或从库的状态信息,从而实现对复制组状态的监控。本申请摆脱了现有技术通过人工查看的方式来了解复制组状态,采用了自动检测的方式来获取复制组状态,提高了获取复制组状态的效率,实现了快速获取复制组状态的目的。

下面结合一种复制组状态监控方法的实际应用,对所述方法进行介绍。本申请实施例可以通过检测复制组管理进程来获得mha中各个复制组的状态,同时可以将各个复制组的状态以图形的形式直观的展现出来,实现快速获取复制组状态的目的。并且,可以在发生故障时,控制所述主库和所述从库变更所述主从关系。本申请实施例将全球广域网(worldwideweb,简称web)作为用户界面,所述一种复制组状态监控设备独立使用一个服务器,可以作为监控服务器。

参见图4,该图为本申请实施例提供的一种复制组状态监控方法的流程示意图。

本实施例提供的一种复制组状态监控方法包括如下步骤:

s401、用户登陆web界面,输入mha-manager的hostname。

s402、监控服务器检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库。

s403、所述监控服务器从所述复制组管理进程中得到配置文件路径,并根据所述配置文件路径找到配置文件,所述配置文件中存储有所述复制组的位置信息。

s404、所述监控服务器利用所述复制组的位置信息获取复制组中主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

s405、所述监控服务器根据所述主库的状态信息和所述从库的状态信息得到所述主库和所述从库之间的主从关系。

s406、所述监控服务器获取复制组管理服务器与所述复制组之间的关联关系。

s407、所述监控服务器将所述主库的状态信息和/或所述从库的状态信息、所述主从关系以及所述关联关系,以图的方式显示在web用户界面上。

s408、所述监控服务器根据所述主库的状态信息判断所述主库是否发生异常,和/或,根据所述从库的状态信息判断所述从库是否发生异常;若所述主库和/或从库发生异常,则将表示异常的所述主库和/或从库的状态信息在图中进行标识。

s409、所述监控服务器响应对所述主从关系的变更请求,改变图中的所述主从关系,并控制所述主库和所述从库变更所述主从关系。

本申请可以对用来监控复制组的状态的复制组管理进程进行检测,根据检测到的复制组管理进程获得复制组中主库和/或从库的状态信息,从而实现对复制组状态的监控。本申请摆脱了现有技术通过人工查看的方式来了解复制组状态,采用了自动检测的方式来获取复制组状态,提高了获取复制组状态的效率,实现了快速获取复制组状态的目的。同时,根据监控到的复制组状态,通过鼠标的拖放功能实现了所述复制组中主从关系的变更。

基于以上实施例提供的一种复制组状态监控方法,本申请实施例还提供了一种复制组状态监控装置,下面结合附图来详细说明其工作原理。

参见图5,该图为本申请实施例提供的一种复制组状态监控装置的结构框图。

本实施例提供的一种复制组状态监控装置可以包括:检测单元501和状态信息获取单元502。

所述检测单元501,用于检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

所述状态信息获取单元502,用于根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

本申请可以通过所述检测单元501,对用来监控复制组的状态的复制组管理进程进行检测。所述状态信息获取单元502根据检测到的复制组管理进程获得复制组中主库和/或从库的状态信息,从而实现对复制组状态的监控。本申请摆脱了现有技术通过人工查看的方式来了解复制组状态,采用了自动检测的方式来获取复制组状态,提高了获取复制组状态的效率,实现了快速获取复制组状态的目的。

可选的,所述状态信息获取单元502可以包括:

位置信息获取单元,用于根据所述复制组管理进程得到所述复制组的位置信息;

状态获取子单元,用于利用所述复制组的位置信息获取复制组中主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

可选的,所述位置信息获取单元可以包括:

路径获取单元,用于从所述复制组管理进程中得到配置文件路径;

配置文件获取单元,用于根据所述配置文件路径找到配置文件,所述配置文件中存储有所述复制组的位置信息。

可选的,所述装置还包括:

主从关系获取单元,用于根据所述主库的状态信息和所述从库的状态信息得到所述主库和所述从库之间的主从关系。

可选的,所述复制组管理进程由复制组管理服务器执行;

所述装置还包括:

关联关系获取单元,用于获取复制组管理服务器与所述复制组之间的关联关系。

可选的,所述装置还包括:

显示单元,用于将所述主库的状态信息和/或所述从库的状态信息、所述主从关系以及所述关联关系,以图的方式进行显示。

可选的,所述装置还包括:

判断单元,用于根据所述主库的状态信息判断所述主库是否发生异常,和/或,根据所述从库的状态信息判断所述从库是否发生异常;

标识单元,用于若所述主库和/或从库发生异常,则将表示异常的所述主库和/或从库的状态信息在图中进行标识。

可选的,所述装置还包括:

改变单元,用于响应对所述主从关系的变更请求,改变图中的所述主从关系;

控制单元,用于控制所述主库和所述从库变更所述主从关系。

本申请实施例还提供了一种复制组状态监控设备,所述设备可以包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为:

检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

本申请实施例还提供了一种复制组状态监控存储介质,所述存储介质用于存储程序,其中所述程序在被执行时可以使得电子设备进行以下操作:

检测复制组管理进程,所述复制组管理进程用于监控复制组的状态,所述复制组包括主库和从库;

根据所述复制组管理进程得到所述主库的状态信息和/或从库的状态信息,实现对复制组状态的监控。

其中所述存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。

需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1