percona toolkit for mysql_【MySQL运维】Percona Toolkit工具安装与使用教程

一、percona-toolkit介绍

这是一套由Percona所开发、运用于MySQL的一套命令行工具集,该工具集里包含了数据库主从一致性检查、查找重复索引、服务器信息汇总、分析日志等很多有用功能。

二、percona-toolkit安装

推荐配置Percona yum仓库安装

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

yum install percona-toolkit

三、percona toolkit常用工具使用说明

· pt-query-digest:慢日志分析工具,详细说明可以参考《【MySQL配置教程】慢日志slowlog配置与分析》

pt-quert-digest mysql-slow.log > slow_log.report #分析慢查询日志并将结果输出到文件

pt-quert-digest --since=12h mysql-slow.log > slow_log.report #分析最近12个小时的慢查询

pt-quert-digest --since '2020-02-11 09:30:00' --until '2020-02-11 11:30:00'mysql-slow.log > slow_log.report #指定时间范围进行分析

· pt-duplicate-key-checker:列出并删除重复的索引和外键

pt-duplicate-key-checker --host=192.168.94.10 --user=root --password=123456 --database=student

pt-duplicate-key-checker --host=192.168.94.10 --user=root --password=123456 --database=company --table=employee

· pt-online-schema-change:在线修改表结构,不会锁表阻塞。其原理就是先创建一个新表,然后复制原表数据到新表,数据复制完成后删除原表,再将新表改名。通常在业务时间需要修改大表(如表有500M以上或者有上千万行数据时)结构的情况下使用,执行过程可以看到一个进度。pt-online-schema-change命令默认并不会真正的修改表,除非指定了--execute选项

pt-online-schema-change

--alter "这里写alter table之后的那部分SQL语句"

--alter-foreign-keys-method=rebuild_constraints

--check-alter=yes

--check-interval=5

--check-replication-filters=no

--chunk-size=1000

--chunk-size-limit=4

--chunk-time=1

--critical-load=thread_connected:4000,thread_running:300

--max-load=thread_connected:2500,thread_running:200

--drop-new-table=yes

--drop-old-table=yes

--max-lag=3

--recursion-method=none

#真正的执行语句

pt-online-schema-change h=10.3.0.224,P=3311,u=dba,p=123456,D=$database_name,t=$table_name --alter "MODIFY COLUMN insure_json longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '投保JSON';" --execute

· pt-show-grants:显示指定数据库所有用户权限,常用于账号整理

pt-show-grants --host=192.168.94.10 --user=root --password=123456

· pt-kill:杀掉符合条件的慢SQL

pt-kill --busy-time 60 --print --host=192.168.94.10 --user=root --password=123456 #将执行时间超过60秒的SQL打印出来

pt-kill --busy-time 60 --kill --host=192.168.94.10 --user=root --password=123456 #杀掉执行时间超过60秒的SQL

· pt-slave-delay:配置从库延迟,在需要做延迟的从库上使用该工具

pt-slave-delay --delay=60m --interval=15s --run-time=10m u=root,p=123456,h=192.168.1.100,P=3306

--delay:从库延迟的时间

--interval:检查的间隔,不配置的话默认为1分钟

--run-time:该命令运行时间,不配置的话代表永久生效,这里配置的是运行10分钟则关闭

--ask-pass:交互模式输入密码

· pt-slave-find:查找指定主库的从库层级信息

pt-slave-find --host=192.168.1.100 --port=3306 --user=root --password=123456

8c8d00e48fd3f566fe0c1b55e3403896.png

· pt-table-checksum:检查主从数据一致性

pt-table-checksum --no-check-binlog-format --nocheck-replication-filters --replicate=test_database.test_table --databases=test_database --tables=test_table h=192.168.1.100,u=root,p=123456,P=3306

#--no-check-binlog-format:不检查二进制日志模式,否则row格式的话会报错

#--nocheck-replication-filters:不检查复制过滤器,然后用database来指定需要检查的库

#--replicate:把检查信息写入到指定的表中

#--databases:要检查的数据库,多个数据库用逗号分隔

#--tables:要检查的表,多个表用逗号分隔

· pt-table-sync:主从同步修复工具

#方法1:在从库做修复

pt-table-sync --replicate=test_database.test_table h=$master_ip,u=root,p=123456 h=$slave_ip,u=root,p=123456 --charset=utf8 --print --databases=test_database #在从库上执行该命令可以打印出没有同步的SQL,然后拿到结果后在从库执行即可

#方法2:在主库做修复

pt-table-sync --replicate=test_database.test_table h=$master_ip,u=root,p=123456 h=$slave_ip,u=root,p=123456 --charset=utf8 --databases=test_database --execute #在从库上执行该命令可以打印出没有同步的SQL,然后拿到结果后在从库执行即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值