博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
percona-toolkit常用命令
阅读量:2064 次
发布时间:2019-04-29

本文共 2619 字,大约阅读时间需要 8 分钟。

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

可以在percona官网上下载

 

 

一、系统相关命令

  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

 

转载地址:http://xlwmf.baihongyu.com/

你可能感兴趣的文章
《redis设计与实现》 第二部分(第9-11章):单机数据库的实现
查看>>
算法工程师 面经2019年5月
查看>>
搜索架构师 一面面经2019年6月
查看>>
稻草人手记
查看>>
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>