pt-deadlock-logger概述
mysql默认只会记录最近发生的死锁,通过show engine innodb status获取其相关信息。如果想获取不同时间点的全部死锁信息,明显这是不够的。当然你也可以启用系统变量innodb_print_all_deadlocks,在错误日志记录全部死锁信息。
percona pt-toolkit里面有个子工具pt-deadlock-logger非常不错,可以实时监控死锁并进行历史保存,便于后续进行模向分析对比。而且它显示的死锁信息,更加通俗易懂。
联系方式

相关阅读
mysql死锁deadlock相关几个系统变量innodb_lock_wait_timeout
http://blog.itpub.net/9240380/viewspace-2663372/

pt-deadlock-logger重要选项
[root@three57 ~]# pt-deadlock-logger --help--columns=A 显示列定制--iterations=i 迭代次数--create-dest-table 创建死锁表--daemonize 实例化--database=s 连接目标数据库--host=s 连接主机--interval=m 检查间隔--log=s 日志文件--password=s 数据库用户密码--run-time=m 死锁检测时间--user=s 数据库用户
pt-deadlock-logger示例
每隔10秒检查是否产生死锁并显示
[root@three57 ~]# pt-deadlock-logger --host=localhost --user=root --password=system1 --interval=10server ts thread txn_id txn_time user hostname ip db tbl idx lock_type lock_mode wait_hold victim querylocalhost 2019-11-22T18:33:35 34 0 37 root localhost zxydb t_lock PRIMARY RECORD X w 0 update t_lock set a=22 where a=2localhost 2019-11-22T18:33:35 35 0 14 root localhost zxydb t_lock PRIMARY RECORD X w 1 update t_lock set a=10 where a=1
每隔10秒检查是否产生死锁并保存到文件/deadlock.log
[root@three57 ~]# pt-deadlock-logger --host=localhost --user=root --password=system1 --interval=10 --daemonize --log=/deadlock.log
pt-deadlock-logger 输出结果

server ts thread txn_id txn_time user hostname ip db tbl idx lock_type lock_mode wait_hold victim querylocalhost 2019-11-22T18:43:48 34 0 23 root localhost zxydb t_lock PRIMARY RECORD X w 0 update t_lock set a=22 where a=2localhost 2019-11-22T18:43:48 35 0 16 root localhost zxydb t_lock PRIMARY RECORD X w 1 update t_lock set a=10 where a=1
培训课件
(收费20元已共享至百度云盘便于同学们获取)


文章转载自lovedb,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




