暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 常用开源工具

DevOps实战 2022-01-06
470

MySQL 有很多周边开源工具,这些工具提高了我们日常维护管理 MySQL 的效率。这一篇文章,我们就来总结一下这些工具。

1 Percona Toolkit

官方文档:https://www.percona.com/doc/percona-toolkit/3.0/index.html

常用的有这些:

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,物理备份,官方链接: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

mysqlbinlog_flashback,产生 Binlog 中的回滚 SQL,GitHub 地址:https://github.com/58daojia-dba/mysqlbinlog_flashback


4 数据同步工具

Otter,基于数据库增量日志解析,能将 MySQL 的数据同步到其他 MySQL 或者 Oracle。GitHub 地址:https://github.com/alibaba/otter


5 监控工具

Prometheus,目前比较流行的监控工具,官方链接:https://prometheus.io/

PMM,PMM(Percona Monitoring and Management )是一款免费的开源监控工具,可以用来监控 MySQL、MongoDB 和 PostgreSQL 等数据库。是对  Prometheus 和 Grafana 这些组件做了二次开发,监控数据更加丰富,部署也方便很多。

Zabbix,Zabbix 算是历史悠久的监控工具了,官方链接: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 分库分表工具

MyCAT,遵守 MySQL 原生协议、基于心跳的自动故障切换、支持读写分离等。GitHub 地址:https://github.com/MyCATApache/Mycat-Server

DBLE,基于 MyCAT 二次开发,在兼容性、复杂查询和分布式事务方面做了改进和优化,并修复的一些 Bug。GitHub 地址:https://github.com/actiontech/dble

Atlas,在 MySQL 官方推出的 MySQL-Proxy 0.8.2 版本的基础上,修改了大量 Bug,添加了很多功能特性。GitHub 地址:https://github.com/Qihoo360/Atlas


8 压测工具

TPCC,业界比较常用的压测工具,GitHub 地址:https://github.com/Percona-Lab/tpcc-mysql

sysbench,不单单能对 MySQL 进行压测,也可以对 CPU、磁盘 IO 等方面进行压测。GitHub 地址:https://github.com/akopytov/sysbench


9 Online DDl

gh-ost,是一款用 Go 语言开发的 MySQL 在线改表工具,GitHub 地址:https://github.com/github/gh-ost

pt-online-schema-change,在文章前面的 percona-toolkit 部分有介绍。


10 MySQL 高可用工具

MHA,是一套比较成熟的 MySQL 高可用方案,GitHub 地址:https://github.com/yoshinorim/mha4mysql-manager/

Orchestrator,是一套 Go 语言编写的 MySQL 高可用中间件,支持拓扑发现、集群重塑等功能,GitHub 地址:https://github.com/openark/orchestrator

Xenon,是一个使用 Raft 协议的 MySQL HA 和复制管理工具,GitHub 地址:https://github.com/radondb/xenon


欢迎各位朋友关注这个公众号,后续会分享一些有关 Prometheus、KubernetesGitLab、Docker、Terraform、数据库、运维开发等内容。


文章转载自DevOps实战,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论