1.建立监视表(锁相关信息会输出到错误日志,执行频率为20s一次。需要停止监控时直接删除表)

说明:这种情况会导致错误日志增加过快

create table innodb_lock_monitor(x int) engine=innodb;

2.使用第三方工具,如innotop,进入后按D键可查看死锁相关事务

3.手工写脚本,直接过滤show engine innodb status中的死锁信息(线上使用,昨天做了简单测试,大家可以补充和修改)

#!/bin/sh

user=xxx

passwd=xxxx

sql=/data/mysql/bin/mysql

IP="MYSQL-75"

AlertLog=/home/mysql/cron/Alert_DeadLock.log

DeadLocks=/home/mysql/cron/DeadLocks.log

Date_min_1=`date -d '1 minutes ago' '+%y%m%d %k:%M'`

#导出innodb状态输出中包含1分钟前内容的数据

$sql -u$user -p$passwd -e "show engine innodb status \G" | grep -e "$Date_min_1" > /dev/null

#如果存在1分钟前的死锁信息

if [ $? = 0 ]; then

#导出数据到文件

$sql -u$user -p$passwd -e "show engine innodb status \G" > $DeadLocks

#获取死锁信息的开始行号

sln=`grep -n "LATEST DETECTED DEADLOCK" $DeadLocks | cut -d: -f 1`

#获取死锁信息的结束行号

eln=`grep -n "ROLL BACK TRANSACTION" $DeadLocks | cut -d: -f1`

#开始行号大于0 并且 结束行号大于开始行号

if [ $sln -gt 0 -a $eln -gt $sln ]; then

#获取死锁开始信息向后第二行的内容(即死锁发生的时间)

message=`sed -n "$(($sln+2)) p" $DeadLocks`

echo $message" $IP DETECTED DEADLOCK."

wget -O /dev/null "http://202.108.36.121/sms/?sid=r2&ghp=og_db_oraclegroup&msg=$NOW $message $IP Detected DeadLock. Check Alert_DeadLock.log"

echo "######################## `date +%F" "%T` ########################" >> $AlertLog

#记录死锁信息到日志文件

sed -n "$sln,$eln p" $DeadLocks >> $AlertLog

fi;

fi;

mysql监控死锁_mysql死锁监控相关推荐

  1. mysql数据库监控程序_mysql数据库监控利器lepus天兔工具安装和部署

    需要的核心包如下: 以下软件包只需要部署在监控机即可.被监控机无需部署. 1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据) 2.Apache 2.2及以上 (必须,WEB服务器运行服务 ...

  2. mysql数据库批量插数死锁_MySQL 死锁套路:一次诡异的批量插入死锁问题分析

    线上最近出现了批量insert的死锁,百思不得姐.死锁记录如下 2018-10-26T11:04:41.759589Z 8530809 [Note] InnoDB: *** (1) TRANSACTI ...

  3. mysql取消死锁_mysql 死锁可以自动解除吗

    1. session1 执行 delete  会在唯一索引 c2 的 c2 = 15 这一记录上加 X lock(也就是在MySQL 内部观测到的:X Lock but not gap): 2. se ...

  4. mysql测试死锁_mysql死锁几种情况的测试_MySQL

    sessionA: test>begin -> ; Query OK, 0 rows affected (0.00 sec) test>select * from tt where ...

  5. mysql 1061原因_MySQL死锁问题分析及解决方法实例详解(转)

    出处:http://www.jb51.net/article/51508.htm MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1.MySQL常用存储 ...

  6. mysql pmm进程_mysql性能监控软件pmm

    具体配置操作步骤: 1.在vmware或者virtualbox上安装centos镜像,可以选择阿里巴巴的镜像,下载速度快 centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源设 ...

  7. mysql先删后增并发时出现死锁_MySQL死锁案例分析一(先delete,再insert,导致死锁)...

    一.死锁案例 MySQL版本:Percona MySQL Server 5.7.19 隔离级别:可重复读(RR) 业务逻辑:并发下按某个索引字段先delete记录,再insert记录 比如:begin ...

  8. mysql锁场景_MySQL死锁系列-常见加锁场景分析

    在上一篇文章<锁的类型以及加锁原理>主要总结了 MySQL 锁的类型和模式以及基本的加锁原理,今天我们就从原理走向实战,分析常见 SQL 语句的加锁场景.了解了这几种场景,相信小伙伴们也能 ...

  9. 如何判断mysql死锁_MySQL 死锁问题分析

    线上某服务时不时报出如下异常(大约一天二十多次):"Deadlock found when trying to get lock;". Oh, My God! 是死锁问题.尽管报错 ...

最新文章

  1. 卡尔曼滤波— Constant Velocity Model
  2. sqlplus 如何连接到指定数据库,并创建用户与授权
  3. 编写 DockerFile
  4. 蓝桥杯java第八届第七题--日期问题
  5. ElasticSearch suggester
  6. centos安装 mysql_centos下安装MySQL数据库
  7. git SSH 公钥拉取代码(使用及配置)
  8. 【2013高考作文】重庆作文
  9. PAT C语言 1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
  10. 计算机网络各层设备故障及可行的解决方案
  11. 带掩码的自编码器MAE在各领域中的应用总结
  12. 前端学习笔记001:HTML5
  13. 如何使用阿里云搭建自己的云主机(超详细)
  14. 基于VMware12虚拟机的Hadoop3.1.2伪分布式安装(含各软件百度云下载地址、安装过程中各类问题的解决方案)
  15. 15分钟带你了解lower_bound和upper_bound
  16. Firefly-RK3288 Ubuntu18.04 修改终端登录显示信息
  17. 【习题35】交互程序三 + 汉化版
  18. hexo 博客小功能添加-评论、萌妹纸、相册、字数统计...
  19. Ubnt EdgeMax 3322 ddns更新方法
  20. 算法设计与分析课后总结

热门文章

  1. SQL Sever查询事务隔离级别命令
  2. RN REACT com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: INSTA
  3. 2018中国金融科技竞争力100强榜单
  4. GD32实战7__中断
  5. 在Idea中使用Git
  6. 周志华 《机器学习》之 第十一章(特征选择与稀疏学习)概念总结
  7. 【c语言】写一个程序获取现在的准确时间(精确到秒)
  8. 03 -数据分析与SQL- Lesson3 SQL 聚合
  9. myeclipse安装sonarlint插件失败
  10. 根据商品类型按商品价格对商品打标签。标签规则:前20%为高档,20%到80%为中档,后20%为低档。