MySQL被慢sql hang住了,用shell指令碼快速清除不斷增長的慢sql的辦法

us_yunleiwang發表於2013-12-06

某個初級dba誤刪index,mysql漫山遍野全是10S以上的慢sql,mysql服務被hang住了,而且慢sql不斷在增加中,如果手動在mysql介面kill的話,根本來不及,這個時候,shell就必須要出手了,如下的shell指令碼,大家可以參考:

 

 

  1. #It is used to kill processlist of mysql sleep  
  2. #!/bin/sh  
  3. while :  
  4.   
  5. do  
  6.   n=`mysqladmin processlist -uadmin -pxxxxx|grep -i sleep |wc -l`  
  7.   date=`date +%Y%m%d\[%H:%M:%S]`  
  8.   echo $n  
  9.   
  10.   if [ "$n" -gt 10 ]  
  11.   then  
  12.   for i in `mysqladmin processlist -uadmin -pxxxxxx|grep -i sleep |awk '{print $2}'`  
  13.   do  
  14.      mysqladmin -uadmin -pxxxxxx kill $i  
  15.   done  
  16.   echo "sleep is too many I killed it " >> /tmp/sleep.log  
  17.   echo "$date : $n" >> /tmp/sleep.log  
  18.   fi                 
  19.   sleep 1  
  20. done  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23490154/viewspace-1062528/,如需轉載,請註明出處,否則將追究法律責任。

相關文章