简介

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

pt-log-player的更多相关文章

  1. 在WebGL场景中管理多个卡牌对象的实验

    这篇文章讨论如何在基于Babylon.js的WebGL场景中,实现多个简单卡牌类对象的显示.选择.分组.排序,同时建立一套实用的3D场景代码框架.由于作者美工能力有限,所以示例场景视觉效果可能欠佳,本 ...

  2. video.js--很赞的H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  3. video.js-H5视频播放库

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  4. React的井字过三关(3)

    这是React井字棋项目的最后一篇笔记,记述AI实现. 一. 是开头都会说的原理 但凡懂一点围棋的人都知道"大场"这个概念,可以浅显地把它理解为布局时棋盘上各处的要点.棋谚&quo ...

  5. Log4j按级别输出到不同文件

    log4j.properties 文件: log4j.logger.net.sf.hibernate.cache=debug log4j.rootLogger = error,portal_log,s ...

  6. 高级javascript---原型和原型继承

    高级javascript---原型和原型继承 在 JavaScript 中,prototype 是函数的一个属性,同时也是由构造函数创建的对象的一个属性. 函数的原型为对象. 它主要在函数用作构造函数 ...

  7. js之oop <二> 对象属性

    js中对象属性可以动态添加和删除.删除对象属性用delete关键字. function obj(){ } var oo = new obj(); oo.a = "a"; oo.b ...

  8. 读javascript高级程序设计12-HTML5脚本编程

    一.跨文档消息传递(XDM) 1.发送消息 postMessage(msg,domain)用于发送跨文档消息.第一个参数是要传递的消息内容,第二个参数表示接收方来自哪个域.第二个参数有助于提高安全性, ...

  9. [转]unity3d 脚本参考-技术文档

    unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...

  10. Unity3D脚本中文系列教程(十)

    http://dong2008hong.blog.163.com/blog/static/4696882720140312627682/?suggestedreading&wumii Unit ...

随机推荐

  1. mysq参数sql_safe_updates限制范围

    在mysql运维中出现过不少因为update/delete条件错误导致数据被误更新或者删除的case,为避免类似问题的发生,可以用sql_safe_updates参数来对update/delete做限 ...

  2. open() close()

    open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 每个参数必须用引号 参数说明: URL:可选参数,在窗口中 ...

  3. C#生成Code128码

    using System; using System.Collections.Generic; using System.Data; using System.Drawing; namespace C ...

  4. J2EE走向成功路-02-Struts2 配置(Maven)

    在上一篇中,介绍了使用jar包搭建Struts2框架,这一篇中来介绍一下在Maven环境下搭建Struts2框架,主要为配置Maven. 1.下载Maven,官网:http://maven.apach ...

  5. Scala基础之注解(annotation

    在学习Scala的过程中,总会碰到一些注解: // Predef.scala @inline def implicitly[T](implicit e: T) = e @deprecated(&quo ...

  6. canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  7. Thrift - 快速入门

    简单实例 有homebrew的话,直接执行以下命令即可,brew会处理相关依赖(https://thrift.apache.org/docs/install/). brew install thrif ...

  8. [mysql使用(2)] mysql的一些语法与Oracle的差别

    一.表空间 mysql的表空间有共享表空间和独占表空间,独占表空间,其实就是一张表一个表空间,其实也就是一张表一个数据文件,共享表空间似乎有点类似oracle的表空间,不同的表可以保存在同一个数据文件 ...

  9. mysql 外键的几种约束

    restrict方式 同no action, 都是立即检查外键约束    --限制,指的是如果字表引用父表的某个字段的值,那么不允许直接删除父表的该值: cascade方式 在父表上update/de ...

  10. struts2国际化相关问题

    国际化资源文件的方式: Action范围的 包范围的 临时的 全局的(推荐) 一.配置全局的国际化资源文件 1.在类路径下,创建国际化资源文件 baseName.properties baseName ...