MySQL 开源工具集合

上次聊到MySQL官方运维工具。这次再了解下常用的开源工具。

目前已收集的并在实际环境中使用过的开源工具如下:

可以说掌握了这些工具(原理和使用技巧),MySQL的日常运维就更简单。

备注:介绍中图片部分是开源社区的,部分是自己按照思路画的,画图有助于理解。

在线DDL变更

pt-osc&gh-ost都是在线变更ddl的工具。

  • pt-osc在于触发器原理

  • gh-ost不依赖于触发器,通过模拟从库,在binlog中获取增量变更,再异步应用到ghost表

    备注:最终都会有RENAME表名的动作。

备份恢复工具

  • xtrabackup 二进制在线热备份工具,支持增量备份。目前物理备份中唯一的选择。全量方面,其实mysql8.0 clone也算是不错的选择。(高版本innobackupex已废弃)

  • mydumper是多线逻辑备份工具,一些自研产品常用的工具,myloader是sql语句导入工具 ,同一个软件包,跟mydumper结合使用。

压测工具

  • TPCC测试模拟了一个比较复杂的 OLTP应用环境,是一个在线零售公司。此公司对10万种商品进行销售,业务模型:批发零售系统,订单处理下的数据库的表现。

  • sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。单语句INSERT,SELECT,UPDATE下的数据库的表现。

区别在于TPCC测试的业务流程,sysbench测试的单语句执行性能。按照自需选择测试工具。

闪回工具

有时会误删或者误更新数据,binlog格式必须为row,且binlog_row_image=full,并且保留下来的情况下。可以分析binlog回转SQL语句进行恢复。就是delete→insert ,insert→delete,update→update方式按照时间顺序倒序回放。常用的工具有binlog2sql和MyFlash。

大众点评 binlog2sql:

  • 数据库服务必须在线状态

  • 开发语言Python 2.7, 3.4+

  • 仅支持 MySQL 5.6, 5.7
    https://github.com/danfengcao/binlog2sql

美团点评 MyFlash:

  • 仅支持MySQL 5.6与5.7

  • 只能回滚DML(增、删、改)

  • 开发语言c,mysqlbinlog工具配合sed、awk

  • 离线解析
    https://github.com/Meituan-Dianping/MyFlash

MyFlash做的性能对比:

  • binlog2sql是要分析数据库运行中的一些状态 和 BINLOG_DUMP协议获取binlog内容

  • mysqlbinlog是因为要把binlog解析的不是标准的SQL语句

  • MyFlash是直接生成标准sql语句,效率上更高

慢日志分析

pt-query-digest是 Percona-Toolkit 的组件之一,非常不错的日志分析工具,优于mysqldumpslow,可以从普通日志、慢查询日志、二进制日志以及show processlist和tcpdump中对SQL进行分析。

主从一致性验证

pt-table-checksum 是 Percona-Toolkit 的组件之一,用于检测MySQL主、从库的数据是否一致。其原理是在主库执行基于statement的sql语句来生成主库数据块的checksum,把相同的sql语句传递到从库执行,并在从库上计算相同数据块的checksum,最后,比较主从库上相同数据块的checksum值,由此判断主从数据是否一致。recursion-method 方式选择host方式。

其他

  • undrop-for-innodb分析ibd文件进行数据恢复工作。当误删除数据、无备份,且确保本地ibd文件没有写入,数据能恢复。但中文解析可能失败需注意。

  • innodb_rub
    innodb_ruby 主要可查看innodb数据库数据表的各种存储,解析innodb的文件,用于学习数据库底层的一些存储。

备注:这里可以结合官方innnchecksum,分析MySQL8.0的ibd文件结构,便于做个类似的工具

SQL审核web工具

基于Python 及 Django,利于二次开发改造,有开发能力,可以参考。主要是依赖于pt-toolkit进行整合开发的。

  • Yearning
    自动化SQL语句审核,可对SQL进行自动检测并执行。DDL/DML语句执行后自动生成回滚语句。前身是Inception。
    https://github.com/cookieY/Yearning

  • Archery
    集成SQL查询、审核、执行、备份、慢日志管理等功能。
    https://github.com/hhyo/Archery

客户端图形化管理工具

主要解决数据库管理员、程序开发者提供可视化的SQL开发、数据操作、以及数据库管理功能,易学易用。特别是数据导入导出功能和二进制数据转化图片方面,比较方便。但对于DBA来说是一个潜在的风险,长时间使用这些工具,命令行易忘记。
从上到下推荐:

  • Navicat

  • SQLyog

  • HeidiSQL:采用 Delphi 开发,支持 Windows 操作系统。支持 MySQL、MariaDB、Percona Server 和微软的 SQL Server

  • MySQL Workbench 官方管理重量级工具

  • PhpMyAdmin 安装部署比较麻烦,早起使用的多

总结

对于MySQL5.7版本这些工具目前支持的都非常友好,但8.0版本目前很多工具不兼容。

工具就是替代一部分功能,提高效率的。MySQL运维中提高工作效率,就需要引入这些工具,也需要使用得当,理解并熟悉用法,才是运维之道。

墨天轮原文链接:https://www.modb.pro/db/77114(复制到浏览器或者点击“阅读原文”立即查看)

关于作者
崔虎龙,云和恩墨MySQL技术顾问,长期服务于金融、游戏、物流等行业的数据中心,设计数据存储架构,并熟悉数据中心运营管理的流程及规范,自动化运维等。擅长MySQL、Redis、MongoDB数据库高可用设计和运维故障处理、备份恢复、升级迁移、性能优化。自学通过了MySQL OCP 5.6和MySQL OCP 5.7认证。2年多开发经验,10年数据库运维工作经验,其中专职做MySQL工作8年;曾经担任过项目经理、数据库经理、数据仓库架构师、MySQL技术专家、DBA等职务;涉及行业:金融(银行、理财)、物流、游戏、医疗、重工业等。
本文作者将于7月1日进行直播,在线分享MySQL常用运维工具的多个小妙招!扫码立即预约!
END
(0)

相关推荐

  • MySQL binlog日志三种模式选择及配置

    在认识binlog日志三种模式前,先了解一下解析binlog日志的命令工mysqlbinlog.mysqlbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制日志解析成可以在M ...

  • 一文扫盲MySQL数据库,看完这篇才能说精通(建议收藏)

    本文正式开始前,让我们先了解一下MySQL和数据库以及它们之间的关系. 数据库:保存有组织的数据的容器(通常是一个文件或一组文件),可以是保存在硬件设备上的文件. MySQL:是基于客户机-服务器的数 ...

  • 内部群炸了锅,隔壁同事真删库了啊。。

    事件起因 我们的系统中有数据导入的功能,可以把特定的格式的 excel 数据导入到系统中来. 由于客户电脑的文件比较多,很多文件的名字也比较相近,客户在导入 excel 时选错了文件. 这个错误的 e ...

  • 高性能MySQL【笔记】超详细

    一.MySQL架构与历史 A.并发控制1.共享锁(shared lock,读锁):共享的,相互不阻塞的 2.排他锁(exclusive lock,写锁):排他的,一个写锁会阻塞其他的写锁和读锁 B.事 ...

  • MySQL 8.0 官方运维工具集合

    如今,MySQL已经是非常普及的数据库,开源社区的支持也是非常活跃.谈到官方运维工具,大家都会用到mysqldump,其实除了这个之外还有一些实用的工具,今天帮大家梳理一下. 以下环境基于MySQL ...

  • 收藏 常用加解密工具集合|视频图片加解密方案

    今天 以下文章来源于转行程序员 ,作者王炸 转行程序员你要再说我写的文章没用我可就要报警了!! 最近工作需要做视频加密解密,大概需求就是摄像头录制好的视频实时加密存储到本地,防止别人拔掉存储卡把视频拷 ...

  • 大数据平台常见开源工具集锦(强烈推荐收藏)

    引言 大数据平台是对海量结构化.非结构化.半机构化数据进行采集.存储.计算.统计.分析处理的一系列技术平台.大数据平台处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据仓库工具无法处理完 ...

  • 10款最佳的MySQL GUI工具,DBA必备神器!

    MySQL是最广泛使用和流行的开源数据库之一,围绕它有许多工具,可以让设计,创建和管理数据库的过程变得更加容易和便捷.但是如何选择最适合自己需求的工具,并不容易.这里为大家推荐10款MySQL的GUI ...

  • 远程服务器运行 VS Code!这个开源工具厉害了

    来自:开源最前线(ID:OpenSourceTop)  综合自:https://github.com/zhaoolee/ChromeAppHeroes 程序员会通过云服务来加速软件开发效率,今天要介绍 ...

  • 用一个开源工具实现多线程 Python 程序的可视化 | Linux 中国

    原创 邀你一起成为开源贡献者 Linux中国   导读:VizTracer 可以跟踪并发的 Python 程序,以帮助记录.调试和剖析. 本文字数:4686,阅读时长大约:6分钟 https://li ...

  • Wifi万能钥匙已被淘汰!这个开源工具太好用了!

    手机软件酱 1周前 WiFi 万能钥匙,很多人想必都不陌生,可能还曾使用过或正在使用.官方是介绍的: 全球网络共享平台,基于共享经济的模式,通过云计算和大数据技术,利用热点主人分享的闲置 WiFi 资 ...

  • GO语言必备的五大开源工具

    大家都知道编程语言众多,其中有python.GO语言.JAVA语言.PHP语言,而GO语言因为具有广泛的优势,深受大家的喜欢和关注.那么GO语言常用的开源工具有哪些? 1.Go Revive:Revi ...

  • 10大热门人工智能开源工具(框架)

    摘要: 本文讲了10个热门的人工智能开源工具/框架. 下面是我们今天要讲的10个热门的人工智能开源工具/框架. 1.TensorFlow TensorFlow™是一个开源软件库,最初由Google B ...