您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页企业级MySQL数据库在线监控系统的设计与实现

企业级MySQL数据库在线监控系统的设计与实现

来源:华佗小知识


分类号

学号 M201176080 密级

学校代码10487

硕士学位论文

企业级MySQL数据库在线监控系统的

设计与实现

学位申请人 : 董明明 学科专业 : 软件工程 指导教师 : 任宏萍 副教授 答辩日期 : 2014.5.9

万方数据

A Thesis Submitted in Partial Fulfillment of the Requirements

for the Degree for the Master of Engineering

The Design and Implementation of a MySQL Database Online Monitoring System for Enterprise

Candidate Major

: Dong Mingming : Software Engineering : Assoc. Prof. Ren Hongping

Supervisor

Huazhong University of Science and Technology

Wuhan 430074, P. R. China

May, 2014

万方数据

独创性声明

本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。

学位论文作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

保密□, 在 年解密后适用本授权书。

本论文属于

不保密□。

(请在以上方框内打“√”)

学位论文作者签名:

指导教师签名: 日期: 年 月 日

日期: 年 月 日

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

摘 要

随着互联网向着信息化快速迈进,互联网的持续发展使人们越来越依赖于互联网,因此人们对于互联网的服务有了较高的要求,尤其是在互联网的稳定性、可靠性和安全性方面。数据层是互联网服务的核心层,对互联网服务起着至关重要的作用。目前在互联网主流应用的数据库是MySQL数据库,它被大多数公司所采用,并提供数据服务,如果数据库的运行状态出现问题或者是数据库的配置达到瓶颈,那么服务质量就很难保证了。所以,在线监控MySQL数据库的运行状态,及时发现问题,为数据库的调整和优化提供支持,这对互联网的发展具有深远的意义。

监控系统是根据MySQL数据库自身的特点,并结合数据库的相关知识进行开发的。系统的后台由Python语言开发,前端由PHP语言实现。后台主要是采集MySQL数据库运行状态的指标数据信息,前端的作用是将这些数据信息显示出来。相关工作人员通过查看这些数据信息,可以了解数据库运行的状态,并及时发现数据库存在的问题,从而进行故障处理和优化,弥补其缺陷。如何实时监控各个MySQL数据库运行的状态信息,如何对MySQL数据库进行及时调整和优化,如何确保MySQL数据库监控系统的扩展性等这些都是主要的研究内容。

通过研究、分析和设计,实现了一个简单、实用、方便的MySQL数据库在线监控系统,可以有效的帮助相关工作人员对MySQL数据库进行调整和优化,确保数据库正常、高效地运转,有着较高的实用价值。

关键词:MySQL数据库 在线监控 Python语言 指标数据

I

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

ABSTRACT

With the Internet moving towards information quickly, the sustainable development of the Internet makes people more and more dependent on the Internet, so people have higher requirements for the Internet service, especially in the aspects of stability, reliability and security of the Internet. Data layer is the core of Internet services, which plays a key role of the Internet. Currently, MySQL database is the popular in the Internet application, and it’s used by most companies to provide data services, if the database running status of the problems or the database configuration to the neck of the bottle, it is hard to guarantee the quality of service. So, it has profound significance on the development of the Internet to online monitoring the running state for the MySQL database, timely find problems and provide support for the adjustment and optimization of database.

Monitoring system is developed based on the characteristics of the MySQL database itself, and with the relevant knowledge of database. The background is developed by Python language and the front desk is implemented using the PHP language. The background mainly collects the MySQL database running status indicators data information, while the front desk is used to display the data information. By looking at the data information, relevant staffs can understand database operation of the various state, and discover the problems existing in the database, so as to optimize and make up for the defects. How to real-time monitoring the MySQL database running status information, how to adjust and optimize the MySQL database, and how to ensure that the MySQL database extensibility of the monitoring system are the main research contents.

Through research, analysis and design, a simple, practical, convenient MySQL database online monitoring system is implemented. It can be helpful for related staff to adjust and optimize the MySQL database to ensure the normal and efficient operation of the database, and it has great practical value.

Key words:MySQL database Online monitoring Python Indicators data

II

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

目 录

摘 要 ............................................................................................................... I Abstract ........................................................................................................... II 1 绪论

1.1 研究背景与意义 .................................................................................. (1) 1.2 国内外研究概况 .................................................................................. (2) 1.3 论文的主要研究内容 .......................................................................... (4) 2 关键技术与分析

2.1 Python访问MySQL数据库技术 ....................................................... (6) 2.2 PHP技术 .............................................................................................. (7) 2.3 监控系统原理 ...................................................................................... (7) 2.4 本章小结 ............................................................................................... (8) 3 监控系统的分析与设计

3.1 系统作业任务需求分析 ...................................................................... (9) 3.2 系统功能需求分析 ............................................................................ (11) 3.3 系统的非功能需求分析 .................................................................... (12) 3.4 系统总体结构设计 ............................................................................ (13) 3.5 系统主要模块设计 ............................................................................ (15) 3.6 系统数据库设计 ................................................................................ (21) 3.7 本章小结 ............................................................................................. (25) 4 监控系统的主要模块实现

4.1 系统开发及运行环境 ........................................................................ (26) 4.2 采集系统运行状态的数据信息模块的实现 .................................... (26)

III

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

4.3 计算监控指标数据信息模块的实现 ................................................ (31) 4.4 计算注册监控指标数据信息模块的实现 ........................................ (35) 4.5 汇总监控指标数据信息及上传模块的实现 .................................... (36) 4.6 本章小结 ............................................................................................. (37) 5 监控系统的测试

5.1 测试环境 ............................................................................................. (39) 5.2 系统功能测试 .................................................................................... (40) 5.3 系统性能测试 .................................................................................... (42) 5.4 本章小结 ............................................................................................. (43) 6 总结与展望

6.1 全文总结 ............................................................................................. (44) 6.2 展望 ..................................................................................................... (45) 致 谢 .......................................................................................................... (46) 参考文献...................................................................................................... (47)

IV

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

1 绪论

1.1 研究背景与意义

随着互联网技术的不断发展,互联网已成为人们生活和工作中的重要一部分,与人们现在的生活息息相关。互联网的普及和移动网络技术的不断完善,现在互联网在全球的用户已达几十亿了,对于这么一个庞大的用户群体来说,如何高效、快速的处理海量数据以及大量的用户访问问题,是各个互联网公司必须去面对的问题,同时也关系着互联网公司发展的命运。复杂的网络环境中,互联网业务的需求会随之上升,在提升业务的稳定性和可靠性方面就会变得更加困难,同时在应用过程中产生的异常和故障会对互联网业务造成很大的影响,同时也会威胁互联网业务的发展[1,2]。因此,如何有效监控互联网各业务的运行情况是非常必要的,这样可以根据业务运行的情况做出相应的调整[3]。

数据层是互联网业务核心的一层,决定着互联网服务的质量。在整个互联网中,有很多公司都是采用的 MySQL 数据库来提供数据服务,由于互联网业务需要 24 小时不间断的为用户提供服务,一到访问高峰期,随着访问量的上升,就会容易出现故障,这样会导致用户数据的丢失或数据出现异常,同时也会接到用户的投诉,给公司造成不良的影响,甚至造成经济损失。由于在线业务需要服务稳定、可靠,所以就会对 MySQL 数据库运行的稳定性和可靠性有着很高的要求。那么就需要一个监控系统来监控 MySQL 数据库的运行情况,这样相关业务人员可以及时了解MySQL 数据库运行的情况,并根据监控的数据信息来更好的维护和优化MySQL数据库,从而提高 MySQL 数据库的稳定性和可靠性。然而现在的情况是一些公司对MySQL 数据库在线监控方面还不够重视。首先,一些互联网公司发展很快但时间并不长;其次,由于互联网业务的不断增长使得 MySQL 数据库才发展壮大起来,在复杂网络情况下,监控 MySQL 数据库还处于探索阶段。正是在这个背景下,“企业级MySQL 数据库在线监控系统”被正式提出。

本文“企业级 MySQL 数据库在线监控系统”是针对监控企业应用的MySQL 数

1

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

据库,主要是因为大多数企业基本上采用的是 MySQL 数据库。因为 MySQL 数据库现在支持集群架构,同时还可以负载均衡[4],其次,它对高并发的请求有着较好的处理能力[5],更为让人惊喜的是,它是开源免费的软件,注册申请,就可以下载[6]。所以,大多数互联网公司都会首先选用 MySQL 数据库。为了提高系统的服务质量,及时发现 MySQL 数据库运行时发生的异常和故障,那么全面而有效的监控 MySQL 是非常必要的。

企业级 MySQL 数据库在线监控系统的开发为互联网公司监控 MySQL 数据库提供了一个可行的解决方法,同时对数据库监控的研究具有重要的意义。

1.2 国内外研究概况

MySQL数据库是一个关系型数据库管理系统,现在属于Oracle公司,起初是由瑞典MySQL AB公司开发的一个数据库管理系统。MySQL是一种把关联数据库保存在不同表中的数据库,并不是把所有数据放在一个大的库中,这样有利于提升数据的灵活性。同时它是一个优秀的关系型数据库管理系统,具有以下优点,如多线程、高性能、存取速度快、开发源代码以及在分布式集群、负载均衡方面都有很好的应用价值[7-9]。下面将分别介绍“企业级MySQL 数据库在线监控系统”的国内外的研究现状。

1.2.1 国外研究现状

现在互联网中有一些企业已经推出了针对MySQL数据库进行监控的软件系统,主要分为商用和开源的,大部分是国外开发的软件,其中一个典型的代表就是Oracle公司自身开发的MySQL企业监控器,它是一个商用的软件,而且还需要付费[10]。MySQL数据库作为Oracle公司自己的产品,那么他提供的MySQL数据库企业级的监控功能一定很强大,不但监控全面而且性能非常好[11-13]。

现在互联网公司监控应用中的MySQL数据库还不够完善。首先,MySQL企业级监控系统监控的指标比较多,由于各公司业务并不相同,所以对于监控指标的需求也会不一样[14,15],有些公司的业务侧重在线事务的控制,如在线支付,而有的公

2

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

司关注数据访问的效率,如Amazon、eBay等电子商务网站。因此,对于不同企业的不同业务需求来说,缺乏对企业级MySQL数据库监控的侧重点,即缺少定制监控的业务。其次,MySQL企业级监控系统不能有效远程的对MySQL数据库运行的状态进行控制和管理,只是简单的监控运行状态及呈报运行的状态信息,这对于大的互联网企业来说,MySQL数据库分配在很多地方,一般这些数据库的配置和更新很难一次性完成,每台机器都需要登录,然后才能完成配置更新操作,所以数据库的配置更新工作进行会很缓慢[16-18]。再次,商用的MySQL数据库监控系统的源代码是不开放的,需要付费购买,而且有些需要监控的指标并不一定可控,如果软件存在潜在的缺陷就会对系统可靠性和稳定性方面造成很大的影响,由于商用付费软件源代码是不开放的,二次开发会遇到困难,同时对于公司来说存在着一定的风险,因此从可控性、可靠性、稳定性和安全性等方面考虑,公司会更倾向于自主研发[19]。基于公司自身业务需求而进行自主研发监控系统,有利于更好的适应业务的需求,同时还可以进行二次开发,这样既可以减少潜在的威胁,又具有实用的价值,可谓是一举多得[20]。

国外开发一些的数据库监控系统,开源且应用比较广泛的是zabbix软件,它是一款基于Web界面的提供分布式系统的监视工具。Zabbix能比较全面的监视MySQL数据库服务器的各种参数指标,其中包括内存的使用信息,CPU的使用情况,网络的连接状况,端口的监视情况,日志监视和磁盘使用率监视等。虽然zabbix软件监控比较全面,但是也存在着一些问题[21],比如,Zabbix还不能远程管理和配置MySQL数据库服务器的状态,其次,Zabbix软件的使用不是很方便,由于开发时考虑的监控指标比较多,因此易用性就降低了,如果人为过滤这些监控指标,会造成很大的工作量[22];还有就是Zabbix可以免费注册就能获得代码,但是经过这些年的发展,代码量已经很大了,这样会给维护带来较大的困难,同时扩展性也会受到影响[23]。

因此,无论是开源监控软件,还是商业监控软件,都会存在这样和那样的不足。而且在监控领域方面,国外研究MySQL数据库在线监控并不是很多,可能与MySQL数据库在互联网的发展较短有关,关于监控数据库方面的论文主要是研究大型商用数据库[24,25],如Oracle、DB2和Sybase。随着MySQL数据库应用的快速发展和普及,

3

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

那么研究MySQL数据库的监控非常必要,而且在实际应用中,MySQL数据库在处理并发性和稳定性方面有着不逊的成绩,同时也得到了各大企业的认可,如使用MySQL数据库的国际知名互联网企业就有Google、等,因此该领域具有较深的研究意义[26]。 1.2.2 国内研究现状

当前,国内有些公司也在开发MySQL数据库的监控产品,大多数监控产品,规模比较有限,在运行时的可靠性、稳定性和安全性等方面存在着不足。而且这些产品一般由脚本集合而成,监控指标也不是很多,而且缺乏有效的管理[27,28]。不同的系统需要的配置信息和配置流程也不相同,这样使用起来不是很方便,而且脚本是由解析型的语言编写的,这样运行的效率就会下降,从而影响监控。国内的一些公司也在使用开源的数据库监控工具,如MySQLMTOP,它是一个Web界面管理的监控系统,启动监控进程后,即可对上百台MySQL数据库的运行状态实施监控,尽管这个监控工具简单易用,但缺乏有效控制MySQL数据库的运行状态[29]。

当前国内研究MySQL数据库在线监控方面的论文不是很多,大多数论文主要是针对大型商用数据库上,如Oracle、DB2和Sybase。所以,对于MySQL数据库在线监控的研究还很缺乏[30]。

1.3 论文的主要研究内容

本文通过完成“企业级MySQL数据库在线监控系统”的需求分析、设计和实现,系统成功部署后,能够实时在线监控MySQL数据库的运行状态,进而提高了MySQL数据库的可维护性,同时增加了线上业务的可用性,为企业未来的发展提供了有力的技术支持。

本文主要研究的内容如下:

(1)如何监控MySQL数据库的运行状态; (2)哪些MySQL数据库的运行指标需要监控; (3)怎样实现对MySQL数据库的监控目标;

4

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

(4)系统架构怎样设计,怎样保证系统具有较高的扩展性; (5)怎样保证系统监控数据的正确性和在线性; (6)怎样测试监控数据指标的正确性。

5

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

2 关键技术与分析

本章介绍了系统设计开发过程中所涉及的关键技术与原理,主要包括Python访问MySQL数据库技术、PHP技术、监控系统原理,同时对各种技术及监控系统的原理进行了简要的概括和分析。

2.1 Python访问MySQL数据库技术

Python是一种功能强大、比较容易学习的面向对象的设计语言[31]。Python语言的语法非常简洁而且清晰明了,具有丰富和强大的类库,能够动态的进行输入。由于Python是解析型的语言,所以它能够在很多平台上应用。同时它也是一个不错的脚本语言,使得它能够快速的开发应用程序[32]。

Python访问MySQL数据库具有很大优势,即访问简单而且灵活。当然,要访问数据库,要有对应的数据库接口,即相应的API。其中应用比较广泛且线程安全的API是MySQLdb[33]。

MySQLdb库有两个重要的对象:Connection Objects和Cursor Objects。下面将分别介绍这两个对象:Connection Objects连接对象,它是通过connect()函数返回的,该对象有几个重要的方法:其一,提交当前的事务,即commit()方法;其二,当前事务回滚,即roolback()方法;其三,获取一个游标的对象,即cursor()方法。Cursor Objects对象,它是一种数据处理的方法,对集中的数据进行查看或处理,其中的游标可以一行或多行向前或向后查看数据[34]。游标包含两个部分:游标结果集和游标位置。MySQLdb中游标对象最重要的方法是execute方法,即execute(sql) [35]。

Python访问MySQL数据库的优点如下:

首先,Python访问 MySQL数据库的最大优点就是访问数据库非常容易,而且简单。其次,Python访问MySQL 数据库可以跨平台,同时还能节省跨平台的费用。还有就是,可以免费下载Python、MySQL和MySQLdb软件,这无疑是各中小型企业用户的首选产品。

6

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

2.2 PHP技术

PHP(Hypertext Preprocessor的缩写,超文本预处理器)是近些年广大网站开发人员喜爱的脚本语言之一[36]。 PHP能够开发动态的网站,同时具有简单易用、语法流畅、网络资源多、跨平台、执行效率高等特点。PHP成为了Web脚本技术的先驱,融入了C、Java和Perl的一些最佳特性[37]。

2.3 监控系统原理

MySQL数据库在线监控系统通过监控信息采集、分析、存储和处理来帮助我们尽可能多地提前预知系统可能会出现的异常状况[38,39]。如图2-1所示,是监控系统原理的架构体系图。

MySQL...MySQL...MySQL信息采集信息分析信息存储报警状态趋势

图2-1 监控系统原理的架构体系图

(1)信息采集。信息采集是主动获取各个MySQL数据库服务器的运行状态信息,然后存储到信息监控中心。当然,也能把各个MySQL数据库服务器的运行状态信息,被动的传送到信息存储中心。

(2)信息分析。当采集模块程序启动获取MySQL数据库服务器的各种状态信息时,分析中心就会对这些数据信息进行实时的分析,从而对系统的运行情况作出判断,若出现异常,则根据相关程序及时发出报警通知,同时把异常信息发送到存储中心进行存储,以便进行分析和总结;若运行正常,则把数据直接传送至存储模

7

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

块中。信息分析中心主要的事情就是准确、及时的分析数据信息,并能及时处理异常。

(3)信息存储。监控程序采集数据信息对于监控系统来说是非常重要的,因为没有这些信息,查看当前状态和绘制曲线趋势图就等于一句空话。而且通过对这些监控数据信息的分析和挖掘,可以为系统的性能设计提供有效的技术支持。

(4)信息处理。信息处理模块是监控系统的又一重要模块,它能根据采集到的数据信息,运用相应的规则对这些数据进行分析和挖掘,这样就可以绘制各种数据信息的曲线图,从而相关工作人员可以及时了解系统运行的情况。同时这些数据信息,对系统未来的发展具有重要的意义。

2.4 本章小结

本章简单阐述了系统开发过程中应用的关键技术,同时介绍了各种技术的发展、技术优势及特征,并对监控系统的架构体系和工作原理进行了简明扼要的分析。事实证明在系统开发的过程中这些技术和原理为MySQL数据库在线监控系统的构建提供了很大的帮助。

8

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

3 监控系统的分析与设计

本章完成对监控系统的需求分析,提出系统所要实现的功能和性能指标,分析和设计了监控系统,并根据需求分析的结果对监控系统的模块进行了划分,同时对主要的模块进行了详细的设计,最后还完成了系统数据库关系表的设计。

3.1 系统作业任务需求分析

企业级MySQL数据库在线监控系统的主要需求是在线监控企业应用的各个MySQL数据库。本小节将从监控的MySQL数据库分布结构和系统的工作流程这两个方面概述监控系统的作业任务需求。 3.1.1 监控的MySQL数据库分布结构

本系统主要监控企业的各个MySQL数据库,其中有的MySQL数据库服务器分布不在同一地方。如图3-1所示是监控的MySQL数据库分布结构图。首先,所有被监控的MySQL数据库服务器每分钟向监控中心上报一次监控数据,然后把监控的数据信息通过监控终端展示出来。

监控终端监控终端监控终端监控终端监控中心MySQL服务器MySQL服务器MySQL服务器MySQL服务器

图3-1 监控的MySQL数据库分布结构图

9

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

3.1.2 系统的工作流程

系统监控MySQL数据库的工作过程为,系统会每分钟获取一次监控数据,在这段时间内监控系统通过采集系统数据信息功能采集系统运行状态的指标数据信息,再把这些数据信息通过相应的规则计算得出监控指标值,然后把监控指标的结果存入至数据库中,最后通过前端显示监控指标数据信息。如图3-2所示,是MySQL数据库监控系统的工作流程图。

开始系统定时发起执行周期采集系统数据信息功能采集相关数据信息计算监控指标数据功能计算相关指标数据监控指标值是否出现异常否将监控指标数据信息存入数据库中是短信或邮件报警通知相关工作人员前端显示监控指标数据信息结束 图3-2 MySQL数据库监控系统的工作流程图

首先,系统定时发起执行周期获取系统原始指标数据,然后把这些监控指标数

10

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

据通过相应的算法计算出监控指标值,并判断监控指标值是否超出给定的临界值,若是,系统就会自动发出短信和邮件告知业务负责人;否则,系统就会把这些监控指标数据存入数据库中,最终通过监控终端把这些监控指标数据以文字或图形的方式展示出来。

3.2 系统功能需求分析

MySQL数据库在线监控系统有以下几个功能,其中包括采集系统运行状态的数据信息、计算监控指标的数据信息、异常状态及时的报警、汇总监控指标数据信息及上传和前端界面展示的功能。下面将逐一介绍每个功能的需求。 3.2.1 采集系统运行状态的数据信息功能需求

采集系统运行的数据信息功能是监控系统的基本功能,因为只有正确的采集MySQL数据库服务器运行状态的数据信息,才能进行后续的工作,否则后续工作无法完成。每隔一个固定时间系统会自动采集监控的数据信息,这其中包括MySQL数据库用户的权限信息、数据库磁盘空间大小比率信息、MySQL数据库慢查询和错误日志信息、MySQL数据库的进程连接信息等。 3.2.2 计算监控指标的数据信息功能需求

计算监控指标的数据信息的功能是对系统采集的数据信息用相应的计算法则算出监控指标的结果值。但是这些结果值还需要进行汇总和计算才能得到想要的结果。比如说,CPU和内存的使用率、磁盘空间大小的占用率、进程的连接数等。这些经过计算得出的值,可以在Web界面中显示出来。 3.2.3 计算注册监控指标数据信息功能需求

计算注册监控指标数据信息功能主要是为了增加监控系统的扩展性,是整个监控系统的中心,该功能用于维护采集系统运行状态的数据信息模块和计算监控指标数据信息之间的联系。

11

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

3.2.4 汇总监控指标数据信息及上传的功能需求

汇总监控指标数据信息及上传的功能是把所有被监控的MySQL数据库服务器的数据信息进行汇总,并把汇总后的文件上传到监控中心的服务器中。汇总主要是把各个MySQL数据库的运行状态参数按不同的端口号分辨出来,然后按照数据参数的类别进行归纳生成数据文件,最后再把这些文件上传至服务器中,这样服务器就可以通过配置文件来解析这些数据。 3.2.5 异常状态及时报警功能需求

异常状态及时报警功能主要是针对监控系统监测到的异常情况进行报警,同时告知相关工作人员及时处理出现的问题。监控MySQL数据库运行的指标都设有预定的临界值,如果监控指标数据信息通过相应机制计算后得出的结果超出了预定的临界值,那么系统就会及时的发出报警。报警的方式有短信通知、邮件通知以及系统发出弹窗式通知等方式。 3.2.6 前端界面展示功能需求

前端界面展示功能主要是把监控系统采集到的数据信息,以文字或图形的方式展示出来。此外,前端界面展示还包括基础的查询功能、用户管理功能以及部门管理功能。

3.3 系统的非功能需求分析

根据监控系统的特点,还需对系统进行非功能需求方面的分析,比如说,监控系统采集的数据信息传输到监控中心的性能如何、在线监控系统的访问并发量是怎样处理的以及系统的资源利用率是怎样控制的等这些都需要进行分析的。对于这几点非功能要求的描述,如下所示:

(1)监控系统采集的数据信息传输到监控中心的性能需求。由于监控系统是在线实时的对MySQL数据库进行监控,所以要求在很短的时间内完成采集MySQL数

12

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

据库服务器运行状态的指标数据信息、再经过计算和汇总,最后上传至服务器。这其中需要经过好几个步骤,所以对算法效率和数据传输性能的要求都比较高。

(2)系统资源利用率的需求。 由于被监控的MySQL数据库服务器会比较多,如果同时对各个MySQL数据库的监控指标进行处理,那么系统的资源利用率会随之增加。所以要确保监控系统稳定、可靠的运行,就要尽可能的减少CPU和内存的使用率。

(3)在线监控系统并发量处理的需求。由于监控系统一般是提供给企业内部人员使用的,所以监控系统也要考虑并发性的需求,在同时访问人数比较多的时候,要保证服务的响应时间不会很长。

3.4 系统总体结构设计

通过对监控系统的需求进行分析后,下面将对系统的体系结构进行设计,同时还对监控系统功能的结构进行了设计。 3.4.1 系统体系结构设计

系统体系结构如图3-3所示。

前端显示监控数据信息读取数据监控中心服务器监控主程序本地数据库被监控的MySQL数据库MySQL数据库...MySQL数据库...MySQL数据库 图3-3 系统的体系结构图

13

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

从体系结构图中可以看出,由监控主程序发起对MySQL数据库运行状态数据信息的采集。完成数据信息采集后,还需要计算注册监控指标数据信息,然后继续采集数据信息,如果采集的数据信息通过计算后得到的结果值超出了预定的临界值,那么系统就会自动报警。如果结果值正常的话就把这些监控指标数据信息进行汇总及上传到本地数据库,这样就可以在前端Web界面进行查询相关的信息了。 3.4.2 系统功能结构设计

通过对监控系统的需求分析,主要具有以下几个功能模块的设计:采集系统运行的状态数据信息模块、计算监控指标的数据信息模块、计算注册监控指标数据信息模块、汇总监控指标数据信息及上传模块、异常情况的报警模块和前端界面展示模块。如图3-4所示,是系统的总体功能结构图。

MySQL数据库在线监控系统采集系统状态数据信息模块计算监控指标数据信息模块计算注册监控指标数据模块汇总监控指标数据及上传模块监控指标数据存入数据库模块异常状态及时报警模块前端界面显示模块 图3-4 系统总体功能结构图

上面的结构图中,采集系统运行的状态数据信息模块、汇总监控指标数据信息及上传模块、计算注册监控指标数据信息模块和计算监控指标的数据信息模块是监控系统的主要模块。

14

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

3.5 系统主要模块设计

监控系统的主要模块分为采集系统运行状态的数据信息模块、计算监控指标数据信息模块、计算注册监控指标数据信息模块和汇总监控指标数据信息及上传模块。 3.5.1 采集系统运行状态的数据信息模块设计

采集系统运行状态的数据信息主要是采集各个MySQL数据库服务器运行的状态数据信息,这些状态数据信息是采集系统运行状态的数据信息模块的输出。接下来介绍采集系统运行状态的数据信息模块的一些方法,主要有以下几个方法:

(1)采集MySQL用户账户的权限信息方法。 该方法主要是通过对已连接的MySQL数据库服务器执行数据库的相关命令获取,如show grants命令,执行后就可以获取不同数据库的访问权限和数据库用户列表信息。

(2)采集MySQL数据库运行状态的数据信息方法。 采集MySQL运行状态信息,首先要连接MySQL数据库,然后执行MySQL相关命令获取状态信息,如show global status、show slave status、show processlist等命令。

(3)采集MySQL数据库进程信息方法。 MySQL数据库启动连接后,系统会自动分配各自进程的id号,然后通过系统的相关命令解析获取的信息,再进行筛选就可以获得MySQL数据库的进程信息了。

(4)采集MySQL配置文件信息方法。 首先,加载配置文件信息程序,加载正确之后,根据配置文件的目录读取配置文件信息,然后解析这些文件信息,通过筛选就可以获取目标数据信息,主要有二进制的日志信息、数据库目录位置信息和其它相关数据信息等。

(5)采集服务器运行状态数据信息方法。 采集服务器运行状态数据信息主要是获取CPU和内存等方面的数据信息,同时对服务器的运行状态的文件进行分析,得出相关的数据信息,然后存储到相应的文件中。采集服务器运行状态数据信息的

15

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

活动图如图3-5所示。首先,向服务器发起加载配置文件程序,若加载正确,则执行加载的配置文件程序获取服务器的CPU和内存的数据信息,同时把这些数据信息保存至相关文件中。

系统管理员监控系统向服务器加载配置文件程序文件加载不正确取消加载执行加载的配置文件程序获取CPU数据信息获取内存数据信息保存CPU和内存数据信息至文件结束

图3-5 服务器状态数据信息采集活动图

3.5.2 计算监控指标数据信息模块设计

计算监控指标数据信息模块的功能是将系统采集到的系统运行状态的数据信息进行计算之后,生成的监控指标。该模块主要由以下几个计算程序,其中包括解析系统采集到的系统运行状态的数据信息,然后相关机制进行筛选;对解析到的监控指标数据信息按照相关计算法则算出监控指标值;解析指标数据文件,获取相关的数据信息。下面将介绍几个主要的监控指标计算方法:磁盘空间的占用率,每分钟的连接数,每秒执行SQL语句的平均数,每分钟执行选择、插入、删除、更新的语句数,还没

16

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

有使用的索引表,内存的使用率,CPU使用率以及CPU每5分钟的平均负载。

1)磁盘空间占用率。这里是使用Linux操作系统df –h命令来直接获取磁盘利用率数据信息的。

2)每分钟的连接数。首先通过配置文件程序获取数据库的连接次数,然后再用此时一分钟的连接数减去上一分钟的连接数,于是得出此分钟的连接数。

3)每秒执行SQL语句的平均数。 就是把每一分钟执行的选择、插入、删除和更新的SQL语句加起来除以60,结果就是每秒平均执行的SQL语句数。

4)每分钟执行选择、插入、删除和更新的语句数。每分钟执行select/insert/delete/ update语句数是此时一分钟获得的Total_select/Total_insert/Total_delete/Total_update减去上一分钟的值,其中Total_select/Total_insert/Total_delete/Total_update分别是指MySQL数据库中select/insert/delete/update执行的累计总数。

5)还没有使用的索引表。是指数据库表中还没有使用的索引文件,计算方法如下: 首先从磁盘中物理读入一个键值的次数除以请求从缓存中读入一个键值的次数,然后再乘以百分之一百,就会得出还没有使用的索引率。

6)内存使用率。实时获取服务器的内存使用情况,即内存的使用比率。计算方法过程如下:首先通过配置文件程序获取内存总容量和内存空闲量,然后用总容量减去空闲量就可以算出内存的使用量,再用内存的使用量除以内存总容量,就可以得出内存的使用比率。

7)CPU使用率。是指CPU处于工作状态的百分比,一般系统默认的采集频率为1分钟,计算过程如下:

首先采用配置文件程序获取CPU的总使用数据信息和单个核的使用数据信息,然后进行相关计算得出CPU的使用率。以cpu1为例,算法如下所示:

(1)首先通过配置文件程序获取cpu1的信息 (2)此时的CPU总使用率用cpuTotalUsed1表示 (3)此时的cpu1的使用率用cpuUsed1 表示 (4)等待10秒

(5)再次通过配置文件程序获取cpu1的信息 (6)此时的CPU总使用率用cpuTotalUsed2 表示

17

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

(7)此时的cpu1的使用率用cpuUsed2表示

(8)cpu1在10秒内的单核使用率为:(cpuUsed2 – cpuUsed1) * 100 / (cpuTotalUsed2 – cpuTotalUsed1) 。

8)CPU每5分钟的平均负载。是指5分钟内队列运行的平均进程数,它与CPU负载成正比关系,也就是说平均进程数越多,CPU的负载就会越大。计算方法如下:通过配置文件程序获取机器每5分钟的平均负载值,然后再与100相乘。 3.5.3 计算注册监控指标数据信息模块设计

(1)计算注册监控指标数据信息模块设计的分析

计算注册监控指标数据信息模块主要是为了增加监控系统的扩展性,是监控系统的主要模块,该模块主要用于维护采集系统运行状态的数据信息模块和计算监控指标数据信息之间的联系。还有就是当采集到系统运行状态的数据信息后,就会通知计算注册监控指标数据信息模块,然后按照相互对应的关系通知计算监控指标数据信息模块的各个计算模块从事相关的计算。如图3-6所示,是计算注册监控指标数据信息的工作示意图。

系统发起MySQL数据库参数采集注册和计算调度计算监控指标数据前端界面显示汇总各监控指标数据 图3-6 计算注册监控指标数据信息的工作示意图

(2)计算注册监控指标数据信息模块的流程设计

计算注册监控指标数据信息模块主要是用于维护采集系统运行状态的数据信息模块和计算监控指标数据信息之间的联系,计算注册的步骤如下:

步骤1:加载配置文件信息; 步骤2:若加载正确,等待连接;

步骤3:监控来自采集系统运行状态的数据信息程序和计算监控指标数据信息。

18

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

步骤4:监测到连接信息后,看连接信息是来自于采集系统运行状态的数据信息程序,还是来自于计算监控指标数据信息程序。如果监测到的是采集系统运行状态的数据信息程序采集完成的信息,那么就根据对应关系选出与之对应的计算监控指标数据信息程序进行相关的计算。

步骤5:将计算注册的结果保存至文件中。 步骤6:工作全部结束。

计算注册监控指标数据信息模块的工作过程如图3-7所示。

开始加载配置文件否是否加载正确是连接MySQL数据获取指标数据信息是否为采集的指标数据否是把系统采集的指标数据进行注册计算注册监控指标把计算注册的结果存储至文件结束

图3-7 计算注册监控指标数据信息的流程图

19

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

3.5.4 汇总监控指标数据信息及上传模块设计

汇总监控指标数据信息及上传的流程是把数据文件汇总至目标文件中,然后把汇总的文件上传至服务器,汇总上传的流程图如图3-8所示。

开始加载配置文件是否加载正确是加载监控指标数据文件的目录否否是否有新的文件生成是新建汇总文件否是否有汇总文件是把监控数据信息添加至汇总文件上传汇总后的文件结束

图3-8 汇总监控指标数据信息及上传的流程图

上图的简单说明如下:

步骤1:加载程序的配置文件;

步骤2:若加载正确,则执行加载的配置文件程序; 步骤3:加载监控数据文件的目录,同时生成目标数据文件; 步骤4:如果有新的数据文件生成,则把数据文件汇总至文件中;

20

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

步骤5:继续执行步骤3和步骤4,直到把所有的数据文件都汇总成一个文件; 步骤6:完成文件汇总后,把汇总后的文件上传至指定的数据文件中。 步骤7:工作全部结束。

3.6 系统数据库设计

根据监控系统的需求,监控系统的应用也为数据提供服务,数据库表的关系设计通常是一个系统的基础设计。一个合理的数据库关系设计不仅可以提供数据的访问率,同时还能减少数据冗余。本小节将会监控系统的数据库进行设计,其中包括系统数据库表的关系设计和数据库表的设计,下面将分别对这两个方面进行设计。 3.6.1 系统数据库表的关系图

本系统设计的数据库表包括USER_INFO是用户信息表,USER_AUTHORITY是用户权限信息表,USER_BUSINESS是用户业务信息表,DATABASE_IDX_INFO 是监控指标数据信息表,OPERATE_OBJECT是操作对象表,ALARM_VALUE是报警临界值表,ALARM_INFO是报警信息记录表,SYSTEM_OPER_LOG是系统操作记录表,OPERATE_LOG是操作记录表,BASIC_BUSINESS是基本业务表,FILE_IDX_DATA是文件指标信息表, REALTIME_IDX_INFO是实时监控指标信息表和DATA_CENTER_INFO是数据中心信息表。系统数据库表的关系图如图3-9所示。

图中各表通过主键和外键建立联系,例如实时监控指标信息表(REALTIME_IDX_INFO)的主键为实时指标信息ID号,它同时也是报警信息记录表(ALARM_INFO)的外键,相互之间为1对多的关系,即每个实时指标信息可提供多个报警记录,而每个报警记录只能由一个实时指标信息提供;同理,报警临界值表(ALARM_VALUE)中的主键报警ID号也是报警信息记录表(ALARM_INFO)中的外键,实时监控指标信息表(REALTIME_IDX_INFO)的主键实时指标信息ID号也是报警临界值表(ALARM_VALUE)中的外键。

21

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

ALARM_INFOPK RECORD_ID ALARM_ID MONITOR_ID RECIEVER_ID RECI_INFO ALARM_INFO ALARM_NAME ALARM_TIME REALTIME_IDX_INFOPK MONITOR_ID IDX_NAME T_ALARM ALARM_VALUEPK ALARM_ID IDX_ID ALARM_NAME ALARM_INFO MONITOR_ID MAX_VALUE MIN_VALUE T_BUSINESS_USER USER_BUSINESSPK BUSI_USER_ID USER_ID BUSINESS_ID T_USER USER_INFOPK USER_ID USER_NAME PASSWORD USER_INFO USER_ROLE ORGNIZATION BUSI_USER_ID T_AUTHORITY USER_AUTHORITYPK AUTHORITY_ID USER_ID AUTHORITY OBJECT_ID FILE_IDX_DATAPK FILE_ID FILE_INFO IDX_NAME FILE_PATH OPERATE_LOGPK OPERATE_ID USER_ID OBJECT_ID OPRATION OPER_TIMET_MYSQL_IDX_DATA DATABASE_IDX_INFOPK MID_ID BUSINESS_ID MONITOR_ID IDX_VALUE DCI_ID FRONT_SHOW DB_IP DB_PORT RECORD_TIME T_OP_OBJECT OPERATE_OBJECTPK OBJECT_ID OBJECT_NAME SYSTEM_OPERT_SYSTEM_OPER_LOG SYSTEM_OPER_LOGPK OPER_ID USER_ID OBJECT_ID OPRATION OPER_TIME T_IDCDATA_CENTER_INFOPK DCI_ID LOCATION IDC_NAME T_BUSINESS BASIC_BUSINESSPK BUSINESS_ID BUSI_USER_ID BUSI_NAME 图3-9 系统数据库表的关系图

3.6.2 系统数据库的主要表设计

系统数据库的主要表设计有USER_INFO是用户信息表,USER_AUTHORITY是用户权限信息表,USER_BUSINESS是用户业务信息表,DATABASE_IDX_INFO是监控指标数据信息表,OPERATE_OBJECT是操作对象表,ALARM_VALUE是报警临界值表,ALARM_INFO是报警信息记录表,SYSTEM_OPER_LOG是系统操作记录表,OPERATE_LOG是操作记录表,BASIC_BUSINESS是基本业务表,FILE_IDX_DATA是文件指标信息表, REALTIME_IDX_INFO是实时监控指标信息表和DATA_CENTER_INFO是数据中心信息表。下面将对部分的数据库表进行说明。

(1)用户权限信息表主要是用来记录监控系统的用户权限数据信息,其中有用户账号、权限操作的类别、数据库和表范围的操作权限等信息。如表3-1所示,是用户权限信息表的设计。

22

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

表3-1 用户权限信息表

表名:USER_AUTHORITY(用户权限信息表) 逻辑名 权限ID 用户ID 操作权限 操作对象ID 字段名称 AUTHORITY_ID USER_ID AUTHORITY OBJECT_ID 数据类型 INT INT VACHAR(40) INT 是否为主键 是 否 否 否 默认值 无 无 无 无 (2)监控指标数据信息表是用来记录监控指标数据信息的,如表3-2所示,是监控指标数据信息表的设计。

表3-2 监控指标数据信息表

表名:DATABASE_IDX_INFO(监控指标数据信息表) 逻辑名 监控指标数据ID 业务ID 监控指标ID 指标值 数据中心ID 是否在前台显示 数据库IP 数据库端口 指标记录时间 字段名称 MID_ID BUSINESS_ID MONITOR_ID IDX_VALUE DCI_ID FRONT_SHOW DB_IP DB_PORT RECORD_TIME 数据类型 INT INT INT VARCHAR(60) INT BOOL INT UINT DATETIME 是否为主键 是 否 否 否 否 否 否 否 否 默认值 无 无 无 NULL 无 true 无 无 无 (3)实时监控指标信息表是用来记录监控系统的实时指标数据信息。如表3-3所示,是实时监控指标信息表的设计。

表3-3 实时监控指标信息表

表名:REALTIME_IDX_INFO(实时监控指标信息表) 逻辑名 监控指标ID 指标名称 字段名称 MONITOR_ID IDX_NAME 数据类型 INT VARCHAR(40) 是否为主键 是 否 默认值 无 无

23

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

(4)报警信息记录表是用来记录报警日志信息的,如果发生报警,报警信息将会被记录下来。如表3-4所示,是报警信息记录表的设计。

表3-4 报警信息记录表

表名:ALARM_INFO(报警信息记录表) 逻辑名 记录日志ID 报警ID 监控指标ID 报警接收ID 报警接收ID信息 报警信息 报警名称 报警时间 字段名称 RECORD_ID ALARM_ID MONITOR_ID RECIEVER_ID RECI_INFO ALARM_INFO ALARM_NAME ALARM_TIME 数据类型 INT INT INT INT VARCHAR(80) VARCHAR(80) VARCHAR(40) DATETIME 是否为主键 是 否 否 否 否 否 否 否 默认值 无 无 无 无 无 无 无 无 (5)系统操作记录表是用来记录系统进行了哪些操作及操作的具体内容。其中包括操作记录ID号、用户ID号、操作对象ID号、具体操作内容等。如表3-5所示,是系统操作记录表的设计。

表3-5 系统操作记录表

表名:SYSTEM_OPER_LOG(系统操作记录表) 逻辑名 操作记录ID 用户ID 操作对象ID 具体操作内容 操作时间 字段名称 OPER_ID USER_ID OBJECT_ID OPRATION OPER_TIME 数据类型 INT INT INT VARCHAR(80) DATETIME 是否为主键 是 否 否 否 否 默认值 无 无 无 无 无 (6)基本业务表是用来记录业务的ID号、业务名称及业务用户的ID号。如表3-6所示,是基本业务表的设计。

24

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

表3-6 基本业务表

表名:BASIC_BUSINESS(基本业务表) 逻辑名 业务ID 用户业务ID 业务名称 字段名称 BUSINESS_ID BUSI_USER_ID BUSI_NAME 数据类型 INT INT VARCHAR(40) 是否为主键 是 否 否 默认值 无 无 无 3.7 本章小结

本章首先对企业级MySQL数据库在线监控系统进行了业务需求的分析,同时还对监控系统的功能需求和非功能需求进行了分析。其次,对系统的数据信息采集模块、计算监控指标数据信息模块、注册监控指标信息模块和合并上传监控指标数据信息模块,其中还简要介绍了异常报警模块,前端Web界面显示模块。最后,简短的介绍了指标数据信息的计算方法以及系统的数据库表的关系。

25

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

4 监控系统的主要模块实现

前一章中已对监控系统的总体结构和主要模块进行了需求分析和功能设计。本章将围绕监控系统的主要模块的实现进行详细的讲解,包括采集系统运行状态的数据信息模块、计算监控指标的数据信息模块、计算注册监控指标数据信息模块和汇总监控指标数据信息及上传模块。

4.1 系统开发及运行环境

(1)硬件:英特尔酷睿双核PC机或兼容机,服务器以及VGA、LED或支持桌面操作系统的任何图形适配器

(2)软件:操作系统为CentOS 6.3,编译软件有Eclipse+Pydev、Zend Studio 10.6.1,其它软件有Apache 2.2.23、Python 3.3、PHP 5.3.6、MySQL 5.1.47

4.2 采集系统运行状态的数据信息模块的实现

采集系统运行状态的数据信息模块是监控系统的主要模块,它主要是采集各个MySQL数据库服务器运行的状态数据信息,让后把这些数据信息以文件的形式存储到本地相应的数据库中。其中该模块主要由以下三个程序组成:采集MySQL数据库用户权限信息的程序、采集MySQL数据库运行过程中的慢查询和错误日志程序、采集MySQL数据库运行状态的数据信息。其中,以上三个程序都部署在Linux服务器上,每过一分钟就会采集一次数据信息。 4.2.1 采集MySQL数据库用户权限信息的功能

采集MySQL数据库用户权限信息的功能主要是采集用户权限的信息,从而根据权限信息可以对数据库进行更好的管理,同时也能知道数据库用户权限信息的分配情况。如图4-1所示,是采集MySQL数据库用户权限信息的流程图。

首先系统加载配置文件程序,若加载正确,就会连接目标MySQL数据库,这期间由connectMySQL()函数完成;接着打开原始的数据文件信息,再通过读取每行的

26

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

数据信息查看各个用户权限信息的SQL语句,然后在MySQL数据库中运行这些SQL语句,并通过executeSql()函数取得用户权限信息的字符串,再把这些字符串解析出来,然后获取解析之后的用户权限信息,由getUserAuthority()函数来完成调用,最后再把这些用户权限信息通过调用saveUserAuthorityData()函数保存至文件中。

开始加载配置文件loadConfig()是否加载正确是连接MySQL数据库connectMySQL()否打开指标数据文件open()是返回值是否为空否读取该指标数据文件read()在MySQL中执行数据命令executeSql()获取用户权限信息getUserAuthority()将获取的权限信息存储至文件saveUserAuthorityData()结束

图4-1 采集MySQL数据库用户权限信息程序的流程图

MySQL数据库用户权限信息主要包括用户账号、权限操作的类别、数据库和表范围的操作权限,用户权限登录的范围等信息。如图4-2所示,是MySQL数据

27

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

库用户权限信息查询界面的效果图。

图4-2 MySQL数据库用户权限信息查询效果图

4.2.2 采集MySQL数据库运行过程中慢查询和错误日志信息的功能

采集MySQL数据库运行过程中的慢查询和错误日志的功能主要是把MySQL数据库的慢查询记录存入到日志文件中,慢查询日志用英文表示为Slow Query,它是指在某一段时间MySQL数据库运行最慢的SQL语句,通常这些SQL语句都会被记录在日志中,相关工作人员通过查看慢查询的日志,就会及时了解SQL语句运行的一些信息,这样可以帮助数据库管理员更好的优化SQL查询语句。在完成采集MySQL数据库运行过程中慢查询和错误日志的功能中,会用到慢查询分析工具mysqlsla,它不仅好用,而且分析出来以后还有语句范例。同时它还能提供每条慢查询语句执行的时间,并根据执行时间的长短进行排序,这样就会容易获取执行最慢的SQL语句,同时也能获得慢查询日志信息。错误日志主要记录MySQL数据库启动后,运行过程中出现的错误信息,这些错误日志对管理员维护数据库有着较大的帮助。

如下图4-3所示,是采集MySQL数据库运行过程中的慢查询和错误日志信息程序的流程图。首先,加载配置文件,若加载正确,获取MySQL数据库的配置文件,然后打开配置文件并读取相关文件信息,再对这些数据信息按慢查询日志和错误日志进行匹配分类,再调用getSlowQueryLogInfo()函数获得慢查询的日志信息,调用

28

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

getErrorLogInfo()函数获得错误日志的信息,最后把这些日志信息保存至文件中。

开始加载配置文件loadConfig()是否加载正确是否获取MySQL配置文件的路径getMySQLConfigPath()打开配置文件open()返回值是否为空否读取该配置文件read()是对文件数据信息进行前缀匹配prefixMatch()获取最慢的慢查询信息getSlowQueryLogInfo()是是否前缀为slowQueryLog否是否前缀为errorLog是否获取最新错误日志信息getErrorLogInfo()将获取的数据信息存储至文件saveLogData()结束

图4-3 采集MySQL数据库慢查询和错误日志信息程序的流程图

慢查询日志主要是记录运行时间比较长的SQL语句,通常记录执行最慢的SQL

29

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

语句,对慢查询日志进行分析,可以了解运行效率不高的SQL语句,同时还可以对这些语句进行改进,以便能够高效的运行。MySQL数据库慢查询日志的界面图,如图4-4所示。

图4-4 MySQL数据库慢查询日志的界面图

MySQL数据库错误日志主要是记录数据库运行过程中出现的异常信息,把这些错误日志进行分析,就可以知道MySQL数据库运行时的各种异常。其中错误日志查询的界面图如图4-5所示。

图4-5 错误日志查询界面图

30

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

4.2.3 采集MySQL数据库运行状态的数据信息功能

采集MySQL数据库运行状态的数据信息程序的功能主要是采集MySQL数据库服务器的运行状态数据信息、用户权限信息、MySQL数据库连接的进程信息,MySQL数据库运行的各个状态信息等。这些信息都是用MySQL数据库的管理员命令采集的,如执行Show full processlist命令可以查看MySQL数据库连接的相关进程信息,包括IP地址及运行状态等;执行Show global status命令可以获取MySQL数据库运行的各个状态信息。

4.3 计算监控指标数据信息模块的实现

计算监控指标的数据信息模块主要是根据相关计算法则,对采集到的数据信息作进一步的计算处理,同时把计算生成的结果存储到指定的文件中。下面将介绍计算监控指标数据信息模块主要的几个计算模块,其中包括MySQL数据库磁盘空间大小的计算程序、MySQL数据库进程连接的计算程序和MySQL数据库主服务器 与从服务器同步状态的计算程序。

4.3.1 MySQL数据库磁盘空间大小的计算功能

MySQL数据库磁盘空间大小的计算,主要是根据各个MySQL数据库所占磁盘的大小来计算数据库文件在MySQL数据库中的比率。数据库文件大小的变化和磁盘占用率的变化是监控数据库比较重要的指标,如果数据库中文件的增长过快,就会对数据库的磁盘容量造成压力,这个时候就应该考虑对数据库的容量进行升级或优化。

如下图4-6所示,是MySQL数据库磁盘空间大小的计算程序流程图。首先,加载配置文件,若加载正确,就获取MySQL数据库的目录;其次,通过getPartitionName()、getPartitionSize()、getDatabaseSizeList()函数获取数据目录所在分

31

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

区大小的信息和各个数据库目录的大小;最后,通过相关计算可以得出各个数据库目录所占磁盘空间大小的比例,然后将计算的结果保存至相应的文件中。

开始加载配置文件loadConfig()是否加载正确是获取MySQL数据库目录getMySQLDirectory()否获取分区名称getPartitionName()获取分区的数据目录大小getPartitionSize()获取各数据库目录大小的列表getDatabaseSizeList()计算各个数据目录所在分区的比率calculateRatio()将计算结果保存至文件saveRatioData()结束

图4-6 MySQL数据库磁盘空间大小计算的程序流程图

MySQL数据库的数据文件所占磁盘大小的比率为数据库磁盘空间的占用率,获取MySQL数据库磁盘空间大小的信息,就可以及时了解数据库容量增长的进度。如图4-7所示,是MySQL数据库磁盘空间占用比率结果的展示图。

32

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

图4-7 MySQL数据库磁盘占用率查询展示图

4.3.2 MySQL数据库进程连接计算功能

MySQL数据库进程连接的计算功能是获取MySQL数据库进程连接的信息,从而可以知道MySQL数据库服务器正在为哪些用户进行服务,同时也可以了解MySQL数据库连接的负载情况,这样有助于分析数据库的负载均衡能力,为MySQL数据库的负载均衡提供一些解决方法。

当MySQL数据库服务器出现回收操作时,这时根据数据库连接的历史数据信息可以知道哪些服务器还有流量,有流量的则说明服务器在进行服务,这时服务器回收机制就会发挥重要的作用。

如下图4-8所示,是MySQL数据库进程连接计算程序的流程图。首先,加载配置文件信息,若加载正确,生成该原始监控指标数据的文件名,然后读取该文件,在对读取的文件信息进行解析,所有的信息解析完成之后,获取解析的连接进程信息getProcessInfo(),再通过调用saveProcessInfo()函数把这些数据信息存入至相关文件中去。

33

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

开始加载配置文件loadConfig()是否加载正确是连接MySQL数据库connectMySQL()否打开指标数据文件open()返回值是否为空否是读取该数据文件read()获取连接进程的信息getProcessInfo()将连接进程的信息保存至文件saveProcessInfo()结束

图4-8 MySQL数据库进程连接计算程序流程图

MySQL数据库进程连接信息主要是各个MySQL数据库服务器的各个进程的连接信息,包括IP地址、连接的时间以及状态信息。如图4-9所示,是MySQL数据库进程连接信息查询结果的展示图。

34

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

图4-9 MySQL数据库进程连接信息查询展示图

4.3.3 MySQL数据库主服务器与从服务器同步状态的计算功能

MySQL数据库主服务器与从服务器同步状态计算是获取主服务器和从服务器数据同步的状态信息,其中包括以下几个指标:Master_Server_IP(主服务器IP)、Master_Server_Port(主服务器的端口)、Master_Server_User(连接主服务器的用户)、IO_Thread_Running(I/O线程是否连接在主服务器上)、SQL_Thread_Running(是否启动SQL的线程)、Master_Bin_Log_File(主服务器二进制文件)、Seconds_CopyDatabase(复制数据库的时间)、Last_ErrorTotal(最近查询返回的错误数量)和 ErrorLog_Info(错误日志消息)。若能够随时了解这些状态信息,就可以知道主服务器与从服务器之间的复制是否正常,如果出现异常,那么应该进行及时的报警。

4.4 计算注册监控指标数据信息模块的实现

计算注册监控指标数据信息模块的功能是对采集系统运行状态的数据信息模块和计算监控指标的数据信息模块进行管理。如图4-10所示,是计算注册监控指标数据信息程序的具体流程图。

35

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

开始加载配置文件loadConfig()否是否加载正确是连接MySQL数据库connectMySQL()获取指标数据信息getIndexData()是否为采集的指标数据否是把系统采集的指标数据进行注册registorIndexData()计算注册监控指标数据calculateIndexData()把计算注册的结果存储至文件saveRegistorData()结束

图4-10 计算注册监控指标数据信息程序的流程图

计算注册监控指标数据信息模块程序,首先,加载配置文件信息,若加载正确,连接MySQL数据库,获取指标数据信息,调用registorIndexData()函数把采集的指标数据信息进行注册,然后调用calculateIndexData()函数通知计算注册监控指标数据信息,最后把计算注册的结果存储至文件中。

4.5 汇总监控指标数据信息及上传模块的实现

汇总监控指标数据信息及上传的功能主要是把监控的数据信息以文件的方式汇

36

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

总,然后上传到服务器中。如图4-11所示,是MySQL数据库汇总监控指标数据信息及上传的流程图。首先,加载配置文件程序,若加载正确,调用loadIdxDataFile()函数加载监控指标数据文件的目录,再把新生成的数据文件加入到汇总文件中,最后把汇总后的文件上传至本地数据库中。

开始加载配置文件loadConfig()是否加载正确否是加载监控指标数据文件的目录loadIdxDataFile()否是否有新的文件生成hasNewFile()是新建汇总文件newSummaryFile()否是否有汇总文件hasSummaryFile()是把监控数据信息添加至汇总文件addToFile()上传汇总后的文件uploadFile()结束

图4-11 汇总监控指标数据信息及上传的程序流程图

4.6 本章小结

本章实现了监控系统的主要模块功能,包括采集系统运行状态的数据信息模块

37

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

的实现、计算监控指标的数据信息模块的实现、计算注册监控指标数据信息模块的实现和汇总监控指标数据信息及上传模块的实现。同时还对一些功能模块给出了流程图,并简要的阐述了实现的过程。

38

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

5 监控系统的测试

本章对企业级MySQL数据库在线监控系统进行了相关测试,主要包括功能测试和性能测试,其中功能测试是通过设计测试样例来完成测试的,同时还对测试结果作了简要的说明。

5.1 测试环境

测试的环境主要是由系统开发及运行环境所组成,以下是测试过程中需要的设备,其中包括相关软件和硬件。

(1)监控终端配置

操作系统:Windows 7专业版 处理器:Intel酷睿双核2.53GHZ 硬盘容量:500GB

浏览器:IE9、Chrome 33.0.1750.154 (2)监控中心服务器配置 操作系统:CentOS 6.3 MySQL数据库:MySQL 5.1.47

其它软件:Apache 2.2.23、Python 3.3、PHP 5.3.6等 (3)MySQL服务器的配置 操作系统:CentOS 6.0

处理器:Intel酷睿四核2.66GHZ 硬盘容量:500GB 内存:8GB

MySQL数据库:MySQL 5.1.47

39

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

5.2 系统功能测试

功能测试又称黑盒测试,是把测试对象看作是一个黑盒子,主要是测试软件产品的功能是否符合要求,不需要测试软件产品的内部结构和处理过程[40]。主要是根据预先设计的测试样例来完成功能测试,同时把测试的结果与预期的结果作比较,然后判断软件产品的功能是否正确。下面将对系统的主要功能进行测试,同时还对测试的方法和测试结果进行了说明。 5.2.1 用户权限信息查询的功能测试

要查询用户权限信息,首先要在Web查询界面中输入指定的IP地址和端口号,然后根据用户的权限项,选择并点击查询按钮,这样就可以获得指定用户的权限信息,同时在Web界面上显示出来。设计的测试样例如表5-1所示。

表5-1 用户权限信息查询的测试样例

测试对象 功能介绍 测试目的 操作步骤 用户权限信息查询 查询指定的MySQL数据库服务器的用户权限信息 用户权限信息能否正确显示出来 输入IP地址和端口号; 选择用户权限项,进行查询; 查看用户权限信息 预期结果 实际结果 Web界面信息栏中输出了指定的用户权限信息 显示的信息与实际用户权限的信息一致,测试完成,通过 5.2.2 慢查询日志查询的功能测试

要进行慢查询日志的查询,首先要在Web查询界面中输入指定的IP地址和端口号,然后根据慢查询日志的选项,选择并点击查询按钮,这样慢查询日志的信息就会在Web页面中显示出来。通过测试得出,实际结果与预期结果一致。设计的测试样例如表5-2所示。

40

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

表5-2 慢查询日志查询的测试样例

测试对象 功能介绍 测试目的 操作步骤 慢查询日志信息的查询 查询指定的MySQL数据库服务器运行的慢查询日志信息 慢查询日志信息能否正确的在Web界面中显示 输入IP地址和端口号; 选择慢查询日志项,进行查询; 查看慢查询日志的信息 预期结果 实际结果 Web界面信息栏中显示慢查询日志的信息 实际结果与预期结果一致,测试完成,通过 5.2.3 错误日志查询的功能测试

要查询错误日志信息,首先要在Web查询界面中输入指定的IP地址和端口号,然后根据错误日志信息的选项,选择并点击查询按钮,这样错误日志的信息就会在Web页面中显示出来。设计的测试样例如表5-3所示。

表5-3 错误日志查询的测试样例

测试对象 功能介绍 测试目的 操作步骤 查询错误日志信息 查询指定的MySQL数据库服务器运行的错误日志信息 错误日志的信息能否正确的在Web界面中显示 输入IP地址和端口号; 选择错误日志项,进行查询; 查看错误日志的信息 预期结果 实际结果 Web界面信息栏中显示错误日志的信息 实际的结果与期望的结果一致,测试完成,通过 5.2.4 系统异常报警的功能测试

系统异常报警主要是系统运行时出现异常而进行的报警,主要是针对预期临界值与实际的结果值不一致时进行报警,报警的形式主要以邮件或短信的方式告知相关责任人。设计的测试样例如表5-4所示。

41

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

表5-4 异常报警的测试样例

测试对象 功能介绍 测试目的 操作步骤 期望结果 实际结果 异常报警功能 系统的数据指标超出正常范围后及时报警 当出现异常情况时能否及时的发出报警 断开任意一个MySQL数据库服务器 出现异常后能以邮件和短信的方式发出报警 系统发出的报警信息与预期结果一致,测试完成,通过 5.3 系统性能测试

5.3.1 测试内容

本小节主要测试系统资源的使用情况和文件数据信息传输的性能。当MySQL数据库服务器上传数据信息的规模上升时,内存和CPU的使用比率也会逐步增加,所以对系统资源的使用情况进行测试是很有必要的[41,42]。监控系统要同时监控多台MySQL数据库服务器,同时被监控的各个MySQL数据库服务器运行的状态信息要传输到监控中心,而且要求是实时的传输,所以高效、正确的数据传输对于监控系统来说是非常关键的[43]。 5.3.2 测试结果

表5-5是系统资源使用的测试情况表。从下表可以看出,当MySQL数据库服务器达到100个的时候,内存的使用率为0.63%,CPU的使用率为0.87%,可以分析出内存和CPU的使用率都比预期目标的要求要低,从而可以认为系统基本满足了要求。

表5-5 系统资源使用情况的测试

MySQL数据库实例规模数(个) 10 40 70 100 内存使用率(%) 0.31 0.36 0.49 0.63 CPU使用率(%) 0.05 0.41 0.65 0.87

42

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

表5-6是对文件数据信息传输的测试情况表。测试过程中采用的是数台MySQL数据库服务器上传数据信息到达监控中心,这其中包括资源文件的生成、监控指标数据信息的计算、数据汇总和传输等所需要的时间。

表5-6 文件传输计算所需时间的结果表

MySQL数据库服务器上传的规模数(个) 10 40 70 100 所需总的时间(秒) 5.12 5.95 6.93 8.02 根据上表中所计算的时间,我们可以发现,监控MySQL数据库服务器的规模达到100个的时候,整个传输时间在8秒左右,加上Web界面展示的时间,10秒钟是可以顺利进行的,从而基本满足了监控系统对传输的要求。

5.4 本章小结

本章对已实现的企业级MySQL数据库在线监控系统进行了相关测试,分别进行了功能测试和性能测试,其中测试的结果与预期的结果基本一致。同时发现系统在数据信息传输上的效果是比较好的,可以认为监控系统符合用户的需求。

43

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

6 总结与展望

通过对系统的需求分析、功能模块的设计、实现以及测试之后,完成了一个企业级MySQL数据库在线监控的系统,在整个系统开发过程中,遇到过不少问题和困难,系统还存在一些不是很满意的地方,这需要去不断完善和改进。

6.1 全文总结

由于在线业务需要服务稳定、可靠,所以就会对 MySQL 数据库运行的稳定性和可靠性有着很高的要求。那么就需要一个监控系统来监控 MySQL 数据库的运行情况,这样相关业务人员可以及时了解 MySQL 数据库运行的情况,并根据监控的数据信息来更好的维护和优化MySQL 数据库,从而提高 MySQL 数据库的稳定性和可靠性。然而现在的情况是一些公司对 MySQL 数据库在线监控方面还不够重视。首先,一些互联网公司发展很快但时间并长;其次,由于互联网业务的不断增长使得 MySQL 数据库才发展壮大起来,在复杂网络情况下,监控 MySQL 数据库还处于探索阶段。所以,就有了企业级 MySQL 数据库在线监控系统的提出。

本文结合国内外的研究状况,对一些数据库性能监控产品作了一些分析,研究和分析了一些MySQL数据库监控方面的技术和原理,其中包括 Python访问MySQL数据库技术、PHP技术和系统监控原理;然后,对监控系统的业务需求和功能需求进行了分析,并设计了MySQL数据库在线监控系统的总体结构,根据总体结构设计,设计了系统的主要模块结构和数据库各表的关系,同时还对监控系统的运行过程给出了说明。最后,本文完成了企业级MySQL数据库在线监控系统,该系统不仅能够按照设置的监控机制对MySQL数据库和服务器的资源情况进行不间断的监控,而且能够对出现的异常及时进行报警,为相关负责人员提供了比较好的技术支持,同时为企业未来业务的发展提供了好的决策支持。

本文主要完成了以下工作:

(1)实现了一个能在线监控MySQL数据库服务器运行状态的系统,并能根据相关数据信息来判断MySQL数据库的运行情况。

44

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

(2)向采集MySQL数据库的磁盘信息、用户权限信息、进程连接信息、慢查询日志信息和错误日志信息等提供了一个可行、好的办法。

(3)本系统MySQL数据库进行高效的监控,同时能在线实时传输监控的指标数据信息。

在整个项目的开发过程中,遇到了许多困难,同时也解决了不少困难,这些困难主要集中在监控指标数据传输的方法、监控指标数据计算以及提供扩展应用等方面。数据传输是采用公司的内部传输方法。监控指标的计算方法是通过与业务人员进行沟通,查阅了许多相关的资料而展开的,并最终确定了计算方法。扩展应用程序主要是根据需求变更的要求提供可以扩展的功能。

6.2 展望

写此文的目的在于通过撰写论文的过程中能够对MySQL数据库的监控提供一些方法和架构思路,但是由于时间仓促,再加上本人的水平有限,所以希望在以后的工作中能够不断完善:

(1)本监控系统不能对MySQL数据库进行管理,只能对MySQL数据库实施监控。

(2)本监控系统也不能对MySQL数据库进行控制,但是当MySQL数据库的运行状态出现异常时,可以进行报警。

(3)本系统对于分布式MySQL数据库集群还不能适用,因为这涉及到许多复杂的技术,特别是分布式集群,同时还涉及到海量数据的处理和复杂网络状况下的数据传输技术,这些都是作者还要不断学习和研究的地方。

45

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

致 谢

记得我的研究生学习生活是从暑期日语培训班开始的,不知不觉,三年的研究生学习生活就要进入尾声了。在这三年里,得到过许多同学和老师的帮助。

首先要衷心感谢我的导师任宏萍老师!任老师的亲切、随和给我留下了很深刻的印象。在我撰写论文的整个过程中,任老师给我提出了许多宝贵的意见,才使我的论文逐步成型。

再次怀恋写论文的那段日子,大部分时间是在图书馆度过的,每天是那个座位,每天周围是熟悉的面孔,感觉非常的亲切,很喜欢那里,当然图书馆也是写论文的好去处,安静,而又有学习氛围。

感谢华中科技大学软件学院的各位老师。他们深入浅出的授课、严格的教学风范、丰富的科研经验,开阔了我们的眼界,为我们进一步的学习和研究打下了良好的基础。感谢你们!

感谢柴松、丁辉、李祥信、刘文、孙飞、黄国炎、张建、王传虎等同学和朋友给予我的支持和帮助!

最后,深深地感谢我的父母!

46

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

参考文献

[1]

翟岩龙, 宿红毅, 战守义. 数据库性能监控体系的研究与应用. 计算机科学, 2006, 33(11): 232-235

[2]

张劲男, 孟炬. 数据库性能监控分析系统的设计与实现. 信息技术与标准化, 2013(10): 70-74

[3]

Mathkour H, Al-Salamah A. A machine learning technique for monitoring database systems. Computers and Communications, IEEE, 2000, 18(2): 421-427

[4] [5]

王雨竹, 高飞著. MySQL入门经典. 北京: 机械工业出版社, 2013: 8-83 邵志远, 金海, 唐晓辉. 基于主动TCP连接复制的高性能高可用MySQL数据库集群. 计算机研究与发展, 2005, 42(6): 1006-1012

[6] [7]

王军. MySQL4 从入门到精通. 北京: 电子工业出版社, 2003: 30-107 王娜, 宿红毅, 白琳等. 数据库性能监控分析系统的设计与实现. 计算机工程, 2005, 31(24): 105-107

[8]

Marques R, Santos H, Santos C. An Enterprise Ontology-Based Database for Continuous Monitoring Application. Business Informatics, IEEE, 2013, 12(6): 7-12

[9]

Wu X, Chen J, et al. Internet-Based Remote Monitoring and Fault Diagnosis System. Proc.of International Symposium on Neural Networks, 2003, 5(2): 53-62

[10]

杜庆峰, 张卫山. Oracle 的中大型应用系统性能优化分析. 计算机工程, 2005, 31(14): 91-93

[11]

汪胜利. 企业内部ORACLE数据库监控系统技术体系. 安徽: 安徽电气工程职业技术学院学报, 2011(10): 162-1

[12]

Jose F, Marco V, Henrique M. Monitoring Database Application Behavior for Intrusion Detection. 12th Pacific Rim International Symposium on Dependable Computing, 2006, 9(2): 101-107

47

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

[13] 彭岩, 鄢琦, 齐剑锋等. 基于大系统理论的分布式数据库系统设计与分析. 计算机工程, 2002, 8(7): 35-37

[14] Ashutosh R, Alok K, and Shirshu V. Database Design for Sensor Network based Global Patient Care Monitoring System. Wireless Communication and Sensor Networks (WCSN), 2010 Sixth International Conference, 2010: 211-219

[15] [16]

刘凤龙. Oracle监控处理系统的设计与实现. 计算机工程, 2009(10): 54-59 Fabre, E. Monitoring distributed systems with distributed algorithms. Decision and Control, 2002, Proceedings of the 41st IEEE, 2002, 19(2): 411-416

[17] 张月朋, 田李, 李爱平等. 基于CORBA的分布式数据库监控系统研究与实现. 第二十四界中国数据库学术会议论文集, 2007, 12(5): 58-65

[18] Carlo C, Evan P.C. Jones. Samuel M, Hari B. Workload-aware database monitoring and consolidation. Proceedings of the 2011 ACM SIGMOD International Conference on Management of data, 2011, 10(6): 313-324

[19] A. Chebotko and S. Lu. Querying the Semantic Web: An Efficient Approach Using Relational Databases. LAP Lambert Academic Publishing, 2009, 17(6): 102-109

[20] [21] [22]

刘凤龙. Oracle监控处理系统的设计与实现. 计算机工程, 2009, 35(10): 54-59 贾焰, 王志英. 分布式数据库技术. 北京: 国防工业出版社, 2000, 12(4): 18-45 Craig F, Samuel M, Artem C, John A, Pearl Brazier. Distributed SemanticWeb Data Management in HBase and MySQL Cluster. 2011 IEEE 4th International Conference on Cloud Computing, 2011: 105-112

[23] Wentao Z, Suqing L. Analysis of Coal mine safety Monitoring Data Based On Column-oriented Database. Artificial Intelligence, Management Science and Electronic Commerce (AIMSEC), 2011 2nd International Conference, 2011: 1921-1922

[24] 唐汉明, 翟振兴, 兰丽华等. 深入浅出MySQL—数据库开发优化与管理维护. 北京: 人民邮电出版社, 2008, 143-270

48

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

[25] 张一鸣, 刘杰. Oracle数据库监控维护技术的应用与实践. 网络与信息, 2006, 12(6): 21-29

[26] A.Chebotko and S.Lu. Querying the Semantic Web: An Efficient Approach Using Relational Databases. LAP Lambert Academic Publishing, 2009, 7(2): 67-75

[27] 殷佳欣, 陈驰. 集群数据库系统多指标动态负载均衡方法的设计与实现. 中国科学院研究生院学报, 2012, 9(1): 94-100

[28] 黄旭. 分布式MySQL数据库集群在线监测系统设计与实现. 哈尔滨: 哈尔滨工业大学硕士学位论文, 2012

[29] Ernst B, Rasmussen H R, Schwinn U, et al. Enterprise DBA Part 1A: Architecture and Administration. Oracle Corporation, 2000, 12(2): 21-35

[30] 江竟敏, 黄忠东. 针对Linux与Oracle的多服务器图形对比监控系统. 计算机工程与应用, 2011, 47(7): 128-130

[31] [32] [33] [34]

Mark Lutz著, 李军等译. Python学习手册. 北京: 机械工业出版社, 2011: 5-90 高昂. Python近况全接触. 程序员, 2009, 3(2): 17-25

郑岚. Python访问MySQL数据库. 电脑编程技巧与维护, 2010, 12(1): 59-61 Chuck E. Using Mix-ins with Python. Specialized Systems Consultants, Inc. 2011, 12(2): 7-11

[35] J. Choi, W. Y. Kang, J. Chung, J. W. Park, H. S. Lee, B. G. Min. Development of an online database system for remote monitoring of artificial heart patient. Proc of the 4th Annual IEEE Conf on Information Technology Applications in Biomedicine, UK, 2003, 18(1): 59-61

[36] Luke Willing, Laura Thomson著, 武欣等译. PHP和MySQL Web开发. 北京:机械工业出版社, 2009: 1-35

[37] 戴一平. MVC设计模式在PHP开发中的应用. 计算机与现代化, 2011(3): 33-37

[38] 张月朋, 田李, 李爱平等. 基于CORBA的分布式数据库监控系统研究与实现. 计算机研究与发展, 2007, 44(Suppl.): 136-141

49

万方数据

华 中 科 技 大 学 硕 士 学 位 论 文

[39] [40]

简朝阳. MySQL性能调优与架构设计. 北京: 电子工业出版社, 2009: 121-180 Robert V Binder著, 华庆一等译. 面向对象系统的测试. 北京: 人民邮电出版社, 2001: 99-106

[41] 李现艳, 赵书俊, 初元萍. 基于MySQL的数据库性能测试. 核电子学与探测技术, 2011, 31(5): 48-52

[42] 李征宇, 陈磊. 数据库性能评测指标及测试方法研究. 电子设计工程, 2011, 2(3): 4-5

[43] 武海平, 余宏亮, 郑纬民. 通用海量数据库性能测试系统的设计与实现. 北京: 清华大学学报, 2006, 53(12): 1309-1312

50

万方数据

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务