mysql常用监控脚本命令整理

时间:2022-09-14 14:20:43
  1. #/bin/sh  
  2.   
  3. #检测mysql server是否正常提供服务  
  4. mysqladmin -u sky -ppwd -h localhost ping 
  5.   
  6. #获取mysql当前的几个状态值  
  7. mysqladmin -u sky -ppwd -h localhost status  
  8.   
  9. #获取数据库当前的连接信息  
  10. mysqladmin -u sky -ppwd -h localhost processlist  
  11.   
  12. #获取当前数据库的连接数  
  13. mysql -u root -p123456 -BNe "select host,count(host) from processlist group by host;" information_schema  
  14.   
  15. #显示mysql的uptime  
  16. mysql -e"SHOW STATUS LIKE '%uptime%'"|awk '/ptime/{ calc = $NF / 3600;print $(NF-1), calc"Hour" }' 
  17.   
  18. #查看数据库的大小  
  19. mysql -u root -p123456-e 'select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema;' 
  20.   
  21. #查看某个表的列信息  
  22. mysql -u <user> --password=<password> -e "SHOW COLUMNS FROM <table>" <database> | awk '{print $1}' | tr "\n" "," | sed 's/,$//g' 
  23.   
  24. #执行mysql脚本  
  25. mysql -u user-name -p password < script.sql  
  26.   
  27. #mysql dump数据导出  
  28. mysqldump -uroot -T/tmp/mysqldump test test_outfile --fields-enclosed-by=\" --fields-terminated-by=,  
  29.   
  30. #mysql数据导入  
  31. mysqlimport --user=name --password=pwd test --fields-enclosed-by=\" --fields-terminated-by=, /tmp/test_outfile.txt  
  32. LOAD DATA INFILE '/tmp/test_outfile.txt' INTO TABLE test_outfile FIELDS TERMINATED BY '"' ENCLOSED BY ',';  
  33.   
  34. #mysql进程监控  
  35. ps -ef | grep "mysqld_safe" | grep -v "grep" 
  36. ps -ef | grep "mysqld" | grep -v "mysqld_safe"| grep -v "grep" 
  37.   
  38.   
  39. #查看当前数据库的状态  
  40. mysql -u root -p123456 -e 'show status' 
  41.   
  42.   
  43. #mysqlcheck 工具程序可以检查(check),修 复( repair),分 析( analyze)和优化(optimize)MySQL Server 中的表  
  44. mysqlcheck -u root -p123456 --all-databases  
  45.   
  46. #mysql qps查询  QPS = Questions(or Queries) / Seconds  
  47. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Questions"' 
  48. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Queries"' 
  49.   
  50. #mysql Key Buffer 命中率  key_buffer_read_hits = (1 - Key_reads / Key_read_requests) * 100%  key_buffer_write_hits= (1 - Key_writes / Key_write_requests) * 100%  
  51. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Key%"' 
  52.   
  53. #mysql Innodb Buffer 命中率  innodb_buffer_read_hits=(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100%  
  54. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Innodb_buffer_pool_read%"' 
  55.   
  56. #mysql Query Cache 命中率 Query_cache_hits= (Qcache_hits / (Qcache_hits + Qcache_inserts)) * 100%  
  57. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Qcache%"' 
  58.   
  59. #mysql Table Cache 状态量  
  60. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Open%"' 
  61.   
  62. #mysql Thread Cache 命中率  Thread_cache_hits = (1 - Threads_created / Connections) * 100%  正常来说,Thread Cache 命中率要在 90% 以上才算比较合理。  
  63. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Thread%"' 
  64.   
  65. #mysql 锁定状态:锁定状态包括表锁和行锁两种,我们可以通过系统状态变量获得锁定总次数,锁定造成其他线程等待的次数,以及锁定等待时间信息  
  66. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "%lock%"' 
  67.   
  68. #mysql 复制延时量 在slave节点执行  
  69. mysql -u root -p123456 -e 'SHOW SLAVE STATUS' 
  70.   
  71. #mysql Tmp table 状况 Tmp Table 的状况主要是用于监控 MySQL 使用临时表的量是否过多,是否有临时表过大而不得不从内存中换出到磁盘文件上  
  72. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Created_tmp%"' 
  73.   
  74. #mysql Binlog Cache 使用状况:Binlog Cache 用于存放还未写入磁盘的 Binlog 信 息 。  
  75. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Binlog_cache%"' 
  76.   
  77. #mysql nnodb_log_waits 量:Innodb_log_waits 状态变量直接反应出 Innodb Log Buffer 空间不足造成等待的次数  
  78. mysql -u root -p123456 -e 'SHOW /*!50000 GLOBAL */ STATUS LIKE "Innodb_log_waits' 

 

mysql常用监控脚本命令整理

mysql常用监控脚本命令整理

整理出来的常用的shell脚本会放到https://github.com/zhwj184/shell-work这,主要包括。

shell-work

shell常用分析命令和脚本

mysql监控脚本

cookielog分析脚本

线上java进程信息dump和机器信息dump脚本

cpu监控相关

dish 磁盘管理