数据库平台
之前写的一个数据库平台,使用的Django。本来数据库平台是包含了很多的部分,但是自己没有太多时间投入到上面,所以当时的数据库平台的各个部分使用了很多的开源系统,修改了部分代码适配后使用了,所以我的数据库平台中只是自己写了数据库cmdb 部分,还想讲一些统计信息放到上面进行展现,只是实现了慢查询统计的定时收集展现。定时任务通过celery执行。认证使用cas进行认证。代码实现了多环境,可以指定不同
数据库agent
其实这个已经没什么好说的了,都有一般的数据库管理都有agent,每个人有每个人的需求,可能做的也都不太一样。我的agent功能:1 配置文件中设置数据库类型,连接信息,支持设置多种实例的信息。 todo 现在的数据库信息是写在文件中,应该修改成自动发现的方式,自动识别数据库类型,不需要配置。2 db支持多种类型数据库,收集数据库的信息&nb
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 表必须有自增主键,对比期间不会加锁。对于不是非常非常高并发的主从复制,也可以进行数据的对比。可以非常方便的加入到日常的定时任务中。建议使用单独的机器运行对比,并把结果保存在单独的数据库实例中。