日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本

發(fā)布時(shí)間:2024/9/27 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自動(dòng)清理MySQL的Lock進(jìn)程的腳本

作者:小涵 | 來(lái)源:互聯(lián)網(wǎng) | 2018-07-13 21:01

閱讀: 915

最近數(shù)據(jù)庫(kù)服務(wù)器在某一時(shí)段進(jìn)程數(shù)忽然暴增,導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)器死掉,根據(jù)日志查詢,是由于Mysql大量Lock進(jìn)程造成服務(wù)器進(jìn)程數(shù)過(guò)高導(dǎo)致。遂寫了一個(gè)腳本,每分鐘檢查下,如果存在負(fù)載過(guò)高的情況,就殺掉一些Lock進(jìn)程。以下腳本稍微改下,也可以完成其他的任

最近數(shù)據(jù)庫(kù)服務(wù)器在某一時(shí)段進(jìn)程數(shù)忽然暴增,導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)器死掉,根據(jù)日志查詢,是由于Mysql大量Lock進(jìn)程造成服務(wù)器進(jìn)程數(shù)過(guò)高導(dǎo)致。 遂寫了一個(gè)腳本,每分鐘檢查下,如果存在負(fù)載過(guò)高的情況,就殺掉一些Lock 進(jìn)程。 以下腳本稍微改下,也可以完成其他的任

最近數(shù)據(jù)庫(kù)服務(wù)器在某一時(shí)段進(jìn)程數(shù)忽然暴增,導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)器死掉,根據(jù)日志查詢,是由于Mysql大量Lock進(jìn)程造成服務(wù)器進(jìn)程數(shù)過(guò)高導(dǎo)致。

遂寫了一個(gè)腳本,每分鐘檢查下,如果存在負(fù)載過(guò)高的情況,就殺掉一些Lock 進(jìn)程。

以下腳本稍微改下,也可以完成其他的任務(wù)。

服務(wù)器負(fù)載高比較危險(xiǎn),可能會(huì)導(dǎo)致整個(gè)服務(wù)宕掉。雖然殺掉一些進(jìn)程對(duì)某些用戶訪問(wèn)可能會(huì)有一些異常,但總比服務(wù)器宕機(jī)要好。

cat killmysqlprocess.sh

#!/bin/bash

#*/1 * * * * /usr/local/src/killmysqlprocess.sh

backdir="/usr/local/logs/"

logfile="cms_mysql_killprocess_$(date +"%Y%m%d").log"

mysqlbindir="/usr/local/mysql/bin/"

#use commond 'vmstat' get proc num

vmstat > vmstat.tmp

pronum=`awk -F" " '{if (NR==3) print $1}' vmstat.tmp`

rm -f vmstat.tmp

#if pronum less 20, nothing to do.......... exit

if [ $pronum -lt 20 ]; then

exit

fi

#it's here more than 20,run kill mysql Lock process

${mysqlbindir}mysql -e "show full processlist" > processlist.tmp

#get Lock mysql process id

awk -F" " '/Locked/{print $1}' processlist.tmp >looplock.tmp

sleep 5

for line in `cat looplock.tmp`

do

/usr/local/mysql/bin/mysql -e "kill ${line}"

done

rm -f looplock.tmp

#write kill log

echo $(date +"%Y-%m-%d %H:%M:%S") >> ${backdir}${logfile}

cat processlist.tmp >> ${backdir}${logfile}

rm -f processlist.tmp

吐了個(gè) "CAO" !

吐個(gè)槽吧,看都看了

總結(jié)

以上是生活随笔為你收集整理的自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。