每2秒鐘重新整理檢視MySQL程序proceslist狀態
阿新 • • 發佈:2019-01-10
我們經常用到show processlist來觀察MySQL的狀態,在觀察某個操作帶來的任何風險時候,需要頻繁重新整理,我寫了個指令碼來每2秒重新整理檢視process程序
中狀態
在會話1執行shell指令碼
sh 2sprocesslist.sh執行,1s停掉,生成了grants.sql檔案
新開一個會話2程序觀察
# tail -f grants.sql
在會話1執行sh 2sprocesslist.sh,切回會話2,觀察
如下輸出
這個方法有點...如果你有更簡潔更簡單的方法請貼出了共同學習,謝謝
中狀態
下面我們來演示下重新整理方法# 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,觀察
如下輸出
至此,我們能夠清楚記錄時間和process中狀態及數量# 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
這個方法有點...如果你有更簡潔更簡單的方法請貼出了共同學習,謝謝