1、$ mysqlbinlog mysql-bin.000559 > bin000559.sql

mysqlbinlog: unknown variable 'default-character-set=utf8'


解决方法:

加--no-defaults参数后可以解决

mysqlbinlog --no-defaults mysql-bin.000559 |less


2、因为binlog日志格式是ROW,查看row模式二进制日志的sql格式命令如下

mysqlbinlog  --no-defaults --base64-output=decode-rows -v mysql-bin.000559 |less


3、业务binlog增加特别快,不到5分钟,写一个binlog,每个binlog 5OOM

分析binlog日志发现,频繁update一个表含有mediumblob

 binlog日志模式为row模式,每次更新会记录表中所有列值,含有大字段的行更新频繁,导致binlog增长过快!

mysql5.6中已新增参数binlog_row_p_w_picpath,我已将压测服的该参数设置为minimal,表示binlog日志只记录修改的列而不是行中所有列的值,如果行中的BLOGs 字段并不是每次都更新,则不会记录。

前提条件是:这些大字段的值本身在实际更新时的频率不高。


实际压测发现,原来不到5分钟生成一个500M的binlog,现在是8~9分钟一个500M的binlog。

效果不是很明显,所以还需要程序端来优化