探测MySQL运行信息的方法与装置制造方法

文档序号:6492679阅读:117来源:国知局
探测MySQL运行信息的方法与装置制造方法
【专利摘要】本发明公开了一种探测MySQL运行信息的方法与装置,采用长连接的方式,对MySQL进行周期性探测,并缓存每个周期的探测结果,在接到探测请求时,从缓存中提取探测结果。从而在待探测MySQL负载高或本装置所在系统网络并发量大时,也能保证正常探测,提高了探测的持续性和稳定性,尤其适用于对可靠性要求较高的MySQL集群监控运营。
【专利说明】探测MySQL运行信息的方法与装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别是涉及一种探测MySQL运行信息的方法与装置。
【背景技术】
[0002]SQL (Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及管理关系数据库系统。
[0003]MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司(于2008年I月被SUN公司收购,2009年SUN被Oracle收购,目前属于Oracle)。关系数据库基于关系数据模型将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,具有灵活性的同时保持存取速度。
[0004]传统的探测MySQL运行信息的装置,包括MySQL标准安装包提供的工具,都采用基于短连接的实现方式。这种基于短连接的主要机制如下:
[0005]I)用户使用该装置,或者周期性触发该装置时,先建立与MySQL的连接;
[0006]2)待连接建立之后触发探测的操作,例如发送SQL语句;
[0007]3)待结果返回之后,或者待超时之后,断开与MySQL的连接;
[0008]4)最终返回结果。
[0009]由于每次信息探测都需要执行完整的连接、获取信息、断开连接过程,基于短连接的探测MySQL运行信息的装置有如下缺点:
[0010]I)在目标系统MySQL负载高时,会无法探测信息。原因在于目标系统MySQL负载高时,信息探测装置也无法连接上MySQL,进而无法探测信息。
[0011]2)在装置安装的系统网络并发量巨大时,也会无法探测信息。安装装置的计算机系统可能也会出现并发量巨大的情况(例如同时运行多种探测工具),本地IP端口号可能耗尽,造成探测装置无法获得端口号连接目标MySQL,进而无法探测信息。
[0012]总结来说,基于短连接的探测MySQL运行信息的装置无法保证在任何情况下都探测到MySQL信息。在正常的运营环境中,高负载的情况下通常最需要及时探测到MySQL的运行信息以供决策分析和故障处理。因此基于短连接的探测MySQL运行信息的装置很难用于高可靠MySQL集群监控运营中。

【发明内容】

[0013]基于上述情况,本发明实施例提出了一种探测MySQL运行信息的方法与装置,以提高探测MySQL运行信息的可靠性。
[0014]一种探测MySQL运行信息的方法,周期性执行以下步骤:
[0015]确认已连接上待探测的MySQL ;
[0016]向待探测的MySQL发送基于MySQL协议的探测请求;
[0017]缓存待探测的MySQL返回的结果,[0018]周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
[0019]一种探测MySQL运行信息的装置,包括周期探测单元和监听单元,
[0020]所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
[0021 ] 确认已连接上待探测的MySQL ;
[0022]向待探测的MySQL发送基于MySQL协议的探测请求;
[0023]缓存待探测的MySQL返回的结果,
[0024]所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
[0025]本发明实施例探测MySQL运行信息的方法与装置,采用长连接的方式,对MySQL进行周期性探测,并缓存每个周期的探测结果,在接到探测请求时,从缓存中提取探测结果。从而在待探测MySQL负载高或本装置所在系统网络并发量大时,也能保证正常探测,提高了探测的持续性和稳定性,尤其适用于对可靠性要求较高的MySQL集群监控运营。
【专利附图】

【附图说明】
[0026]图1为本发明探测MySQL运行信息的方法实施例一的流程示意图;
[0027]图2为本发明探测MySQL运行信息的方法实施例三的流程示意图;
[0028]图3为本发明探测MySQL运行信息的装置实施例一的结构示意图。
【具体实施方式】
[0029]下面结合附图与实施例详细解释本发明的方案,首先介绍探测MySQL运行信息的方法的实施例。
[0030]实施例一
[0031]本实施例探测MySQL运行信息的方法,如图1所示,周期性执行如下步骤:
[0032]步骤SlOl、确认已连接上待探测的MySQL ;
[0033]步骤S102、向待探测的MySQL发送基于MySQL协议的探测请求;
[0034]步骤S103、缓存待探测的MySQL返回的结果,
[0035]步骤S104、周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
[0036]为了提高探测可靠性,本实施例采用长连接的方式来克服传统的短连接方式存在的缺陷。所谓长连接是指长时间保持会话的TCP连接,在本实施例中具体是指通过TCP协议建立与MySQL的连接之后,不主动关闭连接,并且周期性不断的进行通讯。
[0037]如图1所示,步骤S101-S103循环执行,从而与待探测的MySQL保持连接,在目标MySQL负载高或本方法所应用的系统网络并发量大时,减少因无法连接导致无法探测的可能,提高了探测的可靠性。本实施例还采用缓存机制,缓存每个周期的探测结果,在客户端发来探测请求时,直接从缓存中获取上个周期的探测结果,有利于将探测结果快速返回客户端。
[0038]实施例二[0039]本实施例探测MySQL运行信息的方法,周期性执行如下步骤:
[0040]步骤SlOl、确认已连接上待探测的MySQL ;
[0041]步骤S102、向待探测的MySQL发送基于MySQL协议的探测请求;
[0042]步骤S103、缓存待探测的MySQL返回的结果;
[0043]步骤S104、周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
[0044]待探测的MySQL实例有多个时,本实施例为每一个待探测的MySQL实例建立一个探测任务,每个探测任务在时间周期到来时,负责对所对应的MySQL实例进行探测,并缓存探测结果。执行步骤S104监听到客户端的探测请求时,从缓存中查找并返回对应探测任务上个周期的探测结果。
[0045]每个探测任务的探测周期可以根据客户端的需求而设定。
[0046]实施例三
[0047]为了进一步完善探测MySQL运行信息的方法,如图2所示,本实施例对执行过程中可能出现的几种异常情况做出了应对,下面是本实施例的步骤。
[0048]步骤SlOl、确认已连接上待探测的MySQL ;
[0049]步骤S102、向待探测的MySQL发送基于MySQL协议的探测请求;
[0050]步骤S103、缓存待探测的MySQL返回的结果;
[0051]步骤S104、周期性执行以上步骤S101-S103的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果;
[0052]步骤S105、在执行步骤SlOl确认已连接上待探测的MySQL的过程中,若发现未连接上待探测的MySQL,则尝试连接直至成功;
[0053]步骤S106、在执行步骤S103缓存待探测的MySQL返回的结果的过程中,若待探测的MySQL超过预定时间仍未返回结果,则返回步骤S101确认是否已连接上待探测的MySQL ;若发现与待探测的MySQL的连接被断开,则尝试连接直至成功;
[0054]步骤S107、在执行步骤S104从缓存中查找并返回上个周期的探测结果的过程中,若未查找到上个周期的探测结果,则向客户端返回信息未找到。从而无论探测成功与否,在客户端发来请求时,都给出明确的答复。
[0055]下面介绍探测MySQL运行信息的装置的实施例。
[0056]实施例一
[0057]本实施例探测MySQL运行信息的装置,如图3所示,包括周期探测单元101和监听单元102。
[0058]所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
[0059]确认已连接上待探测的MySQL ;
[0060]向待探测的MySQL发送基于MySQL协议的探测请求;
[0061]缓存待探测的MySQL返回的结果,
[0062]所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
[0063]本实施例的装置中,周期探测单元101采用长连接方式对待探测的MySQL执行周期性探测,并将探测结果缓存在内存数据缓存中。监听单元102在监听到客户端的探测请求时,将周期探测单元缓存的探测结果发给客户端。
[0064]由以上描述可知,本实施例对应上述探测MySQL运行信息的方法的实施例一,具体地,周期探测单元101对应步骤S101-S103,监听单元102对应步骤S104,本实施例的有益效果不再赘述。
[0065]实施例二
[0066]本实施例探测MySQL运行信息的装置,包括周期探测单元101和监听单元102。
[0067]所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
[0068]确认已连接上待探测的MySQL ;
[0069]向待探测的MySQL发送基于MySQL协议的探测请求;
[0070]缓存待探测的MySQL返回的结果。
[0071]所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
[0072]本实施例的装置中,周期探测单元101采用长连接方式对待探测的MySQL执行周期性探测,并缓存探测结果。监听单元102在监听到客户端的探测请求时,将周期探测单元缓存的探测结果发给客户端。
[0073]在本实施例中,当待探测的MySQL有多个时,每个待探测的MySQL向本装置进行注册。本装置的周期探测单元101为每一个注册的MySQL实例建立一个探测任务,每个探测任务在时间周期到来时,以所对应的MySQL为待探测对象进行周期性探测。所述监听单元102则在监听到探测请求时,从缓存中查找并返回对应探测任务上个周期的探测结果。
[0074]每个探测任务的探测周期可以相同或不同,并均可以根据客户端的需求而设定。
[0075]实施例三
[0076]本实施例探测MySQL运行信息的装置,包括周期探测单元101和监听单元102。
[0077]所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
[0078]确认已连接上待探测的MySQL ;
[0079]向待探测的MySQL发送基于MySQL协议的探测请求;
[0080]缓存待探测的MySQL返回的结果。
[0081]所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
[0082]本实施例的装置中,周期探测单元101采用长连接方式对待探测的MySQL执行周期性探测,并缓存探测结果。监听单元102在监听到客户端的探测请求时,将周期探测单元缓存的探测结果发给客户端。
[0083]周期探测单元101和监听单元102在工作过程中都可能出现异常情况,本实施例对以下几种异常情况作出应对。
[0084]所述周期探测单元101还用于周期性检测是否已连接上待探测的MySQL,若未连接上待探测的MySQL,则尝试连接直至成功;
[0085]所述周期探测单元101还用于检测待探测的MySQL是否成功返回结果,若待探测的MySQL超过预定时间仍未返回结果,则重新确认已连接上待探测的MySQL ;若与待探测的MySQL的连接被断开,则重新尝试连接直至成功;
[0086]所述监听单元102还用于在从缓存中查找并返回所述周期探测单元上个周期的探测结果的过程中,若未查找到上个周期的探测结果,则返回信息未找到。
[0087]综上上述实施例,本发明基于长连接的方式实现了一种新型的MySQL运行信息探测方法与装置,解决了高负载情况下的探测问题,周期性稳定的探测MySQL运行信息,适用于高可靠MySQL集群监控运营。本发明实施例也通过缓存机制,缓存探测的结果,保障客户端获取信息时总是可以给出确定的结果:成功则为运行信息本身,失败则给出明确答复。
[0088]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种探测MySQL运行信息的方法,其特征在于,周期性执行以下步骤: 确认已连接上待探测的MySQL ; 向待探测的MySQL发送基于MySQL协议的探测请求; 缓存待探测的MySQL返回的结果, 周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
2.根据权利要求1所述的探测MySQL运行信息的方法,其特征在于,为每一个待探测的MySQL建立一个探测任务,每个探测任务以所对应的MySQL为待探测对象周期性执行所述周期性执行的步骤,在监听到探测请求时,从缓存中查找并返回对应探测任务上个周期的探测结果。
3.根据权利要求1或2所述的探测MySQL运行信息的方法,其特征在于,在执行所述确认已连接上待探测的MySQL的过程中,若未连接上待探测的MySQL,则尝试连接直至成功。
4.根据权利要求3所述的探测MySQL运行信息的方法,其特征在于,在执行所述缓存待探测的MySQL返回的结果的过程中,若待探测的MySQL超过预定时间仍未返回结果,则返回所述确认已连接上待探测的MySQL ;若与待探测的MySQL的连接被断开,则返回所述尝试连接直至成功。
5.根据权利要求1或2所述的探测MySQL运行信息的方法,其特征在于,在执行所述从缓存中查找并返回上个周期的探测结果的过程中,若未查找到上个周期的探测结果,则返回信息未找到。
6.一种探测MySQL 运行信息的装置,其特征在于,包括周期探测单元和监听单元, 所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括: 确认已连接上待探测的MySQL ; 向待探测的MySQL发送基于MySQL协议的探测请求; 缓存待探测的MySQL返回的结果, 所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
7.根据权利要求6所述的探测MySQL运行信息的装置,其特征在于,所述周期探测单元还用于为每一个待探测的MySQL建立一个探测任务,每个探测任务以所对应的MySQL为待探测对象进行所述周期性探测,所述监听单元还用于在监听到探测请求时,从缓存中查找并返回对应探测任务上个周期的探测结果。
8.根据权利要求6或7所述的探测MySQL运行信息的装置,其特征在于,所述周期探测单元还用于周期性检测是否已连接上待探测的MySQL,若未连接上待探测的MySQL,则尝试连接直至成功。
9.根据权利要求8所述的探测MySQL运行信息的装置,其特征在于,所述周期探测单元还用于检测待探测的MySQL是否成功返回结果,若待探测的MySQL超过预定时间仍未返回结果,则重新确认已连接上待探测的MySQL ;若与待探测的MySQL的连接被断开,则重新尝试连接直至成功。
10.根据权利要求6或7所 述的探测MySQL运行信息的装置,其特征在于,所述监听单元还用于在从缓存中查找并返回所述周期探测单元上个周期的探测结果的过程中,若未查找到上个周期的探测结果,`则返回信息未找到。
【文档编号】G06F11/30GK103870377SQ201210532217
【公开日】2014年6月18日 申请日期:2012年12月11日 优先权日:2012年12月11日
【发明者】李宇 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1