前言:
随着互联网技术的不断发展, mysql 相关生态也越来越完善,越来越多的工具涌现出来。一些公司或个人纷纷开源出一些不错的工具,本篇文章主要介绍几款 mysql 相关实用工具。提醒下,这里并不介绍 navicat 等这类图形化操作工具哦。
1. sql 审核 web 工具
sql 审核与执行,可能是各个公司或团队比较困扰的事情。若没有平台工具支持,只能通过人工的方式来处理,效率低且质量没办法保证。为了规范操作,提高效率,大多数团队可能会自己开发或引入开源工具。这里介绍两款开源免费的 web 端 sql 审核平台。
yearning
项目地址:
https://github.com/cookiey/yearning
项目简介:
https://guide.yearning.io/
yearning 是一款可满足大部分公司 sql 审核需求的 web 端可视化 sql 审核平台。在实现常规的 sql 审核功能外还添加了诸如数据查询等一系列便捷的功能。
关于yearning
yearning首页
主要功能:
- 自动化sql语句审核,可对sql进行自动检测并执行。
- ddl/dml语句执行后自动生成回滚语句。
- 审核/查询 审计功能。
- 支持ldap登录/钉钉及邮件消息推送。
- 支持自定义审核工作流。
- 支持细粒度权限分配。
优点:
- 颜值高,使用流畅。
- 部分审核规则可自定义。
- 部署简单,依赖项少。
- 功能丰富,既能审核执行sql又能查询。
- 作者在持续维护,有社区支持。
archery
项目地址:
https://github.com/hhyo/archery
使用文档:https://archerydms.com/
archery 定位于 sql 审核查询平台,旨在提升 dba 的工作效率,支持多数据库的 sql 上线和查询,同时支持丰富的 mysql 运维功能,所有功能都兼容手机端操作。
archery介绍
archery首页
主要功能:
- 集成 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 工具包
官网地址:
https://www.percona.com/doc/percona-toolkit/3.0/index.html#
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 几类工具,关于各个工具的使用方法,还需各位详细探索。感兴趣的同学可以安装学习下,好的工具能让工作事半功倍。