11

推荐几款 MySQL 相关工具

 3 years ago
source link: https://xie.infoq.cn/article/c517f31dc58e60411f7f38120
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言:

随着互联网技术的不断发展, MySQL 相关生态也越来越完善,越来越多的工具涌现出来。一些公司或个人纷纷开源出一些不错的工具, 本篇文章主要介绍几款 MySQL 相关实用工具 。提醒下,这里并不介绍 Navicat 等这类图形化操作工具哦。

1. SQL 审核 web 工具

SQL 审核与执行,可能是各个公司或团队比较困扰的事情。若没有平台工具支持,只能通过人工的方式来处理,效率低且质量没办法保证。为了规范操作,提高效率,大多数团队可能会自己开发或引入开源工具。这里介绍两款 开源免费的 web 端 SQL 审核平台

Yearning

项目地址: https://github.com/cookieY/Yearning

项目简介: https://guide.yearning.io/

Yearning 是一款可满足大部分公司 SQL 审核需求的 web 端可视化 SQL 审核平台。在实现常规的 sql 审核功能外还添加了诸如数据查询等一系列便捷的功能。

BVVRFvN.png!mobile

n2m6Bju.png!mobile

主要功能

  • 自动化SQL语句审核,可对SQL进行自动检测并执行。

  • DDL/DML语句执行后自动生成回滚语句。

  • 审核/查询 审计功能。

  • 支持LDAP登录/钉钉及邮件消息推送。

  • 支持自定义审核工作流。

  • 支持细粒度权限分配。

优点

  • 颜值高,使用流畅。

  • 部分审核规则可自定义。

  • 部署简单,依赖项少。

  • 功能丰富,既能审核执行SQL又能查询。

  • 作者在持续维护,有社区支持。

Archery

项目地址: https://github.com/hhyo/Archery

使用文档: https://archerydms.com/

Archery 定位于 SQL 审核查询平台,旨在提升 DBA 的工作效率,支持多数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能,所有功能都兼容手机端操作。

V7BvEzf.png!mobile

fEZvU3U.png!mobile

主要功能

  • 集成 SQL 查询、审核、执行、备份。

  • 权限区分明确,审核执行分离。

  • SQL 工单自动审批、高危语句驳回。

  • 快速上线其他实例。

  • 慢日志管理、SQL 优化等运维功能。

  • 支持会话管理及参数配置。

  • 可集成其他工具插件。

优点

  • 除 MySQL 外,还支持多种主流数据库。

  • 功能更加丰富,真正做到一平台多用。

  • 具备 SQL 优化、慢日志管理等运维功能,对 DBA 更加友好。

  • 基于 Python 及 Django,利于二次开发改造。

对于 Yearning 和 Archery ,两者各有优缺点吧,都是优秀的开源工具。Yearning 只适用于 MySQL ,部署简单,功能清晰明了,上手容易。Archery 支持多种数据库,部署稍微复杂些,功能更加丰富,支持诸多高级运维功能。 没有哪个更好,只有哪个更合适

2. binlog 解析工具

前面文章也介绍过 binlog 解析相关内容及工具。利用 binlog 解析工具我们可以清楚看到数据库执行过的历史内容,并且可以得到反向内容可用于回滚。binlog 解析工具在 GitHub 上可以搜索到许多,这里介绍下常用的以下两款吧。

MyFlash

项目地址: https://github.com/Meituan-Dianping/MyFlash

MyFlash 是由美团点评公司技术工程部开发维护的一个回滚 DML 操作的工具。该工具通过解析 v4 版本的 binlog ,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。

主要功能

  • 解析 binlog ,回滚各类 DML 语句。

  • 提供原生的基于库、表、SQL类型、位置、时间等多种过滤方式。

  • 支持 MySQL 多个版本,支持 GTID 格式。

binlog2sql

项目地址: https://github.com/danfengcao/binlog2sql

binlog2sql 同样是开源的一款用于解析 binlog 的工具。安装简单方便,基于 Python 开发,源码入门简单。

主要功能

  • 可以解析出原始 SQL 、回滚 SQL 、去除主键的 INSERT SQL 等。

  • 数据快速回滚(闪回)。

  • 主从切换后新 master 丢数据的修复。

3. Percona Toolkit 工具包

Percona Toolkit 工具包是一组高级的管理 MySQL 的工具包集,可以用来执行各种通过手工执行非常复杂和麻烦的系统任务。简称 PT 工具,由 Percona 公司开发维护,是广大数据库维护人员的好帮手。

PT 工具包由各种小工具组成,不同工具有着不同的作用。主要功能包括检查主从复制的数据一致性、检查重复索引、归档数据、在线DDL等。下面简单介绍下几款常用工具的功能:

  • pt-archiver :主要用于清理、归档历史数据。

  • pt-duplicate-key-checker :列出并删除重复的索引和外键。

  • pt-kill :杀掉符合条件的数据库连接。

  • pt-online-schema-change :在线修改表结构,常用于大表 DDL 。

  • pt-query-digest :分析 MySQL 日志,并产生报告,常用于慢日志分析。

  • pt-table-checksum :校验主从复制一致性。

总结:

本篇文章简单介绍了 SQL 审核、binlog 解析、Percona Toolkit 几类工具,关于各个工具的使用方法,还需各位详细探索。感兴趣的同学可以安装学习下,好的工具能让工作事半功倍。

7JB7ZvF.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK