CN111459905A - MySQL数据库监控脚本的实现方法及*** - Google Patents
MySQL数据库监控脚本的实现方法及*** Download PDFInfo
- Publication number
- CN111459905A CN111459905A CN202010131496.1A CN202010131496A CN111459905A CN 111459905 A CN111459905 A CN 111459905A CN 202010131496 A CN202010131496 A CN 202010131496A CN 111459905 A CN111459905 A CN 111459905A
- Authority
- CN
- China
- Prior art keywords
- value
- state
- last time
- python
- formula
- 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.)
- Pending
Links
- 238000013515 script Methods 0.000 title claims abstract description 135
- 238000012544 monitoring process Methods 0.000 title claims abstract description 126
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000009434 installation Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种MySQL数据库监控脚本的实现方法及***,其中,方法包括如下步骤:S1用于编写Python监控脚本的步骤;S2用于上传所述Python监控脚本,并进行配置的步骤;S3用于修改所述Python监控脚本的执行权限的步骤;S4用于执行所述述Python监控脚本的步骤;S5用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的步骤。这样,本发明提供方法及***是针对当前情况下兼容性差,安装繁琐,操作维护过程复杂,跨平台移植性低,跨***版本较少的缺陷,提供一种多平台支持,安装简单,维护容易,跨***版本较多的MySQL数据库监控脚本的实现方法及***。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种MySQL数据库监控脚本的实现方法及***方法及***。
背景技术
在当前技术领域中,MySQL官方并未自带监控管理模块,用于简单配置实现监控MySQL运行状态的目的。当然,MySQL咨询公司Percona提供的Percona Toolkit工具虽然功能很强大,但涉及操作***版本和数据库版本的兼容性问题,安装步骤繁琐,而且操作维护过程也相对复杂,目前也做不到通过单个脚本来监控MySQL数据库。另外,MySQL数据库主流是安装在Linux环境中,但不排除在windows、aix、mac等环境安装MySQL数据库的情况。常用监控产品可能只支持其中的部分平台,其跨平台移植可能性较低。
发明内容
本发明的目的是提供一种MySQL数据库监控脚本的实现方法及***。
本发明提供了一种MySQL数据库监控脚本的实现方法,包括如下步骤:S1用于编写Python监控脚本的步骤;S2用于上传所述Python监控脚本,并进行配置的步骤;S3用于修改所述Python监控脚本的执行权限的步骤;S4用于执行所述述Python监控脚本的步骤;S5用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的步骤。
所述S1用于编写Python监控脚本的步骤包括:S100用于加载脚本中用到的Python监控脚本,并判断是否加载成功,如是,执行步骤S101;否则执行步骤S110;S101用于调用采集脚本的步骤;S102用于读取my.cnf文件中数据配置信息,包括MySQL的端口号、安装目录、数据目录、套接字文件以及最大连接数,并判断是否读取成功,如是,执行步骤S103;否则执行步骤S123;S103用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的步骤;S104用于依次获取Key_buffer_read_hits读取命中率、Key_buffer_write_hits写入命中率、Key_buffer_used_pct重复使用率、Innodb_buffer_pool_hits命中率、Qcache_hits查询缓存命中率、Open_tables_pct打开表的百分率、Opened_tables打开表数、Thread_cache_hits命中率、QPS、TPS、Innodb_row_lock_current_waits行锁数、Innodb_row_lock_time_avg平均等待时间、Slow_queries慢查询量、Threads_connected应用连接数、Com_select次数、Com_update次数、Com_delete次数以及Com_insert次数进行查询的步骤;S105用于获取上一次KEY_READS、读请求数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Key_buffer_read_hits的值,公式是的步骤;S106用于获取上一次KEY_WRITES、写请求数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Key_buffer_write_hits的值,公式是的步骤;S107用于计算Key_buffer_used_pct的值,公式是的步骤;S108用于计算Innodb_buffer_pool_hits的值,公式是的步骤;S109用于计算Qcache_hits的值,公式是的步骤;S110用于计算Open_tables_pct的值,公式是的步骤;S111用于计算Opened_tables的值,公式是的步骤;S112用于获取上一次数据库的连接数、线程创建数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Thread_cache_hits的值,公式是的步骤;S113用于获取上一次数据库的查询数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算QPS的值,公式是的步骤;S114用于获取上一次数据库的提交数、回滚数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算TPS的值,公式是的步骤;S115用于获取上一次数据库执行多少次select语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_select的值,公式是的步骤;S116用于获取上一次数据库执行多少次update语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_update的值,公式是的步骤;S117用于获取上一次数据库执行多少次delete语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_delete的值,公式是的步骤;S118用于获取上一次数据库执行多少次insert语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_insert的值,公式是的步骤;S119用于将上述计算变量数值并***mydb的db_status表的步骤;S120用于进行MySQL数据库中的长查询,查询当前数据执行时间超过10分钟的会话,并将结果保存到slow_query_sql变量的步骤;S121用于将S105至S120计算结果以json格式输出到文本文件的步骤;S122用于将全局状态变量值写入上一次db状态数值文件的步骤;S123用于结束Python监控脚本的编写的步骤。所述S2用于上传所述Python监控脚本,并进行配置的步骤是将所述Python监控脚本上传到运行目录。所述S4用于执行所述述Python监控脚本的步骤是按生产环境要求,通过Crontab定时执行上述Python监控脚本查看当前MySQL数据库的状态。
本发明提供了一种MySQL数据库监控脚本的实现***,包括:用于编写Python监控脚本的模块;用于上传所述Python监控脚本,并进行配置的模块;用于修改所述Python监控脚本的执行权限的模块;用于执行所述述Python监控脚本的模块;用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的模块。
所述用于编写Python监控脚本的模块包括:用于加载脚本中用到的Python监控脚本中,并判断是否加载成功,如是,执行用于调用采集脚本的子模块;否则执行用于计算Open_tables_pct的值,公式是的子模块;用于调用采集脚本的模块;用于读取my.cnf文件中数据配置信息,包括MySQL的端口号、安装目录、数据目录、套接字文件以及最大连接数,并判断是否读取成功,如是,执行用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的子模块;否则执行用于结束Python监控脚本的编写的子模块;用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的子模块;用于依次获取Key_buffer_read_hits读取命中率、Key_buffer_write_hits写入命中率、Key_buffer_used_pct重复使用率、Innodb_buffer_pool_hits命中率、Qcache_hits查询缓存命中率、Open_tables_pct打开表的百分率、Opened_tables打开表数、Thread_cache_hits命中率、QPS、TPS、Innodb_row_lock_current_waits行锁数、Innodb_row_lock_time_avg平均等待时间、Slow_queries慢查询量、Threads_connected应用连接数、Com_select次数、Com_update次数、Com_delete次数以及Com_insert次数进行查询的子模块;用于获取上一次KEY_READS、读请求数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Key_buffer_read_hits的值,公式是的子模块;用于获取上一次KEY_WRITES、写请求数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Key_buffer_write_hits的值,公式是的子模块;用于计算Key_buffer_used_pct的值,公式是的子模块;用于计算Innodb_buffer_pool_hits的值,公式是的子模块;用于计算Qcache_hits的值,公式是的子模块;用于计算Open_tables_pct的值,公式是的子模块;用于计算Opened_tables的值,公式是的子模块;用于获取上一次数据库的连接数、线程创建数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Thread_cache_hits的值,公式是的子模块;用于获取上一次数据库的查询数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算QPS的值,公式是的子模块;用于获取上一次数据库的提交数、回滚数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算TPS的值,公式是的子模块;用于获取上一次数据库执行多少次select语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_select的值,公式是的子模块;用于获取上一次数据库执行多少次update语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_update的值,公式是的子模块;用于获取上一次数据库执行多少次delete语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_delete的值,公式是的子模块;用于获取上一次数据库执行多少次insert语句的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Com_insert的值,公式是的子模块;用于将上述计算变量数值并***mydb的db_status表的子模块;用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,并将结果保存到slow_query_sql变量的子模块;用于将上述计算结果以json格式输出到文本文件的子模块;用于将全局状态变量值写入上一次db状态数值文件的子模块;用于结束Python监控脚本的编写的子模块。所述用于上传所述Python监控脚本,并进行配置的模块是将所述Python监控脚本上传到运行目录的子模块。所述用于执行所述述Python监控脚本的模块是按生产环境要求,通过Crontab定时执行上述Python监控脚本查看当前MySQL数据库的状态的子模块。
本发明所提供的一种MySQL数据库监控脚本的实现方法及***,是针对当前情况下兼容性差,安装繁琐,操作维护过程复杂,跨平台移植性低,跨***版本较少的缺陷,提供一种多平台支持,安装简单,维护容易,跨***版本较多的MySQL数据库监控的实现方法及***。
本发明所提供的一种MySQL数据库监控脚本的实现方法及***,具有以下有益效果:由于通过编写Python监控脚本,并将Python监控脚本上传后对其进行配置;修改Python监控脚本的执行权限后,执行Python监控脚本,最后将运行结果进行保存或者下载,其安装简单方便,易维护,跨平台一致性较好,跨***版本较多。
附图说明
图1、2为本发明实施例一所提供的MySQL数据库监控脚本的实现方法的步骤示意图;
图3为本发明实施例一所述S1用于编写Python监控脚本的步骤示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,本实施例提供一种MySQL数据库监控脚本的实现方法,包括如下步骤:
S1用于编写Python监控脚本的步骤;
S2用于上传所述Python监控脚本,并进行配置的步骤;
S3用于修改所述Python监控脚本的执行权限的步骤;
S4用于执行所述述Python监控脚本的步骤;
S5用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的步骤。
本领域技术人员可以理解,本发明所提供的一种MySQL数据库监控脚本的实现方法是针对当前情况下兼容性差,安装繁琐,操作维护过程复杂,跨平台移植性低,跨***版本较少的缺陷,提供一种多平台支持,安装简单,维护容易,跨***版本较多的MySQL数据库监控的实现方法及***。
本发明所提供的一种MySQL数据库监控脚本的实现方法,具有以下有益效果:由于通过编写Python监控脚本,并将Python监控脚本上传后对其进行配置;修改Python监控脚本的执行权限后,执行Python监控脚本,最后将运行结果进行保存或者下载,其安装简单方便,易维护,跨平台一致性较好,跨***版本较多。
如图3所示,所述S1用于编写Python监控脚本的步骤包括:
S100用于加载脚本中用到的Python监控脚本,并判断是否加载成功,如是,执行步骤S101;否则执行步骤S110;
S101用于调用采集脚本的步骤;
S102用于读取my.cnf文件中数据配置信息,包括MySQL的端口号、安装目录、数据目录、套接字文件以及最大连接数,并判断是否读取成功,如是,执行步骤S103;否则执行步骤S123;
S103用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的步骤;
S104用于依次获取Key_buffer_read_hits读取命中率、Key_buffer_write_hits写入命中率、Key_buffer_used_pct重复使用率、Innodb_buffer_pool_hits命中率、Qcache_hits查询缓存命中率、Open_tables_pct打开表的百分率、Opened_tables打开表数、Thread_cache_hits命中率、QPS、TPS、Innodb_row_lock_current_waits行锁数、Innodb_row_lock_time_avg平均等待时间、Slow_queries慢查询量、Threads_connected应用连接数、Com_select次数、Com_update次数、Com_delete次数以及Com_insert次数进行查询的步骤;
S107用于计算Key_buffer_used_pct的值,公式是
S108用于计算Innodb_buffer_pool_hits的值,公式是
S119用于将上述计算变量数值并***mydb的db_status表的步骤;
S120用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,并将结果保存到slow_query_sql变量的步骤;
S121用于将S105至S120计算结果以json格式输出到文本文件的步骤;
S122用于将全局状态变量值写入上一次db状态数值文件的步骤;
S123用于结束Python监控脚本的编写的步骤。
本领域技术人员可以理解,Key_buffer_read_hits读取命中率是指键值在缓存中读取到,有即为命中,该值就是用于判断命中的百分比;Key_buffer_write_hits写入命中率是指键值在缓存中之前有没有写过,有即为命中,该值就是用于判断命中的百分比;Key_buffer_used_pct重复使用率是指缓存中的键被重复使用的百分比;Innodb_buffer_pool_hits命中率是指innodb存储引擎缓冲池读命中率;Qcache_hits为查询缓存命中率;Open_tables_pct打开表的百分率为打开的表占全库所有表的百分比;Opened_tables打开表数是指打开过多少表;Thread_cache_hits命中率为线程缓存的命中率;QPS(Query PerSecond)为每秒查询次数;TPS(Transactions Per Second)为每秒事务量;Innodb_row_lock_current_waits行锁数为当前等待的行锁数;Innodb_row_lock_time_avg为获取行锁的平均等待时间;Slow_queries慢查询量为查询速度慢的数量;Threads_connected应用连接数为当前有多少应用连接数;Com_select次数是指数据库启动以来,select语句执行了多少次;Com_update次数是指数据库启动以来,update语句执行了多少次;Com_delete次数是指数据库启动以来,删除语句执行了多少次;Com_insert次数是指数据库启动以来,***语句执行了多少次。本实施例中用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,在设定时间超过10分钟,将结果保存到slow_query_sql变量。
进一步,在本发明所提供的一种MySQL数据库监控脚本的实现方法中,所述S2用于上传所述Python监控脚本,并进行配置的步骤是将所述Python监控脚本上传到运行目录。
进一步,在本发明所提供的一种MySQL数据库监控脚本的实现方法中,所述S4用于执行所述述Python监控脚本的步骤是按生产环境要求,通过Crontab定时执行上述Python监控脚本查看当前MySQL数据库的状态。
实施例二
本实施例提供一种MySQL数据库监控脚本的实现***,包括:
用于编写Python监控脚本的模块;
用于上传所述Python监控脚本,并进行配置的模块;
用于修改所述Python监控脚本的执行权限的模块;
用于执行所述述Python监控脚本的模块;
用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的模块。
本领域技术人员可以理解,本发明所提供的一种MySQL数据库监控脚本的实现***是针对当前情况下兼容性差,安装繁琐,操作维护过程复杂,跨平台移植性低,跨***版本较少的缺陷,提供一种多平台支持,安装简单,维护容易,跨***版本较多的MySQL数据库监控的实现方法及***。
本发明所提供的一种MySQL数据库监控脚本的实现***,具有以下有益效果:由于通过编写Python监控脚本,并将Python监控脚本上传后对其进行配置;修改Python监控脚本的执行权限后,执行Python监控脚本,最后将运行结果进行保存或者下载,其安装简单方便,易维护,跨平台一致性较好,跨***版本较多。
进一步,所述用于编写Python监控脚本的模块包括:
用于调用采集脚本的模块;
用于读取my.cnf文件中数据配置信息,包括MySQL的端口号、安装目录、数据目录、套接字文件以及最大连接数,并判断是否读取成功,如是,执行用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的子模块;否则执行用于结束Python监控脚本的编写的子模块;
用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的子模块;
用于依次获取Key_buffer_read_hits读取命中率、Key_buffer_write_hits写入命中率、Key_buffer_used_pct重复使用率、Innodb_buffer_pool_hits命中率、Qcache_hits查询缓存命中率、Open_tables_pct打开表的百分率、Opened_tables打开表数、Thread_cache_hits命中率、QPS、TPS、Innodb_row_lock_current_waits行锁数、Innodb_row_lock_time_avg平均等待时间、Slow_queries慢查询量、Threads_connected应用连接数、Com_select次数、Com_update次数、Com_delete次数以及Com_insert次数进行查询的子模块;
用于计算Key_buffer_used_pct的值,公式是
用于计算Innodb_buffer_pool_hits的值,公式是
用于将上述计算变量数值并***mydb的db_status表的子模块;
用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,并将结果保存到slow_query_sql变量的子模块;
用于将上述计算结果以json格式输出到文本文件的子模块;
用于将全局状态变量值写入上一次db状态数值文件的子模块;
用于结束Python监控脚本的编写的子模块。
本领域技术人员可以理解,Key_buffer_read_hits读取命中率是指键值在缓存中读取到,有即为命中,该值就是用于判断命中的百分比;Key_buffer_write_hits写入命中率是指键值在缓存中之前有没有写过,有即为命中,该值就是用于判断命中的百分比;Key_buffer_used_pct重复使用率是指缓存中的键被重复使用的百分比;Innodb_buffer_pool_hits命中率是指innodb存储引擎缓冲池读命中率;Qcache_hits为查询缓存命中率;Open_tables_pct打开表的百分率为打开的表占全库所有表的百分比;Opened_tables打开表数是指打开过多少表;Thread_cache_hits命中率为线程缓存的命中率;QPS(Query PerSecond)为每秒查询次数;TPS(Transactions Per Second)为每秒事务量;Innodb_row_lock_current_waits行锁数为当前等待的行锁数;Innodb_row_lock_time_avg为获取行锁的平均等待时间;Slow_queries慢查询量为查询速度慢的数量;Threads_connected应用连接数为当前有多少应用连接数;Com_select次数是指数据库启动以来,select语句执行了多少次;Com_update次数是指数据库启动以来,update语句执行了多少次;Com_delete次数是指数据库启动以来,删除语句执行了多少次;Com_insert次数是指数据库启动以来,***语句执行了多少次。本实施例中用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,在设定时间超过10分钟,将结果保存到slow_query_sql变量的子模块。用于将上述计算结果以json格式输出到文本文件的子模块中所述计算结果是从用于获取上一次KEY_READS、读请求数的状态值,如上一次状态数值文件不存在,缺省将上一次的状态数值都置为0,计算Key_buffer_read_hits的值,公式是的子模块,至用于进行MySQL数据库中的长查询,查询当前数据执行时间超过10分钟的会话,并将结果保存到slow_query_sql变量的子模块。
进一步,在本发明所提供的一种MySQL数据库监控脚本的实现***中,所述用于上传所述Python监控脚本,并进行配置的模块是将所述Python监控脚本上传到运行目录的子模块。
进一步,在本发明所提供的一种MySQL数据库监控脚本的实现***中,所述用于执行所述述Python监控脚本的模块是按生产环境要求,通过Crontab定时执行上述Python监控脚本查看当前MySQL数据库的状态的子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种MySQL数据库监控脚本的实现方法,其特征在于,包括如下步骤:
S1用于编写Python监控脚本的步骤;
S2用于上传所述Python监控脚本,并进行配置的步骤;
S3用于修改所述Python监控脚本的执行权限的步骤;
S4用于执行所述述Python监控脚本的步骤;
S5用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的步骤。
2.如权利要求1所述的MySQL数据库监控脚本的实现方法,其特征在于,所述S1用于编写Python监控脚本的步骤包括:
S100用于加载脚本中用到的Python监控脚本,并判断是否加载成功,如是,执行步骤S101;否则执行步骤S110;
S101用于调用采集脚本的步骤;
S102用于读取my.cnf文件中数据配置信息,包括MySQL的端口号、安装目录、数据目录、套接字文件以及最大连接数,并判断是否读取成功,如是,执行步骤S103;否则执行步骤S123;
S103用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的步骤;
S104用于依次获取Key_buffer_read_hits读取命中率、Key_buffer_write_hits写入命中率、Key_buffer_used_pct重复使用率、Innodb_buffer_pool_hits命中率、Qcache_hits查询缓存命中率、Open_tables_pct打开表的百分率、Opened_tables打开表数、Thread_cache_hits命中率、QPS、TPS、Innodb_row_lock_current_waits行锁数、Innodb_row_lock_time_avg平均等待时间、Slow_queries慢查询量、Threads_connected应用连接数、Com_select次数、Com_update次数、Com_delete次数以及Com_insert次数进行查询的步骤;
S107用于计算Key_buffer_used_pct的值,公式是
S108用于计算Innodb_buffer_pool_hits的值,公式是
S119用于将上述计算变量数值并***mydb的db_status表的步骤;
S120用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,并将结果保存到slow_query_sql变量的步骤;
S121用于将S105至S120计算结果以json格式输出到文本文件的步骤;
S122用于将全局状态变量值写入上一次db状态数值文件的步骤;
S123用于结束Python监控脚本的编写的步骤。
3.如权利要求2所述的MySQL数据库监控脚本的实现方法,其特征在于,所述S2用于上传所述Python监控脚本,并进行配置的步骤是将所述Python监控脚本上传到运行目录。
4.如权利要求3所述的MySQL数据库监控脚本的实现方法,其特征在于,所述S4用于执行所述述Python监控脚本的步骤是按生产环境要求,通过Crontab定时执行上述Python监控脚本查看当前MySQL数据库的状态。
5.一种MySQL数据库监控脚本的实现***,其特征在于,包括:
用于编写Python监控脚本的模块;
用于上传所述Python监控脚本,并进行配置的模块;
用于修改所述Python监控脚本的执行权限的模块;
用于执行所述述Python监控脚本的模块;
用于查看上述Python监控脚本的运行结果,并将其执行结果进行保存或下载的模块。
6.如权利要求5所述的MySQL数据库监控脚本的实现***,其特征在于,所述用于编写Python监控脚本的模块包括:
用于调用采集脚本的模块;
用于读取my.cnf文件中数据配置信息,包括MySQL的端口号、安装目录、数据目录、套接字文件以及最大连接数,并判断是否读取成功,如是,执行用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的子模块;否则执行用于结束Python监控脚本的编写的子模块;
用于获取全局状态变量,***变量,复制状态变量,从库对应主库状态变量值的子模块;
用于依次获取Key_buffer_read_hits读取命中率、Key_buffer_write_hits写入命中率、Key_buffer_used_pct重复使用率、Innodb_buffer_pool_hits命中率、Qcache_hits查询缓存命中率、Open_tables_pct打开表的百分率、Opened_tables打开表数、Thread_cache_hits命中率、QPS、TPS、Innodb_row_lock_current_waits行锁数、Innodb_row_lock_time_avg平均等待时间、Slow_queries慢查询量、Threads_connected应用连接数、Com_select次数、Com_update次数、Com_delete次数以及Com_insert次数进行查询的子模块;
用于计算Key_buffer_used_pct的值,公式是
用于计算Innodb_buffer_pool_hits的值,公式是
用于将上述计算变量数值并***mydb的db_status表的子模块;
用于进行MySQL数据库中的长查询,查询当前数据执行时间超过设定时间的会话,并将结果保存到slow_query_sql变量的子模块;
用于将上述计算结果以json格式输出到文本文件的子模块;
用于将全局状态变量值写入上一次db状态数值文件的子模块;
用于结束Python监控脚本的编写的子模块。
7.如权利要求6所述的MySQL数据库监控脚本的实现***,其特征在于,所述用于上传所述Python监控脚本,并进行配置的模块是将所述Python监控脚本上传到运行目录的子模块。
8.如权利要求7所述的MySQL数据库监控脚本的实现***,其特征在于,在本发明所提供的一种MySQL数据库监控脚本的实现***中,所述用于执行所述述Python监控脚本的模块是按生产环境要求,通过Crontab定时执行上述Python监控脚本查看当前MySQL数据库的状态的子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010131496.1A CN111459905A (zh) | 2020-02-28 | 2020-02-28 | MySQL数据库监控脚本的实现方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010131496.1A CN111459905A (zh) | 2020-02-28 | 2020-02-28 | MySQL数据库监控脚本的实现方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459905A true CN111459905A (zh) | 2020-07-28 |
Family
ID=71682450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010131496.1A Pending CN111459905A (zh) | 2020-02-28 | 2020-02-28 | MySQL数据库监控脚本的实现方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459905A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567531A (zh) * | 2011-12-30 | 2012-07-11 | 互动在线(北京)科技有限公司 | 一种通用的轻量级数据库状态监控方法 |
CN102567185A (zh) * | 2011-12-31 | 2012-07-11 | 北京新媒传信科技有限公司 | 一种应用服务器的监控方法 |
CN104063301A (zh) * | 2014-07-02 | 2014-09-24 | 网神信息技术(北京)股份有限公司 | 监控方法和装置 |
CN104503880A (zh) * | 2014-12-16 | 2015-04-08 | 新余兴邦信息产业有限公司 | 一种MySQL数据库监控选项脚本的实现方法及装置 |
CN104657250A (zh) * | 2014-12-16 | 2015-05-27 | 无锡华云数据技术服务有限公司 | 一种对云主机进行性能监控的监控方法 |
CN106844163A (zh) * | 2017-03-16 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种数据库主从同步状态监控的方法以及装置 |
CN109376139A (zh) * | 2018-08-15 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 数据库集中监控方法、计算机装置及存储介质 |
CN110515799A (zh) * | 2019-08-15 | 2019-11-29 | 浙江万朋教育科技股份有限公司 | 基于python语言的MySQL监控***及实现方法 |
-
2020
- 2020-02-28 CN CN202010131496.1A patent/CN111459905A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567531A (zh) * | 2011-12-30 | 2012-07-11 | 互动在线(北京)科技有限公司 | 一种通用的轻量级数据库状态监控方法 |
CN102567185A (zh) * | 2011-12-31 | 2012-07-11 | 北京新媒传信科技有限公司 | 一种应用服务器的监控方法 |
CN104063301A (zh) * | 2014-07-02 | 2014-09-24 | 网神信息技术(北京)股份有限公司 | 监控方法和装置 |
CN104503880A (zh) * | 2014-12-16 | 2015-04-08 | 新余兴邦信息产业有限公司 | 一种MySQL数据库监控选项脚本的实现方法及装置 |
CN104657250A (zh) * | 2014-12-16 | 2015-05-27 | 无锡华云数据技术服务有限公司 | 一种对云主机进行性能监控的监控方法 |
CN106844163A (zh) * | 2017-03-16 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种数据库主从同步状态监控的方法以及装置 |
CN109376139A (zh) * | 2018-08-15 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 数据库集中监控方法、计算机装置及存储介质 |
CN110515799A (zh) * | 2019-08-15 | 2019-11-29 | 浙江万朋教育科技股份有限公司 | 基于python语言的MySQL监控***及实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152500B2 (en) | Read mostly instances | |
US9213740B2 (en) | System and methodology for automatic tuning of database query optimizer | |
EP2797013B1 (en) | Database update execution according to power management schemes | |
US20090307329A1 (en) | Adaptive file placement in a distributed file system | |
US20080183684A1 (en) | Caching an Access Plan for a Query | |
WO2020224216A1 (zh) | 大批量数据处理方法、装置、计算机设备及存储介质 | |
WO2019109854A1 (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
CN111737227B (zh) | 数据修改方法及*** | |
WO2016169237A1 (zh) | 数据处理方法及装置 | |
US8407713B2 (en) | Infrastructure of data summarization including light programs and helper steps | |
CN105718474A (zh) | 用于对MySQL数据库的并发操作进行控制的方法及装置 | |
US8458511B2 (en) | Fault isolation using code paths | |
CN112115150B (zh) | 嵌入式内存数据库的数据管理方法、终端设备及介质 | |
JP2007522559A (ja) | データベースシステムにおけるラージオブジェクトインフラストラクチャのためのシステムおよび方法 | |
CN111459905A (zh) | MySQL数据库监控脚本的实现方法及*** | |
CN115984022B (zh) | 分布式支付***统一对账方法和装置 | |
WO2020208149A1 (en) | Enterprise resource planning system, server and supervision method of sql queries in such a system or server | |
US8621085B2 (en) | Methods, systems, and computer program products for managing and utilizing connections between an application server and an enterprise information system based on a daytona architecture | |
CN116467310A (zh) | 无效索引的无锁标记方法、存储介质和计算机设备 | |
EP3082050A1 (en) | Mass data fusion storage method and system | |
CN115934272A (zh) | 一种联机批量任务处理方法及装置 | |
CN114153438A (zh) | 一种api自动生成*** | |
CN113590637A (zh) | 一种多进程共享数据库表更新方法及装置、数据库*** | |
US20080016029A1 (en) | Optimizing a query to a database | |
WO2023019981A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |
|
RJ01 | Rejection of invention patent application after publication |