简介
pt-log-player是MySQL日志回放工具,在pt2.4中被去除,由percona-playback取代。
在2.1中还是保留,如果想使用的话,需要下载2.1版本的。
使用方法
pt-log-player [OPTION...] [DSN]
例子:
日志切分
pt-log-player --split Thread_id --type=genlog --session-files 16 --only-select --base-dir ./sessions ./mysql.log
日志回放
pt-log-player --play ./play/ --base-dir ./results -u test -p 'test3872' -h 10.75.19.132 -P 3872
要注意host、user、password以及port的顺序
结果分析
使用pt-query-digest汇总结果
pt-query-digest ./results/*
描述
pt-log-player做两件事情:
1、将MySQL查询日志分成多个session文件
2、在指定的MySQL server上回放这些session查询
只有session files才能被回放,慢查询不能直接被回放,必须被改造。
session file是来自慢查询中的一组查询,拥有一个共同的属性,经常是Thread_id。
这个是--split的切分依据。多个session会存放在单个session file中。相关的参数如下--session-files,--max-sessions,--base-file-name以及--base-dir。
pt-log-player使用--play回放session files,参数--threads控制并发量。每个线程回放指定的session file。这些sessions会被回放地足够快,因为目标是压力测试以及负载测试。所以不建议直接在线上使用pt-log-player。
每个--play线程将对应的结果写入单个文件中。输出的结果如slow log格式,故可以使用pt-query-digest汇总这些结果。
输出
--split和--play有两个输出。
--split输出:
-- START SESSION 10
use foo
SELECT col FROM foo_tbl
--play输出:
# Thread_id: 1107285559 Query_time: 0.000693 Schema: elink
SELECT * FROM my_data_22 WHERE `uid` = 1228640232 AND `blog_id`='493b8fe801009em6' AND `status`=1;
参考文献
http://hi.baidu.com/ytjwt/item/26ebff16c7c6e40f8fbde40b
http://www.percona.com/doc/percona-toolkit/2.1/pt-log-player.html