MySQL DBA运维工具之mysqladmin

一.mysqladmin简介

mysqladmin是mysql自带的一个管理程序,可以查看MySQL的状态,配置信息,创建删除表,设置修改密码,切割日志,关闭服务等功能,今天,主要介绍一下通过mysqladmin查看mysql状态信息的一些用法,方便DBA实时获取MySQL数据库运行情况。

二.高级使用方法

此处借鉴https://www.orczhou.com/index.php/2014/03/some-tricky-about-mysqladmin-extended-status/此文章进行记录。使用extended-status,-i,-r参数,配合grep,awk命令,实现了和Orzdba几乎相似的功能,值得借鉴和思考。使用mysqladmin extended-status命令可以实时获取MySQL的所有性能指标,不过这些值都是累加结果,如果想要获得递增值,需要加上-r(--relative)参数,配合参数-i(--sleep)就可以指定刷新的频率,配合grep命令,过滤我们想要的状态参数,使用awk做流程控制和字段排版,切割,可以灵活的输出我们想要的信息。

示例一:

mysqladmin -uroot -p -h127.0.0.1 -P3357 -r -i 1 ext |\
awk -F"|" '{\
  if($2 ~ /Variable_name/){\
    print " <-------------    "  strftime("%H:%M:%S") "    ------------->";\
  }\
  if($2 ~ /Questions|Queries|Innodb_rows|Com_select |Com_insert |Com_update |Com_delete |Innodb_buffer_pool_read_requests/)\
    print $2 $3;\
}'

输出结果如下:

<-------------    18:17:15    ------------->
 Com_delete                                     192                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 Com_insert                                     190                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 Com_select                                     2679                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
 Com_update                                     381                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 Innodb_buffer_pool_read_requests               33485                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
 Innodb_rows_deleted                            192                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 Innodb_rows_inserted                           190                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 Innodb_rows_read                               78052                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
 Innodb_rows_updated                            381                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
 Queries                                        3830                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
 Questions                                      3830  

每秒输出一次状态信息。

示例二:

mysqladmin -P3357 -uroot -p -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=$3;}\
else if ($2 ~ /Com_select /){com_select=$3;}\
else if ($2 ~ /Com_insert /){com_insert=$3;}\
else if ($2 ~ /Com_update /){com_update=$3;}\
else if ($2 ~ /Com_delete /){com_delete=$3;}\
else if ($2 ~ /Innodb_rows_read/){innodb_rows_read=$3;}\
else if ($2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=$3;}\
else if ($2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=$3;}\
else if ($2 ~ /Innodb_rows_updated/){innodb_rows_updated=$3;}\
else if ($2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=$3;}\
else if ($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);\
}}'

输出信息如下:

----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --
---Time---|---QPS---|select insert update delete|  read inserted updated deleted|   logical    physical
 18:19:03 |     3940|  2755    196    397    198| 83252      196     399     198|     34167           0
 18:19:03 |     3859|  2701    194    390    191| 81282      194     390     191|     34657           0
 18:19:05 |     3966|  2780    196    390    199| 80869      196     390     199|     30819           0
 18:19:06 |     3945|  2744    202    400    201| 82245      202     400     201|     34306           0
 18:19:07 |     3906|  2746    193    386    191| 82822      193     385     191|     34130           0
 18:19:07 |     3905|  2737    193    390    197| 80525      193     391     197|     33663           0
 18:19:09 |     4011|  2796    202    406    201| 83102      202     405     201|     32036           0
 18:19:10 |     3780|  2633    194    384    191| 79609      194     385     191|     33609           0
 18:19:11 |     4029|  2828    200    397    200| 83925      200     397     200|     34937           0
 18:19:11 |     3967|  2782    195    394    198| 81974      195     394     198|     32820           0
 18:19:13 |     3980|  2792    199    395    196| 84181      199     393     196|     34337           0

这里的输出结果已经可以和Orzdba想媲美了。

posted @ 2020-09-18 18:21  yang417  阅读(326)  评论(0)    收藏  举报