文档章节

MYSQL之InnoDB Monitors

zjg23
 zjg23
发布于 2017/08/09 14:49
字数 998
阅读 16
收藏 0

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。需要重启设置对应的参数,才能使用监控生效。

参考:http://yeshaoting.cn/article/database/%E5%BC%80%E5%90%AFInnoDB%E7%9B%91%E6%8E%A7/index.html

© 著作权归作者所有

共有 人打赏支持
zjg23
粉丝 19
博文 124
码字总数 41550
作品 0
济南
程序员
私信 提问
mysql 开发进阶篇系列 7 锁问题

1 .获取innodb行锁争用情况   1.1 通过检查innodbrowlock状态变量来分析系统上的行锁的争夺情况 SHOW STATUS LIKE 'innodbrowlock%'     通过innodbrowlockwaits 和 innodbrowlockavg...

花阴偷移
07/24
0
0
mysql innodb断电恢复,不支持innodb,表空间丢失

mysql innodb断电恢复,不支持innodb,表空间丢失 一、需求 在办公网络中有一测试pc,跑mysql服务,周末大厦停电,导致mysql 异常; 具体表象为不支持innodb Current database: kkyoo_ucente...

xiaomaimai
06/26
0
0
mysql自动重启 有时重启后程序连接不上求教啊

160108 9:10:46 InnoDB: Started; log sequence number 0 6784661 160108 9:10:46 [Note] Event Scheduler: Loaded 0 events 160108 9:10:46 [Note] /usr/libexec/mysqld: ready for connect......

hphper
2016/01/18
352
0
CentOS下如何完全卸载MySQL?解决卸载不干净的问题

CentOS下如何完全卸载MySQL?解决卸载不干净的问题 系统:CentOS 6.5,MySQL:MySql 5.6 这里主要解决使用rpm安装的卸载问题,安装方法见:CentOS安装mysql*.rpm提示conflicts with file fro...

天下杰论
2015/06/13
0
1
MYSQL之一步到位之InnoDB

快速认识InnoDB InnoDB是MySQL下使用最广泛的引擎,它是基于MySQL的高可扩展性和高性能存储引擎,从5.5版本开始,它已经成为了默认引擎。 InnODB引擎支持众多特性: a) 支持ACID,简单地说就...

SANSOM
2013/04/23
0
1

没有更多内容

加载失败,请刷新页面

加载更多

转换 bytes 为 kb/mb/gb/tb/pb…

智能转换 bytes 为 kb/mb/gb/tb/pb… 用到了 math 模块中的一些函数 #!/usr/bin/env python# -*- coding: utf-8 -*-"""智能转换 bytes 为 kb/mb/gb/tb/pb..."""import mathdef conv...

郭恩洲_OSC博客
14分钟前
1
0
Mysql导出sql语句的方法及可能遇到的mysqldump: command not found

解决办法: 打开terminal    输入vi ~/.bash_profile    添加如下三行代码:    #mysql  PATH=$PATH:/usr/local/mysql/bin  export    保存并退出...

Liens
14分钟前
0
0
一文读懂,深入浅出 RPC框架

RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显...

别打我会飞
15分钟前
0
0
sed关于打印

p命令用来打印文本行 跟替换命令中的p标记类似,p命令可以打印sed编辑器输出中的一行。 我们这主要还是用,下面的测试吧 我们可以试一下 echo 'hello world,xin!' | sed 'p' 如果我还是用tes...

woshixin
26分钟前
0
0
【转载】缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑...

xiaomin0322
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部