Innotop简单介绍

 

Innotop介绍

 

Innotop是一模一样缓缓Perl脚本编写、开源、功能强大的MySQ的监控工具,它经过文件模式(命令行模式)监控,功能强大,配置简单,易于使等等特色。Innotop这个项目在https://github.com/innotop/innotop上。官方的介绍如下:

 

innotop
is a ‘top’ clone for MySQL with many features and flexibility.

·        
completely
customizable; it even has a plugin interface

·        
monitors
many servers at once and can aggregate across them

The
manual is embedded into the program in Perl’s POD format, so it should
be available through perldoc and man, and is still available online on
the previous hosting (the project moved from google code to git): http://innotop.googlecode.com/svn/html/index.html

 

 

Innotop安装

 

 

以安前先使确定你的系设置了Time::HiRes,Term::ReadKey,DBI,DBD::mysql这四个包。当然在实行perl
Makefile.PL命令是会见检查这些靠项,如下所示:

 

 

[root@DB-Server ~]# cd /tmp

[root@DB-Server tmp]# unzip innotop-master.zip 

[root@DB-Server tmp]# cd innotop-master/

[root@DB-Serverinnotop-master]# ls

Changelog  COPYING  innotop  innotop.spec  INSTALL  Makefile.PL  MANIFEST  README.md  snapshot_queries.png  t

[root@DB-Server innotop-master]# perl Makefile.PL 

Checking if your kit is complete...

Looks good

Warning: prerequisite DBD::mysql 1 not found.

Warning: prerequisite Term::ReadKey 2.1 not found.

Writing Makefile for innotop

[root@DB-Server innotop-master]# 

[root@DB-Server innotop-master]# yum search ReadKey

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * epel: ftp.cuhk.edu.hk

================================== N/S matched: ReadKey ==========================================

perl-TermReadKey.x86_64 : A perl module for simple terminal control

 

  Name and summary matches only, use "search all" for everything.

[root@DB-Server innotop-master]# 

[root@DB-Server innotop-master]#yum install perl-TermReadKey

[root@DB-Server innotop-master]#yum install perl-DBD-MySQL

[root@DB-Server innotop-master]#  perl Makefile.PL 

Writing Makefile for innotop

[root@DB-Server innotop-master]# make

cp innotop blib/script/innotop

/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/innotop

Manifying blib/man1/innotop.1

[root@DB-Server innotop-master]# make install

Installing /usr/local/share/man/man1/innotop.1

Installing /usr/local/bin/innotop

Appending installation info to /usr/lib64/perl5/perllocal.pod

[root@DB-Server innotop-master]# 

 

 

装好Innotop后,有或采取的时,会逢下面异常信息

 

[root@gettestlnx02 innotop-master]# innotop -u root -p123456

localhost PROCESSLIST_NO_IS: install_driver(mysql) failed: Can't load '/usr/lib64/perl5/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.16: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 200.

 at (eval 566) line 3

Compilation failed in require at (eval 566) line 3.

Perhaps a required shared library or dll isn't installed where expected

 at /usr/local/bin/innotop line 7737

 

 

此貌似是绝非perl-DBD-MySQL组件,或者用重新安装perl-DBD-MySQL组件即可(为什么重装即可解决的因暂未知底,没有深入去研究此)。

 

 #yum remove
perl-DBD-MySQL

 #yum install
perl-DBD-MySQL

 

 

 

 

Innotop使用

 

 

Innotop的提携信息可透过下几乎栽方法:

 

innotop
–help

man
innotop

perldoc
innotop

 

[oracle@DB-Server admin]$ innotop --help

Usage: innotop <options> <innodb-status-file>

 

  --askpass          Prompt for a password when connecting to MySQL #当连接MySQL时提示输入密码

  --[no]color   -C   Use terminal coloring (default)     #使用终端颜色(默认)

  --config      -c   Config file to read              #读配置文件

  --count            Number of updates before exiting

  --delay       -d   Delay between updates in seconds    #多少秒更新一次

  --help             Show this help message          #显示帮助信息

  --host        -h   Connect to host              #连接的主机名

  --[no]inc     -i   Measure incremental differences

  --mode        -m   Operating mode to start in

  --nonint      -n   Non-interactive, output tab-separated fields

  --password    -p   Password to use for connection     #连接的密码

  --port        -P   Port number to use for connection     #连接的端口号

  --skipcentral -s   Skip reading the central configuration file

  --socket      -S   MySQL socket to use for connection #Scoket位置

  --spark            Length of status sparkline (default 10)

  --timestamp   -t   Print timestamp in -n mode (1: per iter; 2: per line)

  --user        -u   User for login if not current user  #连接MySQL的用户

  --version          Output version information and exit #输出Innotop版本信息并退出

  --write       -w   Write running configuration into home directory if no config files were loaded

 

innotop is a MySQL and InnoDB transaction/status monitor, like 'top' for

MySQL.  It displays queries, InnoDB transactions, lock waits, deadlocks,

foreign key errors, open tables, replication status, buffer information,

row operations, logs, I/O operations, load graph, and more.  You can

monitor many servers at once with innotop. 

 

 

innotop
-u <username> -p <password> -h <hostname> -P
<port>

 

如若密码被产生特殊字符,最好用对引号将密码括起来,否则老是提示而用使用密码连接数据库。

 

innotop
-uroot -pllo9kc&sq@2eq

 

innotop
-uroot -p”llo9kc&sq@2eq”

 

图片 1

 

 

连续成功后
输入?可以进去帮助, 另外注意快捷键的高低写,
Q表示查询列表,而q表示退出。在不同模式切换可以动用SHIFT +
对许字母(也就是那个写字母在模式间切换)

 

 

图片 2

 

 

Switch to a different mode:

   A  Dashboard         I  InnoDB I/O Info     Q  Query List

   B  InnoDB Buffers    K  InnoDB Lock Waits   R  InnoDB Row Ops

   C  Command Summary   L  Locks               S  Variables & Status

   D  InnoDB Deadlocks  M  Replication Status  T  InnoDB Txns

   F  InnoDB FK Err     O  Open Tables         U  User Statistics

 

Actions:  

   d  Change refresh interval (更改刷新间隔)           q  Quit innotop (退出innotop工具)

   k  Kill a query's connection (杀死一查询连接)       r  Reverse sort order (反向排序)

   n  Switch to the next connection(切换到下一个连接)  s  Choose sort column (选择排序字段)

   p  Pause innotop (停止innotop)                       x  Kill a query(杀死查询)

 

Other:

 TAB  Switch to the next server group  切换到另外一组服务器       /  Quickly filter what you see   快速过滤你所见信息

   !  Show license and warranty        显示License等相关信息       =  Toggle aggregation

   #  Select/create server groups      选择或创建服务器组       @  Select/create server connections 选择或创建服务器连接

   $  Edit configuration settings      编辑配置设置信息       \  Clear quick-filters           清除快速过滤设置

Press any key to continue

 

上及交互式界面后,点击@键,就会跻身及连年配置界面,如下截图所示:

 

图片 3

 

 

布局好了晚,就得采用Inntop远程监控MySQL服务器了,那么一旦监控多单MySQL,如何切换为?
SHIF +@就可以入选择啊一个服务器

 

_____________________
Choose from _____________________

DB-Server  
DBI:mysql:;host=10.20.57.15;port=3306   

localhost  
DBI:mysql:;;mysql_read_default_group=client

 

Choose
connections for this mode:

 

以Choose
connections for this mode:
输入localhost按掉车键就切换到本机,如果输入DB-Server按掉车键就切换至DB-Server服务器。不过这种措施发出一个弊端就是,Innotop退出后,这些信就是会少,需要重新配置,可以通过部署文件来保存。

 

默认情况下是从来不innotop.conf这个布局文件之,你得用innotop
–write进入相互界面,提示您需要输入密码,选择q退出即可,此时即使见面于当前目录生成.innotop/innotop.conf配置文件

 

 

[root@DB-Server
~]# innotop –write

[root@DB-Server
~]# find / -name “innotop.conf”

/root/.innotop/innotop.conf

[root@DB-Server
~]# ls .innotop/

innotop.conf  plugins

[root@DB-Server
~]# vi /root/.innotop/innotop.conf

 

图片 4

 

[connections]

 

localhost=user=root have_user=1 have_pass=1 dsn=DBI:mysql:;;mysql_read_default_group=client savepass= dl_table=test.innotop_dl

mydb=user=root have_user=1 pass="xxxxxx" have_pass=1 dsn=DBI:mysql:;host=192.168.7.218;port=3306 savepass=1 dl_table=

 

[/connections]

 

[active_connections]

 

A=localhost

B=mydb

C=

D=

F=

..

 

可以安排文件之中添加需要监控的MySQL主机,然后在active_connections下设置相应的MySQL服务器,如下所示,

 

图片 5

 

localhost没有点名密码,所以默认连接受mydb这令服务器了。savepass=1
表示保留密码,savepass=0代表未保留密码。如果是因为安全着想,不要设置savepass参数,它默认为0。

 

图片 6

 

 

 

本文为无打算详细描述如何以Innotop的依次职能,这个其实有点多,下面简单的牵线两只例证:

 

1:在Query
List模式下(SHIFT+Q),你可视正在尽的SQL语句执行了多长时间,如下所示,我构造了一个实施时间较丰富之事例,那么在Query
List模式下,你就可以看到剧本的实践时长,当然,执行了了晚,这里就是看不到相关消息了。

 

 

图片 7

 

 

2:另外,在这篇博客中MySQL线程处于Waiting
for table
flush的解析,也介绍了Innotop使用的一个案例,如下所示:

 

于实验被运用lock
table read这种状态,这种对话或处于Sleep状态,而且它呢不见面并发于show
engine innodb status \G命令的出口信息中。 即使show open tables where
in_use
>=1;能找到是那么张表被lock住了,但是力不从心稳定及实际的线程(连接),其实这是一个讨厌的问题。但是inntop这款利器就可以稳定到,如下所示,线程17沿住了表test,在innotop里面纵使可知稳定到是线程17。

 

图片 8

 

图片 9

 

Innotop的装置使用非常简单,工具功能吗够呛强大,关键还在采用工具的丁能否物尽其用,能够针对一一指标深入了解,这样才会便捷的分析问题、定位问题,解决问题。后续要积累了一些利用体验和案例,再详尽总结一下是家伙!

 

 

 

参考资料:

 

https://www.percona.com/blog/2013/10/14/innotop-real-time-advanced-investigation-tool-mysql/

http://www.cnblogs.com/ivictor/p/5101506.html

 

网站地图xml地图