percona,是mysql的一个分支了,相信不少朋友都很熟悉了,而percona-toolkit是其推出的工具包,里面集合了很多不错的实用的mysql维护工具包,今天开始学习下这个工具,首先看的是如何检查死锁
如果用传统的检查死锁的方法,可以使用比如:SHOW ENGINE INNODB STATUS
,但这个方法查看的是最新的死锁,如果有大量的死锁的话,则不容易看得清楚了;
这个时候可以使用pt-deadlock-logger这个percona-toolkit工具包中的小工具了;
基本用法为:
pt-deadlock-logger u=user,p=password,h=host
也就是用户名密码和host了。在使用这个工具时,通常是运行一段时间去检查,
比如可以指定参数:--run-time 。此外还可以指定把结果保存到文件(--log参数)
或者保持到表格中去(--dest参数),下面看一个例子:
pt-deadlock-logger --create-dest-table --dest D=test,t=deadlocks u=root,h=127.0.0.1
这个时候默认建立一个test.deadlocks表,看下结构:
mysql> show create table test.deadlocks\G
*************************** 1. row ***************************
Table: deadlocks
Create Table: CREATE TABLE `deadlocks` (
`server` char(20) NOT NULL,
`ts` datetime NOT NULL,
`thread` int(10) unsigned NOT NULL,
`txn_id` bigint(20) unsigned NOT NULL,
`txn_time` smallint(5) unsigned NOT NULL,
`user` char(16) NOT NULL,
`hostname` char(20) NOT NULL,
`ip` char(15) NOT NULL,
`db` char(64) NOT NULL,
`tbl` char(64) NOT NULL,
`idx` char(64) NOT NULL,
`lock_type` char(16) NOT NULL,
`lock_mode` char(1) NOT NULL,
`wait_hold` char(1) NOT NULL,
`victim` tinyint(3) unsigned NOT NULL,
`query` text NOT NULL,
PRIMARY KEY (`server`,`ts`,`thread`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
这个时候可以开始监测:
# pt-deadlock-logger --daemonize --run-time=3000 --dest D=test,t=deadlocks u=root,h=127.0.0.1
然后最后死锁的结果保存在表中,如下:
mysql> select * from test.deadlocks\G
*************************** 1. row ***************************
server: 127.0.0.1
ts: 2012-09-17 12:13:36
thread: 32
txn_id: 0
txn_time: 113
user: root
hostname: localhost
ip:
db: world
tbl: City
idx: Name
lock_type: RECORD
lock_mode: X
wait_hold: w
victim: 0
query: update City SET name='New york2' where name='New York'
*************************** 2. row ***************************
server: 127.0.0.1
ts: 2012-09-17 12:13:36
thread: 33
txn_id: 0
txn_time: 110
user: root
hostname: localhost
ip:
db: world
tbl: City
idx: Name
lock_type: RECORD
lock_mode: X
wait_hold: w
victim: 1
query: update City set Name='Seattle2' where name='Seattle'
这里可以清晰看到有两条记录导致死锁了,而且锁的类型都看的很清楚了,提一下,
在mysql 5.6中,innodb_print_all_deadlocks这个设置可以看到死锁的情况了,很方便,参考http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks
分享到:
相关推荐
1、percona-toolkit-3.3.1-1-最新版.zip 2、支持centos、redhat、orace linux、ubuntu、debian、麒麟V10、欧拉系统等个版本Linux系统。 3、内部各版本安装包列表如下: percona-toolkit-3.3.1-1.el7.x86_64.rpm、 ...
安装包中包括:percona-toolkit 2.2 安装包,官方说明文档,工具使用说明。
percona-toolkit-3.2.1-1.el7.x86_64.rpm
percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql任务和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索引 对...
percona-toolkit-3.0.13-1.el6.x86_64.rpm 安装包
Percona-Toolkit-3.0.3文档
percona工具已经成为DBA不可或缺的使用工具 这里提供了很多对我们有帮助的工具 一起一探究竟吧
percona-toolkit-2.2.19.tar.gz ,percona-toolkit-2.2.19.tar.gz
概述 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务
percona-toolkit 下载,测试可用,centos7兼容版本,共享出来
percona-toolkit-3.0.2-1.el6.x86_64
1、percona-toolkit-3 rpm包,含 CentOS 6和7版本 2、直接rpm -ivh安装即可,安装好后里面有如下常用命令 3、pt-table-checksum 检测MySQL主从数据一致性 4、pt-table-sync 修复主从数据不一样的记录 3、pt-online-...
percona-toolkit-3.0.12-1.el6.x86_64.rpm
percona percona-toolkit工具rpm包,版本为el7,欢迎下载
percona-toolkit-2.2.4工具包,linux下32位可执行程序,不包含代码
percona-toolkit-2.1.7-1.noarch.rpm,percona工具包。
用于对数据库的数据进行迁移使用。该版本适用于Linux版本。
pt系列工具,用于分析数据库日志,如慢sql等。包含pt-mysql-summary,pt-query-digest等一系列插件工具
percona-toolkit-3.0.12-1.el7.x86_64.rpm
percona-toolkit-3.3.0-1.el7.x86_64.rpm