您的位置:首页 > 数据库 > SQL

MySQL 运维常用工具之mysqladmin

2018-02-10 00:00 274 查看
一、作用

mysqladmin用于 Shell 界面下进行MySQL管理,同时可以检查MySQL的配置和状态等,也可以用于创建删除数据库等其它功能。最常用的场景在于监控MySQL的各种使用的情况。例如buffer pool的使用率,buffer pool的大小,QPS TPS 等

语法:

mysqladmin [options] command [command-arg] [command [command-arg]] …

二、常用参数

1.–i

作用和—sleep一样,表示两次输出的时间间隔,它需要和其他具体的命令一起执行才能生效





2.–r

该参数只能和 –i参数以及—ext参数一起使用,作用是将最后一次采集到的值,和前一次的值相减。

这是不加 r参数的结果,显示出来的是累计总查询的次数。



加上-r参数后则显示为两次采集之间的差值



3.debug:

通知实例,将debug信息写入到error log里,例如我们想要知道mysql此时在干什么事情,咋做,先tail -f 你的error log,然后使用 mysqladmin 加参数debug,这样就可以实时的将Mysql实例执行的内容输出到error log,包含了进程,锁,堆栈等非常非常多的信息。



4.status:



打印服务器的摘要信息,包括

Uptime:MySQL已经启动多少秒

Threads:目前有多少个客户连接

Questions:有史以来总共有多少个查询

Slow queries:有史以来总共有多少个慢查询

Opens:有史以来打开过多少张表

Flush tables:执行过多少次Flush命令

Open tables:目前有几张表处于打开的状态

5.extended-status:

同参数-ext,打印详细的服务器信息,是status参数的超集,具体输出信息就不一一讲了,主要有用的就是那几个关于内存使用情况的列



6.processlist:

这个跟在mysql里执行命令show processlist效果是一样的,通常结合参数 –i 使用



7.ping:

检查MySQL实例是否可用,如果显示mysqld is alive则表示可用。



三、日常用法

组合输出法:

mysqladmin -P3306 -uroot -p123456 -h127.0.0.1 -r -i 1 ext |\

awk -F”|” \

“BEGIN{ count=0; }”\

‘{ if($2 ~ /Variable_name/ && ((++count)%20 == 1)){\

print "----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --";\

print "---Time---|---QPS---|select insert update delete|  read inserted updated deleted|   logical    physical";\


}\

else if (2 ~ /Queries/){queries=2 ~ /Queries/){queries=3;}\

else if (2 ~ /Com_select /){com_select=2 ~ /Com_select /){com_select=3;}\

else if (2 ~ /Com_insert /){com_insert=2 ~ /Com_insert /){com_insert=3;}\

else if (2 ~ /Com_update /){com_update=2 ~ /Com_update /){com_update=3;}\

else if (2 ~ /Com_delete /){com_delete=2 ~ /Com_delete /){com_delete=3;}\

else if (2 ~ /Innodb_rows_read/){innodb_rows_read=2 ~ /Innodb_rows_read/){innodb_rows_read=3;}\

else if (2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=3;}\

else if (2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=3;}\

else if (2 ~ /Innodb_rows_updated/){innodb_rows_updated=2 ~ /Innodb_rows_updated/){innodb_rows_updated=3;}\

else if (2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=3;}\

else if (2 ~ /Innodb_buffer_pool_reads/){innodb_phr=2 ~ /Innodb_buffer_pool_reads/){innodb_phr=3;}\

else if ($2 ~ /Uptime / && count >= 2){\

printf(” %s |%9d”,strftime(“%H:%M:%S”),queries);\

printf(“|%6d %6d %6d %6d”,com_select,com_insert,com_update,com_delete);\

printf(“|%6d %8d %7d %7d”,innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted);\

printf(“|%10d %11d\n”,innodb_lor,innodb_phr);\

}}’



参考文档

http://www.orczhou.com/index.php/2014/03/some-tricky-about-mysqladmin-extended-status/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: