• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 自动清理MySQL 的Lock 进程的脚本

自动清理MySQL 的Lock 进程的脚本

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了自动,清理,MySQL,Lock,进程,脚本,最近,数据库,等相关知识,希望本文的分享对您有所帮助

最近数据库服务器在某一时段进程数忽然暴增,导致数据库服务器死掉,根据日志查询,是由于Mysql大量Lock进程造成服务器进程数过高导致。 遂写了一个脚本,每分钟检查下,如果存在负载过高的情况,就杀掉一些Lock 进程。 以下脚本稍微改下,也可以完成其他的任

最近数据库服务器在某一时段进程数忽然暴增,导致数据库服务器死掉,根据日志查询,是由于Mysql大量Lock进程造成服务器进程数过高导致。

遂写了一个脚本,每分钟检查下,如果存在负载过高的情况,就杀掉一些Lock 进程。
以下脚本稍微改下,也可以完成其他的任务。

服务器负载高比较危险,可能会导致整个服务宕掉。虽然杀掉一些进程对某些用户访问可能会有一些异常,但总比服务器宕机要好。

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
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • sql自增长设置与删除的深入分析
  • MySQL查询优化:用子查询代替非主键连接查询实例介绍
  • mysql自动增量备份的实例方法(本地备份与远程备份)
  • linux下mysql自动备份数据库与自动删除临时文件
  • mysql如何让自增id归0解决方案
  • NaviCat连接时提示"不支持远程连接的MySql数据库"解决方法
  • Mysql自动备份与还原方法
  • linux下mysql自动备份脚本代码
  • MySQL 自动备份与数据库被破坏后的恢复方法第1/2页
  • linux下备份MYSQL数据库的方法

相关文章

  • 2018-12-05MySQL navicate功能详解
  • 2018-12-05解决CBO的SQL优化问题(图文详解)
  • 2018-12-05SQLServer中SELECT语句的执行顺序
  • 2017-05-11解析MSSQL跨数据库查询的实现方法
  • 2018-12-05SQL Server本地时间和UTC时间的相互转换实现代码
  • 2018-12-05mysql SELECT语句去除某个字段的重复信息
  • 2018-12-05Oracle PL/SQL入门案例实践
  • 2018-12-05虚拟机linux中装mysql数据库
  • 2018-12-05清空MSSQL日志 与set recovery simple
  • 2018-12-05关于Mysql表,列,库增删改查的详细介绍

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Windows服务器下MySql数据库单向主从备份详细实现步骤分享
    • sqlserver主键设计的注意点
    • MySQL 视图的基础操作(五)_MySQL
    • mysql的group_concat函数使用示例
    • MySQL的入门介绍
    • SQL语句 操作全集 学习mssql的朋友一定要看
    • mysql 提示INNODB错误的解决方法
    • 关于中文数据的10篇文章推荐
    • MySQL中的SUM函数使用教程
    • SQL Server 交叉表查询 case

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有