MySQL实例阻塞分析一例(线程statistics状态)

1. 现象 某日下午下班后低峰期,现网MySQL一个库突然报出大量慢sql,状态是 statistics,但是过后拿这些sql去执行的时候,实际很快。处于 statistics 状态的线程有个特征:查询的都是视图,但看监控那个时间段并没有明显的update/detele/insert。通过我们的快照程序,去分析当时的 innodb status,发现如下信息: ...

2017-09-23 · 5 min

MySQL实例阻塞分析一例(线程statistics状态)

1. 现象 某日下午下班后低峰期,现网MySQL一个库突然报出大量慢sql,状态是 statistics,但是过后拿这些sql去执行的时候,实际很快。处于 statistics 状态的线程有个特征:查询的都是视图,但看监控那个时间段并没有明显的update/detele/insert。通过我们的快照程序,去分析当时的 innodb status,发现如下信息: ...

2017-09-23 · 5 min

一个简单的数据订阅程序(for DBA)

本程序基于大众点评github项目 binlog2sql 二次开发而来,可以实现对源库的binlog实时接收,并组装成增量sql。 原项目默认是把sql输出到控制台,二次开发后的版本把sql放入redis队列,根据需要由另一个程序消费到目标库,模拟了一个“从库”。 在测试时--stop-never在qa环境没有作用,添加了在 BinLogStreamReader 实例里面加入 blocking=True 来保证源源不断的接受binlog而不中断。 ...

2017-09-05 · 3 min

一个简单的数据订阅程序(for DBA)

本程序基于大众点评github项目 binlog2sql 二次开发而来,可以实现对源库的binlog实时接收,并组装成增量sql。 原项目默认是把sql输出到控制台,二次开发后的版本把sql放入redis队列,根据需要由另一个程序消费到目标库,模拟了一个“从库”。 在测试时--stop-never在qa环境没有作用,添加了在 BinLogStreamReader 实例里面加入 blocking=True 来保证源源不断的接受binlog而不中断。 ...

2017-09-05 · 3 min

网易云跟帖迁移评论到disqus

早前折腾博客的时候,在众多评论系统中选择了多说,用了2年结果多说倒闭了,也算是影响了网络上众多的站点。 于是在16年的时候把评论换成了网易云跟帖,以为有网易这个靠山,体验虽然差点但是不会轻易关闭。云跟帖还提供了从多说直接导入的工具,随意旧的评论直接弄过来了。 ...

2017-08-29 · 3 min

网易云跟帖迁移评论到disqus

早前折腾博客的时候,在众多评论系统中选择了多说,用了2年结果多说倒闭了,也算是影响了网络上众多的站点。 于是在16年的时候把评论换成了网易云跟帖,以为有网易这个靠山,体验虽然差点但是不会轻易关闭。云跟帖还提供了从多说直接导入的工具,随意旧的评论直接弄过来了。 ...

2017-08-29 · 3 min

MySQL数据库表结构同步之mysqldiff

mysqldiff mysql官方有个 mysql-utilities 工具集,其中 mysqldiff 可用于比较两个db之间的表结构。 mysqldiff的语法格式是: 1 $ mysqldiff --server1=user:pass@host:port:socket --server2=user:pass@host:port:socket db1.object1:db2.object1 db3:db4 这个语法有两个用法: db1:db2:如果只指定数据库,那么就将两个数据库中互相缺少的对象显示出来,不比较对象里面的差异。这里的对象包括表、存储过程、函数、触发器等。 如果db1与db2名字相同,可以只指定 db1 db1.object1:db2.object1:如果指定了具体表对象,那么就会详细对比两个表的差异,包括表名、字段名、备注、索引、大小写等所有的表相关的对象。 如果两边db和对象名都相同,可以只指定 db1.object1 接下来看一些主要的参数: ...

2017-08-05 · 7 min

MySQL数据库表结构同步之mysqldiff

mysqldiff mysql官方有个 mysql-utilities 工具集,其中 mysqldiff 可用于比较两个db之间的表结构。 mysqldiff的语法格式是: 1 $ mysqldiff --server1=user:pass@host:port:socket --server2=user:pass@host:port:socket db1.object1:db2.object1 db3:db4 这个语法有两个用法: db1:db2:如果只指定数据库,那么就将两个数据库中互相缺少的对象显示出来,不比较对象里面的差异。这里的对象包括表、存储过程、函数、触发器等。 如果db1与db2名字相同,可以只指定 db1 db1.object1:db2.object1:如果指定了具体表对象,那么就会详细对比两个表的差异,包括表名、字段名、备注、索引、大小写等所有的表相关的对象。 如果两边db和对象名都相同,可以只指定 db1.object1 接下来看一些主要的参数: ...

2017-08-05 · 7 min

ProxySQL PPT分享

前些天在公司内部进行了一次 ProxySQL主题的介绍 《ProxySQL数据库中间件使用实践》,因为proxysql是我调研并引入公司的,有必要跟本组开发同学,进行一个正式的介绍和使用说明,以及我们当前的应用情况。 ...

2017-07-19 · 1 min

ProxySQL PPT分享

前些天在公司内部进行了一次 ProxySQL主题的介绍 《ProxySQL数据库中间件使用实践》,因为proxysql是我调研并引入公司的,有必要跟本组开发同学,进行一个正式的介绍和使用说明,以及我们当前的应用情况。 ...

2017-07-19 · 1 min