上一期【美创运维日记|pt-archiver助你成为一个优雅搬运工】中我们介绍了如何做一个优雅搬运工,这一期给大家介绍如何做一个查找机器。
现实运维中面对着这样一个问题,随着业务不断运行,表的数量越来越多。如何快速根据我们条件的查找到对应的表呢?
(虽然可以通过SQL语句也可以进行实现ヾ(o???)?ヾ)
但是这里给大家推荐pt-find工具,更方便大家来进行查找 mysql 表,并对符合条件的表执行指定的命令。
pt-find工具
模板:
pt-find [OPTION...] [DATABASE...]
常用参数列表
图1:常见参数列表
那我们学会了秘籍,下面我们根据几个实际环境进行学习 ~
范例
1. 查找库中1天以前创建的 InnoDB 的表 ,并打印
注:
默认区分大小写(InnoDB与InnoDb不同),使用--case-insensitive参数
2. 查找库中1天以前更改过的数据库名字匹配%hostsops%的并且引擎为 MYISAM 的表,并将表的引擎更改为InnoDB 引擎
3. 查找库中a库和b库中的空表,并删除
4. 查找库中超过100M的表
5. 查找库中所有的表并且打印出表大小(数据加索引),并且自动排序
6. 执行插入操作
以上,pt-find 工具常用的场景均已涉及,包括查找最近创建的表、表大小并可进行批量操作等等,使用前需提前测试并熟悉相关工具。