随着互联网技术的不断发展,MySQL相关生态越来越完善,越来越多的工具层出不穷。一些公司或个人开源了一些不错的工具。本文主要介绍几个MySQL相关的实用工具。提醒一下,这里不介绍Navicat等图形化操作工具。1、SQL审计web工具SQL审计和执行对于各个公司或者团队来说可能是一件比较麻烦的事情。如果没有平台工具支持,只能人工加工,效率低,质量无法保证。为了规范操作,提高效率,大部分团队可能会自行开发或引入开源工具。这里推荐两个开源免费的Web端SQL审计平台。Yearning项目地址:https://github.com/cookieY/Yearning项目介绍:https://guide.yearning.io/Yearning是一个Web端可视化SQL审计平台,可以满足大部分公司的SQL审计需求。除了常规的sql审计功能外,还增加了数据查询等一系列方便的功能。主要功能:SQL语句自动审核,可以自动检测并执行SQL。DDL/DML语句执行后自动生成回滚语句。审计/查询审计功能。支持LDAP登录/钉钉和邮件消息推送。支持自定义审核工作流程。支持细粒度的权限分配。优点:外形美观,使用流畅。可以自定义一些审计规则。部署简单,依赖性低。功能丰富,既可以审计也可以执行SQL和查询。作者持续维护并有社区支持。Archery项目地址:https://github.com/hhyo/Archery文档:https://archerydms.com/Archery位于SQL审计查询平台,旨在提高DBA的工作效率,支持SQL在线和查询多种数据库,同时支持丰富的MySQL运维功能,所有功能兼容移动端操作。主要功能:集成SQL查询、审计、执行、备份。权限明确,审计执行分离。自动审批SQL工单,拒绝高危语句。快速使其他实例联机。慢日志管理、SQL优化等运维功能。支持会话管理和参数配置。可以集成其他工具插件。优点:除了MySQL,还支持多种主流数据库。功能更加丰富,真正做到一机多用。具备SQL优化、慢日志管理等运维功能,对DBA更加友好。基于Python和Django,利于二次开发和改造。对于Yearning和Archery来说,两者各有优缺点,都是优秀的开源工具。向往只适用于MySQL。部署方便,功能清晰,使用方便。Archery支持多种数据库,部署稍微复杂一点,功能更丰富,支持很多高级运维功能。没有更好的,只有更适合的。2.Binlog分析工具上一篇文章也介绍了binlog分析的内容和工具。使用binlog分析工具,我们可以清楚的看到数据库执行的历史内容,并且可以得到反向的内容进行回滚。GitHub上可以搜索到很多binlog分析工具。下面介绍两种常用的。MyFlash项目地址:https://github.com/Meituan-Dianping/MyFlashMyFlash是由美团点评公司技术工程部开发维护的回滚DML操作工具。本工具通过解析v4版本的binlog来完成回滚操作。与现有的回滚工具相比,它增加了更多的过滤选项,使回滚更容易。主要功能:解析binlog,回滚各种DML语句。提供基于库、表、SQL类型、位置、时间等的原生过滤方式。支持MySQL多版本,支持GTID格式。Binlog2sql项目地址:https://github.com/danfengcao/binlog2sqlbinlog2sql也是一个开源的binlog解析工具。安装简单方便,基于Python开发,源码简单上手。主要功能:可以解析出原始SQL、回滚SQL、删除主键的INSERTSQL等,数据快速回滚(flashback)。修复主从切换后新master丢失的数据。3、PerconaToolkit官网地址:https://www.percona.com/doc/percona-toolkit/3.0/index.html#PerconaToolkit是一套高级的MySQL管理工具包,可以用来执行各种系统任务手动执行非常复杂和繁琐。PT工具简称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分析、PerconaToolkit等工具。您需要详细探索如何使用每个工具。有兴趣的同学可以安装学习,好的工具可以让工作更有效率。
