innotop是一个mysql数据库实时监控工具,其功能强大,信息种类繁多,很能体现数据库的状态.

    它实际上是一个perl脚本,整合show status/show variables/show engine innodb status输出结果并进行统计和格式化输出.


安装:

yum install -y innotop


用法:(1.8以上版本才开始支持远程连接)
innotop -u <用户名> -p <密码> -h <连接地址> -P <端口号> -d <刷新时间>


界面说明:(交互式控制,非固定界面,有多个页面可以切换)
shift+B:显示有关InnoDB缓冲池,页面统计,插入缓冲,自适应哈希索引。这些数据来自展示InnoDB的状态。
shift+C:汇总表通过提取STATUS_VARIABLES变量。变量必须是数字,必须匹配给定的cmd_filter配置变量的前缀。百分比列是在表中的所有变量总数的百分比,所以你可以看到变数的相对比例。默认的前缀是“Com_”。你可以选择的's'键改变过滤前缀。
shift+D:在过去InnoDB的死锁中涉及的事务。第二个表显示等待事务。
shift+F:显示最后InnoDB的外键的错误信息,没有就不显示
shift+I:显示InnoDB的I/O信息,包括I/O线程,挂起的I/O,文件I/O,日志统计。
shift+L:显示了当前锁的信息。目前只支持InnoDB,并在默认情况下你只看到那些锁等待的事务
shift+M:输出了SHOW SLAVE STATUS和SHOW MASTER STATUS的信息成3张表,前两个显示从的sql和I/O的状态,最后显示主的状态
shift+O:来自SHOW OPEN TABLES命令的输出,默认情况下,筛选出正由一个或多个查询使用的表,这样可以快速得到哪些表是'热'。也可以猜测哪些表可能被锁。
shift+Q:此模式显示从SHOW FULL PROCESSLIST的信息,就像mytop的查询列表模式。有一个信息头,显示有关服务器的一般状态信息。可以用'h'切换开或关。默认情况下,innotop隐藏不活动的进程和它自己的进程。您可以切换和关闭这些用'i'和'a'键。按e并输入thread ID显示执行计划或者按f显示完整sql语句,或者按o显示系统优化过的语句.
shift+R:显示InnoDB行操作、row operation miscellaneous、信号、innodb等待信息
shift+S:每秒查询的统计信息。您可以显示绝对值之间,或增量值。's' 键是没一定时间打印数字到前面.'g' 键是打印图像.'v' 键是以一个表格的形式显示,定期刷新值。
shift+T:从innodb监视器中输出事务。你可以杀掉一个查询或进程,通过'k'和'x'键,也可以explain一个查询,通过'e'或'f'键。不会输出所有的查询事务,如果查询太长被截断。信息头可以用'h'键打开或关闭,默认情况下,innotop隐藏不活动的进程和它自己的进程。您可以切换和关闭这些用'i'和'a'键。


参数说明:
innotop --help
-c    指定配置文件(指定之后就不用写用户密码和地址了,等于常用查询)
-d    指定刷新时间,以秒为单位
-h    指定连接地址,可以是ip也可以是域名
-n    变成非交互式,输出用制表符分隔字段(可以让监控脚本调用提取数值)
-p    指定连接地址的登录密码
-P    指定连接地址的登录端口
-S    指定连接的socket文件地址(等于查本机)
-t    以-n模式打印时间戳(1:每次迭代; 2:每行)
-u    指定连接地址的登录用户名
--version    查看版本号
-----------------------------------------------------------------------------------
连接成功后 输入?可以进入帮助:
Switch to a different mode:(上面用法已经列举了)
   B  InnoDB Buffers           I  InnoDB I/O Info      Q  Query List
   C  Command Summary   L  Locks                      R  InnoDB Row Ops
   D  InnoDB Deadlocks     M  Replication Status  S  Variables & Status
   F  InnoDB FK Err            O  Open Tables           T  InnoDB Txns
Actions:
   a  Toggle the innotop process(切换innotop进程)    k  Kill a query's connection(杀死一查询的连接)
   c  Choose visible columns    (可见列选择)         n  Switch to the next connection(切换到下一个连接)
   d  Change refresh interval   (更改刷新间隔)       p  Pause innotop (暂停innotop)
   e  Explain a thread's query  (说明线程的查询)     q  Quit innotop  (退出)
   f  Show a thread's full query(显示线程的完整查询) r  Reverse sort order (反向排序)
   h  Toggle the header on and off(头切换和关闭)     s  Change the display's sort column(更改显示的排序列)
   i  Toggle idle processes       (切换空闲进程)     x  Kill a query  (杀死一查询)
Other:
 TAB  Switch to the next server group   /  Quickly filter what you see
   !  Show license and warranty         =  Toggle aggregation
   #  Select/create server groups       @  Select/create server connections
   $  Edit configuration settings       \  Clear quick-filters