MySQL show processlist故障处理
MySQL中遇到问题,我们首先会去看show processlist,如果你的链接数量比较多,阻塞比较多的情况下,一般不太好查源头,我们还要手工执行一些sql ,才能定位问题,针对一些由于配置导致的MYSQL响应慢问题,也是需要进行一些排查。myanalyzer.py 这个工具能自动分析线程阻塞的原因,并给出建议,能非常方便的快速定位问题,针对对mysql不熟悉的人,也能使用这个工具进
MySQL脚本
工作中经常会遇到大事务导致的问题,需要获取大事务的详细信息,很多时候要去binlog查看当时的事务信息。这个脚本可以解析,生成top n大事务。https://github.com/baixiaoyu/dbascripts/blob/main/bigtrx.py 如果业务系统sql写的不好,或者由于一些操作导致了系统的卡顿,经常要去看processlist分析问题,如果线程数比较多的情况下,很难马
MySQL 半同步 与Raft对比
MySQL的after_sync半同步与raft 保证一致性的方式有些类似。after_sync是master在sync binlog后等待从库把事务写到relay log后的ack,拿到ack后,在commit,然后在返回给客户端提交成功的信息。raft也是leader先写日志,然后在等待大部分的节点信息都写入了日志,然后leader在提交,给其他节点提交信息,其他节点提交,然后在返回给客户端提
MHA 对比Orchestrator
在几个方面对比了下2个高可用工具
MySQL 系统表空间文件解析
看很多MySql的书籍,都提到了MySql的文件存储,书中很多的都是贴的源码中的数据结构,然后大概的描述了下存储方式,看完后感觉非常抽象,所以自己参考其他的解析工具自己实现了下。只是实现了系统表空间的部分解析,能够遍历系统表,解析出记录,通过这个项目,加深了体验,也是掌握了如何去解析数据文件,由于没有具体的应用场景,因此只实现了部分的解析。项目地址:gtihub 地址: htt
MySQL 数据对比
MySQL数据对比是常见的日常任务,使用pt-checksum 只能对比主从复制的数据,并且效率和使用上也不太方便。因此写了一个对比的工具,经过测试对比50张500万的表,能在30s内完成。要求,mysql 表必须有自增主键,对比期间不会加锁。对于不是非常非常高并发的主从复制,也可以进行数据的对比。可以非常方便的加入到日常的定时任务中。建议使用单独的机器运行对比,并把结果保存在单独的数据库实例中。