CN103870377A - 探测MySQL运行信息的方法与装置 - Google Patents

探测MySQL运行信息的方法与装置 Download PDF

Info

Publication number
CN103870377A
CN103870377A CN201210532217.8A CN201210532217A CN103870377A CN 103870377 A CN103870377 A CN 103870377A CN 201210532217 A CN201210532217 A CN 201210532217A CN 103870377 A CN103870377 A CN 103870377A
Authority
CN
China
Prior art keywords
mysql
detection
detected
cycle
operation information
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
CN201210532217.8A
Other languages
English (en)
Other versions
CN103870377B (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.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems 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 Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201210532217.8A priority Critical patent/CN103870377B/zh
Publication of CN103870377A publication Critical patent/CN103870377A/zh
Application granted granted Critical
Publication of CN103870377B publication Critical patent/CN103870377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种探测MySQL运行信息的方法与装置,采用长连接的方式,对MySQL进行周期性探测,并缓存每个周期的探测结果,在接到探测请求时,从缓存中提取探测结果。从而在待探测MySQL负载高或本装置所在系统网络并发量大时,也能保证正常探测,提高了探测的持续性和稳定性,尤其适用于对可靠性要求较高的MySQL集群监控运营。

Description

探测MySQL运行信息的方法与装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种探测MySQL运行信息的方法与装置。
背景技术
SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及管理关系数据库系统。
MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司(于2008年1月被SUN公司收购,2009年SUN被Oracle收购,目前属于Oracle)。关系数据库基于关系数据模型将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,具有灵活性的同时保持存取速度。
传统的探测MySQL运行信息的装置,包括MySQL标准安装包提供的工具,都采用基于短连接的实现方式。这种基于短连接的主要机制如下:
1)用户使用该装置,或者周期性触发该装置时,先建立与MySQL的连接;
2)待连接建立之后触发探测的操作,例如发送SQL语句;
3)待结果返回之后,或者待超时之后,断开与MySQL的连接;
4)最终返回结果。
由于每次信息探测都需要执行完整的连接、获取信息、断开连接过程,基于短连接的探测MySQL运行信息的装置有如下缺点:
1)在目标系统MySQL负载高时,会无法探测信息。原因在于目标系统MySQL负载高时,信息探测装置也无法连接上MySQL,进而无法探测信息。
2)在装置安装的系统网络并发量巨大时,也会无法探测信息。安装装置的计算机系统可能也会出现并发量巨大的情况(例如同时运行多种探测工具),本地IP端口号可能耗尽,造成探测装置无法获得端口号连接目标MySQL,进而无法探测信息。
总结来说,基于短连接的探测MySQL运行信息的装置无法保证在任何情况下都探测到MySQL信息。在正常的运营环境中,高负载的情况下通常最需要及时探测到MySQL的运行信息以供决策分析和故障处理。因此基于短连接的探测MySQL运行信息的装置很难用于高可靠MySQL集群监控运营中。
发明内容
基于上述情况,本发明实施例提出了一种探测MySQL运行信息的方法与装置,以提高探测MySQL运行信息的可靠性。
一种探测MySQL运行信息的方法,周期性执行以下步骤:
确认已连接上待探测的MySQL;
向待探测的MySQL发送基于MySQL协议的探测请求;
缓存待探测的MySQL返回的结果,
周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
一种探测MySQL运行信息的装置,包括周期探测单元和监听单元,
所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
确认已连接上待探测的MySQL;
向待探测的MySQL发送基于MySQL协议的探测请求;
缓存待探测的MySQL返回的结果,
所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
本发明实施例探测MySQL运行信息的方法与装置,采用长连接的方式,对MySQL进行周期性探测,并缓存每个周期的探测结果,在接到探测请求时,从缓存中提取探测结果。从而在待探测MySQL负载高或本装置所在系统网络并发量大时,也能保证正常探测,提高了探测的持续性和稳定性,尤其适用于对可靠性要求较高的MySQL集群监控运营。
附图说明
图1为本发明探测MySQL运行信息的方法实施例一的流程示意图;
图2为本发明探测MySQL运行信息的方法实施例三的流程示意图;
图3为本发明探测MySQL运行信息的装置实施例一的结构示意图。
具体实施方式
下面结合附图与实施例详细解释本发明的方案,首先介绍探测MySQL运行信息的方法的实施例。
实施例一
本实施例探测MySQL运行信息的方法,如图1所示,周期性执行如下步骤:
步骤S101、确认已连接上待探测的MySQL;
步骤S102、向待探测的MySQL发送基于MySQL协议的探测请求;
步骤S103、缓存待探测的MySQL返回的结果,
步骤S104、周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
为了提高探测可靠性,本实施例采用长连接的方式来克服传统的短连接方式存在的缺陷。所谓长连接是指长时间保持会话的TCP连接,在本实施例中具体是指通过TCP协议建立与MySQL的连接之后,不主动关闭连接,并且周期性不断的进行通讯。
如图1所示,步骤S101-S103循环执行,从而与待探测的MySQL保持连接,在目标MySQL负载高或本方法所应用的系统网络并发量大时,减少因无法连接导致无法探测的可能,提高了探测的可靠性。本实施例还采用缓存机制,缓存每个周期的探测结果,在客户端发来探测请求时,直接从缓存中获取上个周期的探测结果,有利于将探测结果快速返回客户端。
实施例二
本实施例探测MySQL运行信息的方法,周期性执行如下步骤:
步骤S101、确认已连接上待探测的MySQL;
步骤S102、向待探测的MySQL发送基于MySQL协议的探测请求;
步骤S103、缓存待探测的MySQL返回的结果;
步骤S104、周期性执行以上步骤的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果。
待探测的MySQL实例有多个时,本实施例为每一个待探测的MySQL实例建立一个探测任务,每个探测任务在时间周期到来时,负责对所对应的MySQL实例进行探测,并缓存探测结果。执行步骤S104监听到客户端的探测请求时,从缓存中查找并返回对应探测任务上个周期的探测结果。
每个探测任务的探测周期可以根据客户端的需求而设定。
实施例三
为了进一步完善探测MySQL运行信息的方法,如图2所示,本实施例对执行过程中可能出现的几种异常情况做出了应对,下面是本实施例的步骤。
步骤S101、确认已连接上待探测的MySQL;
步骤S102、向待探测的MySQL发送基于MySQL协议的探测请求;
步骤S103、缓存待探测的MySQL返回的结果;
步骤S104、周期性执行以上步骤S101-S103的同时,监听探测请求,并在监听到探测请求时,从缓存中查找并返回上个周期的探测结果;
步骤S105、在执行步骤S101确认已连接上待探测的MySQL的过程中,若发现未连接上待探测的MySQL,则尝试连接直至成功;
步骤S106、在执行步骤S103缓存待探测的MySQL返回的结果的过程中,若待探测的MySQL超过预定时间仍未返回结果,则返回步骤S101确认是否已连接上待探测的MySQL;若发现与待探测的MySQL的连接被断开,则尝试连接直至成功;
步骤S107、在执行步骤S104从缓存中查找并返回上个周期的探测结果的过程中,若未查找到上个周期的探测结果,则向客户端返回信息未找到。从而无论探测成功与否,在客户端发来请求时,都给出明确的答复。
下面介绍探测MySQL运行信息的装置的实施例。
实施例一
本实施例探测MySQL运行信息的装置,如图3所示,包括周期探测单元101和监听单元102。
所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
确认已连接上待探测的MySQL;
向待探测的MySQL发送基于MySQL协议的探测请求;
缓存待探测的MySQL返回的结果,
所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
本实施例的装置中,周期探测单元101采用长连接方式对待探测的MySQL执行周期性探测,并将探测结果缓存在内存数据缓存中。监听单元102在监听到客户端的探测请求时,将周期探测单元缓存的探测结果发给客户端。
由以上描述可知,本实施例对应上述探测MySQL运行信息的方法的实施例一,具体地,周期探测单元101对应步骤S101-S103,监听单元102对应步骤S104,本实施例的有益效果不再赘述。
实施例二
本实施例探测MySQL运行信息的装置,包括周期探测单元101和监听单元102。
所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
确认已连接上待探测的MySQL;
向待探测的MySQL发送基于MySQL协议的探测请求;
缓存待探测的MySQL返回的结果。
所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
本实施例的装置中,周期探测单元101采用长连接方式对待探测的MySQL执行周期性探测,并缓存探测结果。监听单元102在监听到客户端的探测请求时,将周期探测单元缓存的探测结果发给客户端。
在本实施例中,当待探测的MySQL有多个时,每个待探测的MySQL向本装置进行注册。本装置的周期探测单元101为每一个注册的MySQL实例建立一个探测任务,每个探测任务在时间周期到来时,以所对应的MySQL为待探测对象进行周期性探测。所述监听单元102则在监听到探测请求时,从缓存中查找并返回对应探测任务上个周期的探测结果。
每个探测任务的探测周期可以相同或不同,并均可以根据客户端的需求而设定。
实施例三
本实施例探测MySQL运行信息的装置,包括周期探测单元101和监听单元102。
所述周期探测单元用于对待探测的MySQL进行周期性探测,每个周期的探测过程包括:
确认已连接上待探测的MySQL;
向待探测的MySQL发送基于MySQL协议的探测请求;
缓存待探测的MySQL返回的结果。
所述监听单元用于监听探测请求,并在监听到探测请求时,从缓存中查找并返回所述周期探测单元上个周期的探测结果。
本实施例的装置中,周期探测单元101采用长连接方式对待探测的MySQL执行周期性探测,并缓存探测结果。监听单元102在监听到客户端的探测请求时,将周期探测单元缓存的探测结果发给客户端。
周期探测单元101和监听单元102在工作过程中都可能出现异常情况,本实施例对以下几种异常情况作出应对。
所述周期探测单元101还用于周期性检测是否已连接上待探测的MySQL,若未连接上待探测的MySQL,则尝试连接直至成功;
所述周期探测单元101还用于检测待探测的MySQL是否成功返回结果,若待探测的MySQL超过预定时间仍未返回结果,则重新确认已连接上待探测的MySQL;若与待探测的MySQL的连接被断开,则重新尝试连接直至成功;
所述监听单元102还用于在从缓存中查找并返回所述周期探测单元上个周期的探测结果的过程中,若未查找到上个周期的探测结果,则返回信息未找到。
综上上述实施例,本发明基于长连接的方式实现了一种新型的MySQL运行信息探测方法与装置,解决了高负载情况下的探测问题,周期性稳定的探测MySQL运行信息,适用于高可靠MySQL集群监控运营。本发明实施例也通过缓存机制,缓存探测的结果,保障客户端获取信息时总是可以给出确定的结果:成功则为运行信息本身,失败则给出明确答复。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

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运行信息的装置,其特征在于,所述监听单元还用于在从缓存中查找并返回所述周期探测单元上个周期的探测结果的过程中,若未查找到上个周期的探测结果,则返回信息未找到。
CN201210532217.8A 2012-12-11 2012-12-11 探测MySQL运行信息的方法与装置 Active CN103870377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210532217.8A CN103870377B (zh) 2012-12-11 2012-12-11 探测MySQL运行信息的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210532217.8A CN103870377B (zh) 2012-12-11 2012-12-11 探测MySQL运行信息的方法与装置

Publications (2)

Publication Number Publication Date
CN103870377A true CN103870377A (zh) 2014-06-18
CN103870377B CN103870377B (zh) 2018-04-06

Family

ID=50908934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210532217.8A Active CN103870377B (zh) 2012-12-11 2012-12-11 探测MySQL运行信息的方法与装置

Country Status (1)

Country Link
CN (1) CN103870377B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107819642A (zh) * 2017-09-15 2018-03-20 中国科学院计算技术研究所 基于分布式的自适应心跳方法和系统
CN110300153A (zh) * 2019-05-27 2019-10-01 北京百度网讯科技有限公司 与MySQL建立链接的方法、装置、代理服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138112A (en) * 1998-05-14 2000-10-24 Microsoft Corporation Test generator for database management systems
US20060085680A1 (en) * 2004-09-24 2006-04-20 Akinori Matsuno Network monitoring method and apparatus
CN101430688A (zh) * 2008-11-18 2009-05-13 中国移动通信集团福建有限公司 一种数据库自动化探测系统及其运行方法
CN102104628A (zh) * 2010-12-29 2011-06-22 北京新媒传信科技有限公司 一种服务器集群系统及其管理方法
CN102123054A (zh) * 2011-04-19 2011-07-13 北京神州数码思特奇信息技术股份有限公司 一种管理控制云计算网络技术系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138112A (en) * 1998-05-14 2000-10-24 Microsoft Corporation Test generator for database management systems
US20060085680A1 (en) * 2004-09-24 2006-04-20 Akinori Matsuno Network monitoring method and apparatus
CN101430688A (zh) * 2008-11-18 2009-05-13 中国移动通信集团福建有限公司 一种数据库自动化探测系统及其运行方法
CN102104628A (zh) * 2010-12-29 2011-06-22 北京新媒传信科技有限公司 一种服务器集群系统及其管理方法
CN102123054A (zh) * 2011-04-19 2011-07-13 北京神州数码思特奇信息技术股份有限公司 一种管理控制云计算网络技术系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHARLESA.BELL著: "《深入理解MySQL》", 31 January 2010, 北京:人民邮电出版社 *
刘群策: "《程序设计系列LoadRunner和软件项目性能测试》", 31 January 2008, 北京:机械工业出版社 *
塞萨里尼著: "《Erlang编程指南》", 28 February 2011, 北京:机械工业出版社 *
杨俊生等: "《Java Web开发实践教程》", 30 September 2010, 北京:清华大学出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107819642A (zh) * 2017-09-15 2018-03-20 中国科学院计算技术研究所 基于分布式的自适应心跳方法和系统
CN107819642B (zh) * 2017-09-15 2020-02-28 中国科学院计算技术研究所 基于分布式的自适应心跳方法和系统
CN110300153A (zh) * 2019-05-27 2019-10-01 北京百度网讯科技有限公司 与MySQL建立链接的方法、装置、代理服务器及存储介质
CN110300153B (zh) * 2019-05-27 2021-11-30 北京百度网讯科技有限公司 与MySQL建立链接的方法、装置、代理服务器及存储介质

Also Published As

Publication number Publication date
CN103870377B (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107087001B (zh) 一种分布式的互联网重要地址空间检索系统
CN103729905B (zh) 图形化巡检系统及巡检方法
CN104573611B (zh) 一种分布式人脸识别集群系统
CN105354290B (zh) 一种基于移动终端mac地址查找特定人员的方法及系统
CN101888313B (zh) 一种主机探测系统和方法
CN102831662A (zh) 一种考勤方法
JP2018129023A (ja) インダストリアル・インターネットオペレーションシステムに基づく安全性の検査方法と装置
CN104301156B (zh) 一种客户投诉前移的预处理方法及其网络设备
CN102253948B (zh) 在多源信息系统中搜索信息的方法和装置
CN103354562A (zh) 能耗采集器、能耗采集系统及能耗采集方法
CN1980444A (zh) 用户归属寄存器数据查询及处理的集中收敛整合方法
CN103368970B (zh) 一种针对网络目标的自动化安全检测方法
CN103870377A (zh) 探测MySQL运行信息的方法与装置
CN111125066B (zh) 检测数据库审计设备功能的方法及装置
CN102547678B (zh) 一种携号转网短消息日志获取存储方法、系统及装置
CN106550345B (zh) 具有自我学习和优化能力的Wifi信号智能扫描系统
CN110677303A (zh) 网络管理系统
CN110110524A (zh) 一种面向计算设备系统的漏洞扫描与维护方法
CN110120109A (zh) 一种机场管井巡检管理方法、终端、服务器及系统
Yue et al. Research of embedded database SQLite application in intelligent remote monitoring system
CN115840656A (zh) 一种基于故障自愈的应用程序自动化运维方法和系统
CN111614797B (zh) 一种ip地址漏覆盖的检测方法及系统
CN102347965A (zh) 一种主机巡检方法和主机巡检系统
CN111882296A (zh) 管阀件管理系统
CN202127425U (zh) 基于gps与td结合应用的特种设备检测系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant