摘要:
死锁:是指两个或则多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,而导致恶性循环的现象;当产生死锁的时候,MySQL会回滚一个小事务的SQL,确保另一个完成。上面是死锁的概念,而在MySQL中 innodb 会出现死锁的情况,但是查看死锁却很不“智能”。只能通过 show engine innodb status 查看,但只保留最后一个死锁的信息,之前产生的死锁都被刷掉了。下面介绍的工具却很容易做到记录。
前提:
安装方法:perl Makefile.PL;make;make install
使用方法:
pt-deadlock-logger [OPTIONS] DSN
--run-time或 --iterations。
用法:
pt-deadlock-logger--ask-pass --run-time=10 --interval=3 --create-dest-table --dest D=test,t=deadlocks u=root,P=3306,h=192.168.200.25
Enter MySQL password:
参数:
--create-dest-table :创建指定的表。--dest :创建存储死锁信息的表。--database :-D,指定链接的数据库。--table :-t,指定存储的表名。--log :指定死锁日志信息写入到文件。--run-time :运行次数,默认永久--interval :运行间隔时间ÿ