mysql percona online,mysql运维工具-percona-toolkit

下载地址

介绍

percona-toolkit是一个工具包,里面有很多命令。例如下面👇

pt-online-schema-change

可以在线整理表结构,收集碎片,给大表添加字段和索引。避免出现锁表导致阻塞读写的操作。针对 MySQL 5.7 版本,就可以不需要使用这个命令,直接在线 online DDL 就可以了。

./pt-online-schema-change --user=root --password=123456

--host=localhost --alter="ADD COLUMN city_id INT" D=test,t=su --execute

pt-query-digest

分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOW PROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.

./pt-query-digest --since=24h /data/mysql/slow.log > 1.log

pt-heartbeat

监控主从延迟。监控从库落后主库大概多少时间。

pt-table-checksum

检查主从复制一致性

pt-slave-restart

监控主从错误,并尝试重启MySQL主从

pt-ioprofile

定位IO问题,可通过IO吞吐量来定位。

pt-kill

重点介绍一下pt-kill工具。生产环境中我们时常遇到这样的情况,数据库性能恶劣,需要马上杀掉全部会话,不然数据库就挂起来。我们可以先找show processlist的输出来杀会话,但是比较麻烦。pt-kill为我们解决了杀会话问题。

详细文档:https://www.percona.com/doc/percona-toolkit/LATEST/pt-kill.html

每10秒检查一次,发现有 Query 的进程就给干掉

# 只打印-每10秒检查一次,发现有 Query 的进程就给干掉

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/1.log

# 执行杀操作

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command="Query" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/kill.log

查杀select大于30s的会话

# 只打印-查杀select大于30s的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 执行杀操作-查杀select大于30s的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-info "select|SELECT" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

查杀某IP来源的会话

# 只打印-查杀某IP来源的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 执行杀操作-查杀某IP来源的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-host "192.168.65.129" --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

查杀访问某用户的会话

# 只打印-查杀访问某用户的会话

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-user "u2" --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 执行杀操作-查杀访问某用户的会话

杀掉正在进行filesort的sql

# 只打印-杀掉正在进行filesort的sql

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command Query --match-state "Sorting result" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 执行杀操作-杀掉正在进行filesort的sql

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command Query --match-state "Sorting result" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

杀掉正在创建索引的sql

# 只打印

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command Query --match-state "Creating sort index" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --print --log=/tmp/pt_select.log

# 执行杀操作

pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='db222' --match-command Query --match-state "Creating sort index" --run-time 1 --busy-time 30 --victims all --interval 10 --daemonize --kill --log=/tmp/pt_select_kill.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值