percona-toolkit常用命令

Percona Toolkit是一套用于MySQL管理和优化的工具集合,包括pt-query-digest用于分析慢查询,pt-kill用于杀死长时间运行的SQL,以及pt-archiver用于归档和删除表数据。此外,pt-online-schema-change支持在线DDL,避免服务中断。这些工具能有效提升数据库性能和维护效率。
摘要由CSDN通过智能技术生成

Percona Toolkit简称pt工具—PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等。

可以在percona官网上下载 https://www.percona.com/downloads/percona-toolkit/LATEST/

 

📎percona-toolkit-3.2.0-1.el7.x86_64.rpm.zip

 

一、系统相关命令

  1. pt-summary  查看数据库服务器磁盘、CPU、内存等情况
  2. pt-mysql-summary --user=root --password=*** 查看mysql数据库参数配置情况、是否有表锁等

二、数据库相关命令

1. pt-query-digest 分析慢查询日志

查看慢查询日志/mysql-flash/data/mgr2-slow.log 中24小时内的慢查询分析:

pt-query-digest --since=24h mgr2-slow.log > slow_report_1.log

慢查询日志中某个时间段的慢查询分析:

pt-query-digest mgr2-slow.log --since '2020-08-03 09:30:00' --until '2020-08-03 23:00:00' >slow_report_2.log

对binlog日志的分析:

mysqlbinlog mgr-binlog.000006 > mgr-binlog.sql

pt-query-digest --type=binlog --since '2020-08-03 09:30:00' --until '2020-08-03 23:30:00' > slow_report_3.log

2. pt-kill Kill掉符合条件的sql

杀掉select超过40s的所有select的sql:

pt-kill --host=172.16.80.58 --port=3306 --user=root --password=123   --match-info "select|SELECT" --busy-time 40 --victims all  --daemonize --kill --log=pt_select_kill.log

 

此时pt-kill会在后台运行,一旦有超过40s的select的sql就会自动kill

image.png

被kill的会话如下:

image.png

 

三、表管理相关命令

1. pt-archiver 归档并删除表中数据,

由于批量delete from会导致mysql出现hang的现象,可以通过limit行数,多次进行删除操作,从而减轻mysql负载

pt-archiver就是一种减小mysql负载的清理表并归档表的命令,通过limit、bulk-delete等参数,批量但是有限制       的删除表数据。

归档的方式有两种:归档到操作系统文件;归档到其他表

(1)把源数据库test中的t5表中id<10000的数据归档到本地/mysql-flash/archive/下,并删除源表中的相应数据(每次删除1000条数据)

pt-archiver --source h=172.16.80.58,u=root,p=123,D=test,t=t5,A=utf8mb4 --file='/mysql-flash/archive/t5_arc_%Y-%m-%d.sql' --where "id<10000"  --bulk-delete --limit=1000

(2)把源数据库test中的t5表中id<20000的数据归档到t5_arch中,并删除源表中的相应数据(每次删除1000条数据)需要保证t5_arch表存在

CREATE TABLE `t5_arch` (

 `id` int(11) NOT NULL,

 `c2` text COLLATE utf8mb4_bin,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin

;

 

pt-archiver --source h=172.16.80.58,u=root,p=123,D=test,t=t5,A=utf8mb4 --dest h=172.16.80.58,u=root,p=123,D=test,t=t5_arch,A=utf8mb4 --where "id<20000" --progress 1000 --bulk-delete --limit=1000

 

2. pt-online-schema-change在线DDL

Mysql对于DDL,如增删字段、添加索引等操作很不友好,严重时会导致mysql服务崩溃,可以使用pt-online-schema-change来在线DDL,避免DDL风险

pt-online-schema-change原理是在旧表的基础上根据DDL需求建新表,然后修改新表结构,插入数据到新表,最后旧表rename成old,新表rename成旧表

image.png

(1)重建表(指定原存储引擎,创建结构完全相同的表), 消除表碎片

pt-online-schema-change --alter "ENGINE=InnoDB" h=172.16.80.58,P=3306,u=root,p=123,D=sigcontrol_500101,t=adm_tfc_opt_inter_imbalance_d,,A=utf8mb4 --charset=utf8mb4 --execute

(2)添加索引

pt-online-schema-change --alter "ADD INDEX idx_write_time(write_time) USING BTREE" h=localhost,P=3306,u=root,p=123,D=sigcontrol_500101,t=dws_tfc_epd,A=utf8mb4 --charset=utf8mb4 --execute

(3)添加字段

pt-online-schema-change --alter="ADD COLUMN city_id INT" h=localhost,P=3306,u=root,p=123,D=sigcontrol_500101,t=dws_tfc_epd,A=utf8mb4 --charset=utf8mb4 --execute

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值