上一篇文章:历时1年,完成90%,发完之后,被官方提醒了:
这篇文章的标题应该够清晰了吧
不多扯了,开始今天的内容。
MySQL 有很多周边工具,这些工具提高了我们日常维护管理 MySQL 的效率。这一篇文章,我们就来总结一下这些工具。
1 Percona Toolkit
官方地址:
https://docs.percona.com/percona-toolkit/
常用的有这些:
pt-query-digest,分析MySQL查询,常用于分析 MySQL 慢查询。
pt-online-schema-change,可在线修改表结构,常用于生产环境大表修改表结构。
pt-table-checksum,验证MySQL复制完整性,常用于主从架构数据一致性校验。
pt-table-sync,同步 MySQL 表数据,多数情况与 pt-table-checksum 结合使用,用于修复不一致的数据。
pt-kill,kill掉符合特定条件的MySQL查询,通常用来查询或者 KILL 掉执行时间超过多少秒的 SQL。
pt-archiver,MySQL数据归档,常用来归档大表。
2 备份工具
除了官方的备份工具 mysqldump,其他常用的有:
xtrabackup,物理备份,之前小编写过一篇文章:Xtrabackup的几种备份和恢复方式。
官方链接:
https://www.percona.com/software/mysql-database/percona-xtrabackup
mydumper,逻辑备份
GitHub 地址:
https://github.com/mydumper/mydumper
3 闪回工具
我们可以借助一些工具实现 MySQL 闪回,比如:
binlog2sql,除了闪回功能,还支持主从切换后新 master 数据补偿,并且支持从 Binlog 中生成标准 SQL。
GitHub 地址:
https://github.com/danfengcao/binlog2sql
my2sql,解析出回滚语句,我们前面写的:MySQL执行delete误删除数据恢复,就讲了my2sql的用法。
GitHub地址:
https://github.com/liuhr/my2sql
mysqlbinlog_flashback,产生Binlog中的回滚SQL
GitHub 地址:
https://github.com/58daojia-dba/mysqlbinlog_flashback
4 数据同步工具
Otter,基于数据库增量日志解析,能将MySQL的数据同步到其他MySQL或者Oracle。
GitHub 地址:
https://github.com/alibaba/otter
go-mysql-transfer,MySQL数据库实时增量同步工具,支持多种接收端,比如:Redis、MongoDB、Elasticsearch、RocketMQ、Kafka、RabbitMQ、HTTP API等,
GitHub地址:
https://github.com/wj596/go-mysql-transfer
5 监控工具
Prometheus,目前比较流行的监控工具,前面也写过一篇文章:Prometheus+Grafana 监控 MySQL。
官方链接:
https://prometheus.io/
PMM,PMM(Percona Monitoring and Management )是一款免费的开源监控工具,可以用来监控 MySQL、MongoDB 和 PostgreSQL 等数据库。是对 Prometheus 和 Grafana 这些组件做了二次开发,监控数据更加丰富,部署也方便很多。
之前写过一篇文章:PMM 监控 MySQL。
官方链接:
https://www.percona.com/software/database-tools/percona-monitoring-and-management
Zabbix,Zabbix 算是历史悠久的监控工具了。
之前写过一篇文章:Zabbix 监控 MySQL。
官方链接:
https://www.zabbix.com/
6 SQL分析审核工具
Soar,SOAR(SQL Optimizer And Rewriter) 是一个对 SQL 进行优化和改写的自动化工具,
GitHub 地址:
https://github.com/XiaoMi/soar
SQLAdvisor,通过分析 SQL,可以给出索引优化建议,
GitHub 地址:
https://github.com/Meituan-Dianping/SQLAdvisor
Yearning,SQL 审核平台,基于 Go 语言编写,
GitHub 地址:
https://github.com/cookieY/Yearning
Archery,SQL 审核平台,基于 Python 语言编写,GitHub 地址:
https://github.com/hhyo/Archery
7 分库分表工具
MyCAT2,遵守 MySQL 原生协议、基于心跳的自动故障切换、支持读写分离等。
去年也写过一篇文章简单介绍过MyCAT2:MyCAT2和1.6是两个产品。
GitHub 地址:
https://github.com/MyCATApache/Mycat2
DBLE,基于MyCAT二次开发,在兼容性、复杂查询和分布式事务方面做了改进和优化,并修复了一些Bug。
GitHub 地址:
https://github.com/actiontech/dble
shardingsphere,分布式SQL事务和查询引擎,可在任何数据库上进行数据分片、扩展、加密等,
GitHub地址:
https://github.com/apache/shardingsphere
8 Online DDL工具
gh-ost,是一款用Go语言开发的MySQL在线改表工具,
GitHub 地址:
https://github.com/github/gh-ost
pt-online-schema-change,Percona开源的在线修改表结构工具。
地址:
https://docs.percona.com/percona-toolkit/pt-online-schema-change.html
9 MySQL高可用工具
MHA,可以根据需要扩展MySQL节点,支持任何存储引擎。
GitHub 地址:
https://github.com/yoshinorim/mha4mysql-manager/
Orchestrator,支持拓扑发现、集群重塑等功能。
之前也写过一篇文章介绍了部署方式,以及测试了高可用:Orchestrator实现MySQL故障切换。
GitHub 地址:
https://github.com/openark/orchestrator
Xenon,使用Raft协议的MySQL HA和复制管理工具。
GitHub 地址:
https://github.com/radondb/xenon
InnoDB Cluster(MGR),官方高可用解决方案,支持多节点写入,支持强一致性,这篇文章讲了MGR的部署:MySQL 高可用方案--MGR 第02期:部署。
官方文档:
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-innodb-cluster.html
10 欢迎留言区补充
如果你用过其他的一些MySQL工具,欢迎在留言区评论。
最近原创干货
什么?MySQL在从库读到了比主库更加新的数据?
一文弄懂Join语句优化
开发一套云上数据库巡检系统
MySQL执行delete误删除数据恢复
一文搞懂MySQL执行计划
MySQL 8.0 安装脚本
MySQL通过两种方式启动多实例
我们创建了 MySQL 交流社群,围绕开发、运维、DBA、架构师和其他需要用到 MySQL 的群体。
入群请加下方群秘微信,回复“进MySQL群”
点击下方阅读原文可跳转小编的DBA体系课。