MySQL命令行工具:percona-toolkit安装使用初探

导读:percona-toolkit源自Maatkit 和Aspersa工具,这两个工具是管理mysql的最有名的工具,现在Maatkit工具已经不维护了,请大家还是使用percona-toolkit吧!这些工具主要包括开发、性能、配置、监控、复制、系统、实用六大类,作为一个优秀的DBA,里面有的工具非常有用,如果能掌握并加以灵活应用,将能极大的提高工作效率。

MySQL命令行工具:percona-toolkit安装使用初探

一、 工具简介

percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql任务和系统任务,这些任务包括:

  • 检查master和slave数据的一致性
  • 有效地对记录进行归档
  • 查找重复的索引
  • 对服务器信息进行汇总
  • 分析来自日志和tcpdump的查询
  • 当系统出问题的时候收集重要的系统信息

二、工具安装

①、下载安装包

Percona-toolkit安装包:

最新rpm包:http://percona.com/get/percona-toolkit.rpm

最新编译包:http://percona.com/get/percona-toolkit.tar.gz (本文略)

 

Perl-TermReadKey安装包:

访问:http://pkgs.repoforge.org/perl-TermReadKey/ 下载最新rpm安装包

②、安装记录

若发现缺失组件,则使用yum在线安装即可:

 yum install -y perl-IO-Socket-SSL  

成功安装后,系统会多出如下pt命令:

三、使用初探

pt有很多实用功能,但我就是奔着alter不锁表去的,所以率先测试 pt-online-schema-change 这个字段属性修改工具。

  • pt-online-schema-change

①、功能介绍

如果没有这个工具,直接使用alter修改字段,过程如下:

  • 按照原始表(original_table)的表结构和DDL语句,新建一张不可见的临时表;
  • 在原表上加write lock,此时对原表的所有U D I DDL 都是阻塞的;
  • 执行insert into tmp_table select * from oldtable;
  • rename oldtable 和 tmp_table,再drop oldtable;
  • 释放 write lock。

为了避免锁表,该换 pt-online-schema-change 出马了!

pt-online-schema-change 的 工作过程解析如下:

  • 如果存在外键,根据alter-foreign-keys-method参数的值,检测外键相关的表,做相应设置的处理。
  • 创建一个和你要执行 alter 操作的表一样的新的空表结构(是alter之前的结构)。
  • 在新表执行alter table 语句,
    在原表中创建触发器(3个)三个触发器分别对应insert,update,delete操作
    从原表拷贝数据到临时表,拷贝过程中通过原表上的触发器在原表进行的写操作都会更新到新建的临时表。
  • Rename 原表到old表中,在把临时表Rename为原表,默认最后将原表删除,将原表上所创建的触发器删除。

因此,这个工具有如下限制:

  • 表必须是单一列的主键或者单一唯一键。
  • 若表存在外键,则需要指定参数 --alter-foreign-keys-method=auto|rebuild_constraints|drop_swap|none,而且外键不能有错误
  • 表上不能有触发器,否则修改失败。如果有触发器,需要先删除触发器再执行PT,最后再增加触发器。

②、demo

③、测试记录

在测试数据库上随便导入了一份现网的数据,居然就让我碰到了触发器和外键,人品不错!

测试数据,本机无密码,所以直接执行:

结果如下报错:

对象表存在触发器!于是,将其中某个表的触发器全部删除,继续执行,又发现如下错误:

对象表存在外键!

于是加入 –alter-foreign-keys-method=drop_swap 参数成功执行:

新增字段成功:MySQL命令行工具:percona-toolkit安装使用初探

四、教程分享

除此之外,percona-toolkit 还有很多实用功能,比如:

pt-config-diff : 比较本地与远程MySQL配置文件差异

pt-heartbeat : MySQL主从复制延迟监控

pt-slave-find : 查找和打印所有从服务器复制层级关系

pt-table-checksum : 主从复制一致性检查

等等...

本文篇幅有限,且奔着不锁表在线修改表字段功能去的,更多功能的探索这里附上percona-toolkit 中文使用教程:

文件下载

无限续期,永久免费科学上网服务,你值得拥有!

您还未添加分享代码,请到主题选项中,添加百度分享代码!

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:33   其中:访客  31   博主  2

  1. 网赚 1 来自天朝的朋友 谷歌浏览器 Windows 7 山东省聊城市 电信

    多谢分享啊

  2. 孵化器 0 来自天朝的朋友 火狐浏览器 Windows 7 广东省深圳市 电信

    来访了

  3. 杭州牛牛工作室 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    可以 挺实用的

  4. 杭州牛牛工作室 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    不错 谢谢站长

  5. 不套路网赚 1 来自天朝的朋友 谷歌浏览器 Windows 7 广东省珠海市 电信

    感谢分享,目前还没用到

  6. 十三月 1 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    干货啊

  7. 十三月 1 来自天朝的朋友 谷歌浏览器 Windows 7 广东省广州市 电信

    欢迎来访十三月啤酒博客

  8. 香港服务器 3 来自天朝的朋友 谷歌浏览器 Windows 7 重庆市 电信

    有了MySQL命令行工具:percona-toolkit,执行各种通过手工执行非常复杂和麻烦的mysql任务和系统任务就简单多了

  9. 杭州牛牛工作室 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    博主记得时常更新哦

  10. 明月登楼的博客 5 来自天朝的朋友 QQ浏览器  Android 6.0.1 MI 4LTE Build/MMB29M 河南省南阳市 电信

    催更了博主!新年快乐!

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      新年快乐

  11. 何湘辉博客 1 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省株洲市 联通

    不错啊,更新频率挺高的,向博主学习。

    • 张戈 [博主] 来自天朝的朋友 QQ浏览器 Windows 7 广东省广州市 电信

      多交流~

  12. 杭州牛牛工作室 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    谢谢哈 群主记得时常更新哦

  13. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    不错哦

  14. 明月登楼的博客 5 来自天朝的朋友 QQ浏览器  Android 6.0.1 MI 4LTE Build/MMB29M 河南省南阳市 电信

    更新了,哈哈,不错!
    但是没有看懂!囧!

  15. 钓鱼小站 0 来自天朝的朋友 谷歌浏览器 Windows 7 福建省泉州市 联通

    签到成功!签到时间:上午10:39:59,每日签到,生活更精彩哦~

  16. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    功能真的很不错

  17. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    真心可以

  18. suppore 1 来自天朝的朋友 谷歌浏览器 Windows 10 湖南省张家界市 电信

    好久没来了,来学习学习。

  19. 何先生 0 来自天朝的朋友 谷歌浏览器 Windows 10 四川省成都市 电信

    没法评论了啊

  20. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    挺牛逼的啊

  21. 乐赚168 1 来自天朝的朋友 谷歌浏览器 Windows 10 河南省南阳市 联通

    来支持支持

  22. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    博主要更新哦

  23. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    非常感谢

  24. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市 联通

    到处都可以看到张戈

  25. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省忻州市代县 联通

    博主哪里去了最近?

  26. 杭州SEO优化 4 来自天朝的朋友 谷歌浏览器 Windows 7 山西省运城市 联通

    忘记了 再来学习一下

  27. 杭州SEO优化 4 来自天朝的朋友 搜狗浏览器 Windows 10 浙江省杭州市 电信

    博主那里去了

  28. 杭州SEO优化 4 来自天朝的朋友 搜狗浏览器 Windows 10 浙江省杭州市 电信

    来学习下

  29. 足球论坛 0 来自天朝的朋友 Netscape Navigator iPhone iPhone OS 10_2_1 like Mac OS X 四川省成都市 电信

    收藏了

  30. 代写论文 1 Romania 火狐浏览器 Windows 10 罗马尼亚

    经典的分享

  31. 人在江湖 0 来自天朝的朋友 谷歌浏览器 Windows 10 四川省内江市 电信

    谢谢分享

加载中,请稍候...