1. 程式人生 > >每2秒鐘重新整理檢視MySQL程序proceslist狀態

每2秒鐘重新整理檢視MySQL程序proceslist狀態

我們經常用到show processlist來觀察MySQL的狀態,在觀察某個操作帶來的任何風險時候,需要頻繁重新整理,我寫了個指令碼來每2秒重新整理檢視process程序
中狀態
# cat processlist.sh 
#!/bin/bash
#
#author:bohai
#address:http://blog.csdn.net/bohai0409
user=bohai
[email protected]
sock=/tmp/mysql_bhtest.sock
expgrants()
{
mysql -u$user -p$password -S $sock  -e 'show processlist\G' | grep State | sort | uniq -c | sort -rn
mysql -u$user -p$password -S $sock  -e 'select now()\G' | grep now
}
expgrants >> ./grants.sql

# cat 2sprocesslist.sh 
#!/bin/bash
step=2 
for (( i = 0; i < 60; i=(i+step) )); do
$(sh /home/bohai/processlist.sh;)
sleep $step
done
exit 0
下面我們來演示下重新整理方法
在會話1執行shell指令碼
sh 2sprocesslist.sh執行,1s停掉,生成了grants.sql檔案

新開一個會話2程序觀察
# tail -f grants.sql 
在會話1執行sh 2sprocesslist.sh,切回會話2,觀察

如下輸出
# tail -f grants.sql 
now(): 2014-11-06 16:22:56
     30   State: 
      1   State: Waiting on empty queue
      1   State: NULL
now(): 2014-11-06 16:22:58
     30   State: 
      1   State: Waiting on empty queue
      1   State: NULL
now(): 2014-11-06 16:23:00
     30   State: 
      1   State: Waiting on empty queue
      1   State: NULL
至此,我們能夠清楚記錄時間和process中狀態及數量

這個方法有點...如果你有更簡潔更簡單的方法請貼出了共同學習,謝謝