博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL之InnoDB Monitors
阅读量:5826 次
发布时间:2019-06-18

本文共 2441 字,大约阅读时间需要 8 分钟。

  hot3.png

InnoDB Monitors简介及分类

MYSQL提供一套INNODB监控机制,用于周期性(每15钞)输出INNODB运行相关状态(INNODB运行状态、表空间状态、表状态等)到mysqld服务标准错误输出。

INNODB监控机制目前主要提供如下四类监控:

  • 标准监控(Standard InnoDB Monitor):监视活动事务持有的表锁、行锁;事务锁等待;线程信号量等待;文件IO请求;buffer pool统计信息;InnoDB主线程purge和change buffer merge活动。
  • 锁监控(InnoDB Lock Monitor):提供额外的锁信息。
  • 表空间监控(InnoDB Tablespace Monitor):显示共享表空间中的文件段以及表空间数据结构配置验证。
  • 表监控(InnoDB Table Monitor):显示内部数据字典的内容。

注:INNODB标准监控和锁监控,也可以通过命令:show engine innodb status输出到控制台。

监控内容一般输出到mysql error log里错误日志的位置:

mysql> select @@log_error;+---------------------+| @@log_error         |+---------------------+| /var/log/mysqld.log |+---------------------+1 row in set (0.00 sec)

InnoDB Monitors的分类及开关方法

四类监控开启与关闭方法,一言以蔽之,主要是通过创建系统可识读的特殊表名来完成。特别地,除表空间(InnoDB Tablespace Monitor)监控和表监控(InnoDB Table Monitor)外,其他二类监控还可能通过修改系统参数来完成。基于系统表的方式和基于系统参数的方式,只要使用二者其中一种方式开启监控即可。

1. 标准监控(Standard InnoDB Monitor)

基于系统表:innodb_monitor
mysql会通过检查是否存在名为innodb_monitor的数据表,来判断是否开启标准监控,并打印日志。
需要开启,则创建表;需要关闭,则删除表。

CREATE TABLE innodb_monitor (a INT) ENGINE=INNODB;DROP TABLE innodb_monitor;

基于系统参数:innodb_status_output

自mysql 5.6.16版本之后,可以通过设置系统参数(innodb_status_output)的方式开启或者关闭标准监控。

set GLOBAL innodb_status_output=ON;set GLOBAL innodb_status_output=OFF;

2. 开启锁监控(InnoDB Lock Monitor)

基于系统表:innodb_lock_monitor
mysql会通过检查是否存在名为innodb_lock_monitor的数据表,来判断是否开启锁监控,并打印日志。
需要开启,则创建表;需要关闭,则删除表。

CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB;DROP TABLE innodb_lock_monitor;

基于系统参数:innodb_status_output_locks

自mysql 5.6.16版本之后,可以通过设置系统参数(innodb_status_output_locks)的方式开启或者关闭标准监控。

set GLOBAL innodb_status_output=ON;set GLOBAL innodb_status_output_locks=ON;set GLOBAL innodb_status_output_locks=OFF;

注:前提需要开启 innodb_status_output

3. 开启表空间监控(InnoDB Tablespace Monitor)

基于系统表:innodb_tablespace_monitor
mysql会通过检查是否存在名为innodb_tablespace_monitor的数据表,来判断是否开启表空间监控,并打印日志。
需要开启,则创建表;需要关闭,则删除表。

CREATE TABLE innodb_tablespace_monitor (a INT) ENGINE=INNODB;DROP TABLE innodb_tablespace_monitor;

注:表空间监控暂不支持通过参数方式配置,并且未来会被废弃。

4. 开启表监控(InnoDB Table Monitor)

mysql会通过检查是否存在名为innodb_table_monitor的数据表,来判断是否开启表监控,并打印日志。
需要开启,则创建表;需要关闭,则删除表。

CREATE TABLE innodb_table_monitor (a INT) ENGINE=INNODB;DROP TABLE innodb_table_monitor;

注:表监控暂不支持通过参数方式配置,并且未来会被废弃。

附录

需要特别注意的一点是:mysql服务重启后,需要重启开启相应监控,才会生效。换句话说,服务重启后,之前配置的所有监控都被复位,处于关闭状态。

基于系统表方式开启的监控,在mysql服务重启后,即使表存在,监控也不会生效。需要重启drop表,再create表,才能使监控生效。

基于系统参数方式开启的监控,在mysql服务重启后,相关系统参数值都是OFF。需要重启设置对应的参数,才能使用监控生效。

参考:

转载于:https://my.oschina.net/zjg23/blog/1505267

你可能感兴趣的文章
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
李娜入选国际网球名人堂 成亚洲第一人
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
我从过去八个月的AI公司面试中学到了什么?
查看>>
深入探究Immutable.js的实现机制(一)
查看>>
jsp改造之sitemesh注意事项
查看>>
智能硬件的时代,嵌入式是否已经日薄西山
查看>>
SpringBoot-Shiro使用
查看>>
iOS 9.0之后NSString encode方法替换
查看>>
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
CRM Transaction处理中的权限控制
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>