在資料量大或者查詢特別頻繁的時候,偶爾會出現查詢鎖表的情況,通過show processlist;可以看到存在有locked狀態,
現寫了個shell指令碼自動殺死鎖表程序,
**如下:
1 #!/bin/bash23 mysql_cmd=mysql
4 host=192.168.1.1
5 user=root
6 password=root
7 port=3306
8 kill_process=$($mysql_cmd -h $host -u $user -p$password -p $port -e '
show processlist
' | grep -i "
locked
" | awk'"'
) print $1}');
910for process_id in
$kill_process
11do
12 #echo
$process_id
13 $mysql_cmd -h $host -u $user -p$password -p $port -e '
kill '"$
"14done
另外種更簡單的方式
1 (1)將所有的mysql連線程序殺掉
2for i in ` mysql -uroot -pzhangyun -bse "
show processlist
" | grep -v "
show processlist
" | awk''
` 3do4 mysql -uroot -pzhangyun -e "
kill $i"5
done67
注:這裡將自身命令的show processlist程序過濾掉
89 (2
)刪除指定使用者的連線程序
10for i in `mysql -uroot -pzhangyun -se "
show processlist
" | grep -v "
show processlist
" | awk''
` 11
do12 mysql -uroot -pzhangyun -e "
kill $i"13
done
查詢鎖表及kill
檢視鎖表程序sql語句1 select sess.sid,sess.serial lo.oracle username,lo.os user name,ao.object name,lo.locked mode from v locked object lo,dba objects ao,v ses...
如何kill掉oracle中的session
有時,oracle中造成一些表被死鎖或者會話異常退出,如執行了更新記錄操作後,既沒有commit也沒有rollback,網路就斷開了,也會造表或記錄被鎖住,待到超時後才會被解開,那樣都會造成應用操作被阻塞。可以以oralce管理員許可權使用者登入oracle資料,查詢到被鎖的物件,然後殺除指定的會話...
批量kill掉linux中的程序
原文 ps ef grep php grep v grep awk xargs kill 9 管道符 用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。下面說說用管道符聯接起來的 幾個命令 ps ef 是linux 裡檢視所有程序的命令。這時檢索出的程序將作為下一條命令 grep m...