Enn的数据库 2014-03-05
percona-toolkit系列之监控类工具使用
1. pt-deadlock-logger
功能介绍:
提取和记录mysql死锁的相关信息
用法介绍:
pt-deadlock-logger [OPTION...] SOURCE_DSN
收集和保存mysql上最近的死锁信息,可以直接打印死锁信息和存储死锁信息到数据库中,死锁信息包括发生死锁的服务器、最近发生死锁的时间、死锁线程id、死锁的事务id、发生死锁时事务执行了多长时间等等非常多的信息。详情见下面的示例。
使用示例:
范例1:打印本地mysql的死锁信息
pt-deadlock-logger --user=root --password=zhang@123 h=localhost –print
范例2:将本地的mysql死锁信息记录到数据库的表中,也打印出来
pt-deadlock-logger --user=root --password=zhang@123 h=localhost --print D=test,t=deadlocks
2. pt-fk-error-logger
功能介绍:
提取和记录mysql外键错误信息
用法介绍:
pt-fk-error-logger [OPTION...] SOURCE_DSN
通过SHOW INNODB STATUS提取和保存mysql数据库最近发生的外键错误信息。可以通过参数控制直接打印错误信息或者将错误信息存储到数据库的表中。
使用示例:
我在服务器上运行的时候一直报如下错误:
Use of uninitialized value in concatenation (.) or string at /usr/bin/pt-fk-error-logger line 2045
我怀疑是这个程序有问题,回头换一个版本试一下或者调试一下那个程序。
3. pt-mext
功能介绍:
并行查看SHOW GLOBAL STATUS的多个样本的信息。
用法介绍:
pt-mext [OPTIONS] -- COMMAND
原理:pt-mext执行你指定的COMMAND,并每次读取一行结果,把空行分割的内容保存到一个一个的临时文件中,最后结合这些临时文件并行查看结果。
使用示例:
范例1:每隔10s执行一次SHOW GLOBAL STATUS,并将结果合并到一起查看
pt-mext -- mysqladmin ext -uroot -pzhang@123 -i10 -c3
4. pt-query-digest
功能介绍:
分析查询执行日志,并产生一个查询报告,为MySQL、PostgreSQL、 memcached过滤、重放或者转换语句。
用法介绍:
pt-query-digest [OPTION...] [FILE]
解析和分析mysql日志文件
使用示例:
范例1:分析本地的慢查询文件
pt-query-digest --user=root --password=zhang@123 /data/dbdata/localhost-slow.log
范例2:重新回顾满查询日志,并将结果保存到query_review中,注意query_review表的表结构必须先建好,表结构如下:
CREATE TABLE query_review (
checksum BIGINT UNSIGNED NOT NULL PRIMARY KEY,
fingerprint TEXT NOT NULL,
sample TEXT NOT NULL,
first_seen DATETIME,
last_seen DATETIME,
reviewed_by VARCHAR(20),
reviewed_on DATETIME,
comments TEXT
);
命令如下:
pt-query-digest --user=root --password=zhang@123 --review h=localhost,D=test,t=query_review /data/dbdata/localhost-slow.log
5. pt-trend
功能介绍:
居于一组时间序列的数据点做统计。
用法介绍:
pt-trend [OPTION...] [FILE ...]
读取一个慢查询日志,并输出统计信息。也可以指定多个文件。如果不指定文件的话直接从标准输入中读取信息。
使用示例:
范例1:读取本地慢查询日志并输出统计信息
pt-trend /data/dbdata/localhost-slow.log
这里输出的信息没有说明,有点看不明白!
Percona Toolkit 的详细介绍:请点这里
Percona Toolkit 的下载地址:请点这里
最近,公司现网的业务中出现上图所示的死锁异常,沿着问题分析,发现这个问题涉及很多数据库的基础知识。 <update id = "A" parameterType = "java.util.List"&