Percona-toolkit的安装和配置(r8笔记第86天)
pt工具是非常实用有效的一个工具集,对于诊断常规问题还是非常有效的,相比于Oracle的工具,MySQL中没有那么多复杂的数据字典,在实现方式上相对更加轻巧,主要都是针对日志的挖掘。在庞大复杂的日志中能够找出一些非常有效的信息,确实难能可贵。
在官网上查看Percona的系列产品,可以看到Percona Toolkit的一个Logo好像是条鹿犬。
如果查看用户手册,可以看到里面有非常多的命令,如果没有分门别类还是没有任何的方向。
在此找到同事之前的分享,工具的分类如下,分别从性能,配置,监控,开发,复制,系统,实用几个角度。
性能
pt-index-usage
pt-pmp
pt-visual-explain
配置
pt-config-diff
pt-variable-advisor
pt-mysql-summary
监控
pt-deadlock-logger
pt-mext
pt-query-digest
pt-trend
pt-fk-error-logger
开发
pt-duplicate-key-checker
pt-online-schema-change
pt-query-advisor
pt-show-grants
pt-upgrade
复制
pt-heartbeat
pt-slave-delay
pt-slave-find
pt-table-checksum
pt-table-sync
系统
pt-diskstats
pt-fifo-split
pt-summary
pt-stalk
实用
pt-archiver
pt-find
pt-kill
当然安装配置是第一步,这个步骤也非常简单,
使用 wget percona.com/get/percona-toolkit.tar.gz来下载,或从官网下载rpm包等都可以。
下载到安装包以后,还需要预备一下perl的部分插件。
可以使用yum来安装。
yum install perl-DBI -y
yum install perl-DBD-MySQL -y
yum install perl-Time-HiRes -y
yum install perl-IO-Socket-SSL -y
安装pt的步骤就是常规的几步。
perl Makefile.PL
make
make test
make install
在此简单介绍几个命令的使用:
pt-index-usage
可以使用如下的方式来解析慢日志,对于没有使用到的索引会给出相应的建议,当然这个部分需要好好斟酌,给出的建议还是取决了日志的情况,日志内容量越丰富,建议越有说服力。>pt-index-usage /home/mysql/slow.log
/home/mysql/slow.log: 64% 00:50 remain
/home/mysql/slow.log: 99% 00:00 remain
ALTER TABLE `_gcsrecharge`.`ORDERS` DROP KEY `idx_orders_gcsId`, DROP KEY `idx_orders_transactionId`; -- type:non-unique
ALTER TABLE `usercenter`.`PAY_ORDER_XSOLLA` DROP KEY `ORDER_ID`; -- type:non-unique
pt-config-diff
这个命令可以比较配置文件的差别,比如比较下面的两个文件,所有的差别一目了然。
>pt-config-diff /etc/my.cnf /etc/my.cnfold
5 config differences
Variable /etc/my.cnf /etc/my.cnfold
========================= ===================== ========================
innodb_data_file_path ibdata1:1G:autoextend ibdata1:1024M:autoextend
innodb_io_capacity 2000 1000
innodb_max_dirty_pages... 50 20
innodb_read_io_threads 8 4
innodb_write_io_threads 8 4
pt-mysql-summary
这个命令会对mysql的配置和状态信息进行汇总,会分为几个部分来解读。
#pt-mysql-summary
# Percona Toolkit MySQL Summary Report #######################
System time | 2016-05-01 13:49:14 UTC (local TZ: EDT -0400)
# Instances ##################################################
Port Data Directory Nice OOM Socket
===== ========================== ==== === ======
3306 /home/mysql 0 0 /home/mysql/mysql.sock
# MySQL Executable ###########################################
Path to executable | /usr/local/mysql/bin/mysqld
Has symbols | Yes
# Report On Port 3306 ########################################
User | root@localhost
Time | 2016-05-01 09:49:14 (EST)
Hostname | recharge_db
Version | 5.6.23-72.1-log Percona Server (GPL), Release 72.1, Revision 0503478
Built On | Linux x86_64
Started | 2015-12-16 05:40 (up 137+04:08:49)
Databases | 8
Datadir | /home/mysql/
Processes | 50 connected, 3 running
Replication | Is not a slave, has 1 slaves connected
Pidfile | /home/mysql/mysql.pid (exists)
更多的命令也在不断补充中。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android Studio debug.keystore位置介绍
- Android 实现长按弹出PopupMenu 菜单栏
- Android开发获取手机Mac地址适配所有Android版本
- Android AIDL实现与服务相互调用方式
- Android获取超级管理员权限的实现
- Android Studio编写AIDL文件后如何实现自动编译生成
- Android 实现永久性开启adb 的root权限
- 使用Android Studio实现为系统级的app签名
- Android开发实现控件双击事件的监听接口封装类
- Android普通应用升级为系统应用并获取系统权限的操作
- 使用kotlin协程提高app性能(译)
- Android中实现ping功能的多种方法详解
- Android开发获取手机内网IP地址与外网IP地址的详细方法与源码实例
- 在Android源码中编译出指定jar包的操作
- Android Studio 视频播放失败 start called in state1 异常怎么解决