MySQL常用工具选择和建议
副标题[/!--empirenews.page--]
有句话说,工欲善其事,必先利其器,在MySQL方向尤其如此。 技术规划的时候,会发现有一些事情需要前置,比如说MySQL里面的工具,如果等到实际碰到了各色的问题再来统一,就比较难了。有沟通成本,人力成本,技术沉淀和持续交付等等的成本,这些最好提前和团队有一个基本的沟通,达成一个共识。内部统一了以后,和开发同学规范统一就有了一个基线。 大体来说,我考虑了以下几个方面的工具:
1. 运维管理工具 要说MySQL运维工具,当仁不让Percona-toolkit,它应该是我们学习MySQL需要熟练使用的一个运维工具。 Percona-tooolkit通常简称为pt工具,pt工具其实是工具Maatkit 和Aspersa的组合,它们都出自同一个作者:Baron Schwartz;其中,Maatkit工具更偏重于数据库层面,最开始就是Perl的基因。而Aspersa的范畴更倾向于系统层面,比如磁盘信息等。 在2017年开始进入了3.0时代,所以线上使用的版本几乎都是2.2(自2013年),距今已经跨越了好几个年头。 pt工具被Percona收至麾下,有专门的项目维护, 2. 数据备份恢复工具 在数据备份和恢复方面,主要依据是逻辑备份和物理备份,行业里主要有以下的一些备份工具: (1) mysqldump,MySQL最经典的逻辑备份工具,也是MySQL工具集里默认的工具,适用于一些数据量不大的数据备份工作。值得一提的是Facebook的生产环境都是使用mysqldump进行逻辑备份。 (2) mysqlpump ,MySQL新版本推出的备份工具,但是效果没有想象的那么好,最大的一个痛点应该就是备份的IO问题还是没法大幅度扩展,因为都在最后备份出来的那个文件上,没有拆分。 (3) mydumper,这个工具还算比价流行,能够对原来的mysqldump做一个很好的补充。腾讯云就是定制了mydumper来做为默认的备份工具. 另外和Mydumper配套的工具是myloader,作为数据的批量导入工具。 (4) Xtrabackup,来自Percona的工具,擅长做物理备份,而且更倾向于是全备+增备结合的方式。 3 数据库优化工具 (1)innotop 这是一款用Perl所写的MySQL监控工具,可以命令行模式调用展示MySQL服务器和InnoDB的运行状况,下载地址为:https://github.com/innotop/innotop 目前Github上提供了两种版本,一种是开发版(innotop-master),一种是稳定版(innotop-gtid),推荐使用稳定版,使用截图如下: (2)orzdba orzdba是淘宝DBA团队开发出来的一个Perl监控脚本,可以监控mysql数据库,也有一些磁盘和cpu的监控。使用截图如下: (3)mytop 这是一款类似 Linux 下的 top 命令风格的 MySQL 监控工具,可以监控当前的连接 用户和正在执行的命令。 (4)orztop 这是一款可以查看MySQL数据库实时运行的SQL状况的工具,如果你习惯于用show processlist/show full processlist抓取SQL,这款工具就是一个很好的补充。 (5)systemtap,是Linux下的动态跟踪工具,可以监控、跟踪运行中的程序或Linux内核操作,它带来的性能损耗很小,在一些特定的场景下可以编写SystemTap脚本来调试一些性能问题。 4 操作系统监控 (1) nmon,(Nigel’s Monitor)是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具,在系统数据采集方面使用广泛。 历史数据 (2) Mpstat ,Multiprocessor Statistics的缩写,是实时监控工具,,mpstat最大的特点是:可以查看多核心的cpu中每个CPU的统计数据 5 慢日志分析工具 (1)mysqldumpslow 这是MySQL产品包中的一个原生命令工具,它可以支持慢查询的统计分析,对MySQL查询语句的监控、分析、优化是MySQL优化是一个开始,相对来说,功能支持比较少。 (2)pt-query-digest 经典的慢日志分析工具,属于pt工具的一个子集。它基于Perl开发,与mysqldumpshow工具相比,py-query_digest 工具的分析结果更具体,更完善。 (3)mysqlsla 该工具是是daniel-nichter 用Perl 写的一个脚本,mysqlsla与pt-query-digest的作者是同一个人,现在是主打pt系列工具,现在已经不再维护了。 (4)Anemometer 一个图形化显示从MySQL慢日志的开源项目,基于php开发,充分结合了pt-query-digest,Anemometer可以很轻松的去分析慢查询日志,找到哪些SQL需要优化。 6 客户端工具 (1)SQLyog SQLyog 是一个快速而简洁的图形化管理MySQL数据库的工具,由业界著名的Webyog公司出品,属于付费产品。 (2)Navicat 是一套快速、可靠并价格适当的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设计,它的设计符合数据库管理员、开发人员及中小企业的需要,属于付费产品。 (3)MySQL Workbench 为MySQL设计的ER/数据库建模工具,可以支持数据库管理,数据迁移,数据建模等功能,它同时有开源和商业化的两个版本。 (4)SQL developer 这个工具是Oracle推出的一款免费的数据库管理工具,它主要支持Oracle,如果需要支持MySQL,需要额外下载一个驱动包即可使用。 7 性能监控工具 (1)Zabbix,一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,集监控报警于一身的强大功能,在互联网行业使用比例很高。 (2)Lepus 天兔是国内的一位DBA开发的一款开源的,基于php开发的数据库监控管理系统,可以对数据库的实时健康和各种性能指标进行全方位的监控,它本身可以支持MySQL、Oracle、MongoDB、Redis数据库的监控,在慢日志的功能设计方面很有亮点。 (3)mysql-statsd,一个收集 MySQL 信息的 Python 守护进程。并通过 StatsD 发送到 Graphite 8 性能测试工具 业务上线,环境初始化需要做烤机测试。主要就是让服务器先吃点苦头,看能不能经受住考验。在一定的测试之后,我们可以得到压测的数据结果,作为后续上线的基准参考。 行业里主要的性能测试工具有以下几类: (1) Sysbench,是一款主流的性能测试工具,本身是开源的,具备多线程压测能力,覆盖硬件和软件层面,产品隶属于Percona (2) tpcc-mysql,是Percona按照TPC-C开发的产品,主要用于MySQL的压测工具 (3) Mydbtest,该工具是有知名数据库专家楼方鑫先生开发,免安装,上手快,可以针对业务做定制化压测。 (4) mysqlslap,mysql自带的基准测试工具,自5.1.4版开始推出,可以通过模拟多个并发客户端访问MySQL来执行压力测试 9 数据库版本管理工具 liquibase,一个数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,目前日志文件支持多种格式,如XML, YAML, JSON, SQL等 10 MySQL审计 数据库审计是数据安全方面的一个重要参考,一个数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,是借助于审核工具希望能够感知的。 目前在MySQL审计方向主要存在以下几类审计插件: (1) 官方的商业版插件 (2) Percona Audit Log插件 (3) MariaDB 插件 初步结论: (1) 运维管理工具主要考虑Percona-toolkit,作为默认的初始化软件使用 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |