MySQL常用工具

2024年 4月 29日 73.2k 0

上一篇文章:历时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体系课。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论