binlog_format产生的延迟问题
Posted tonnychen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了binlog_format产生的延迟问题相关的知识,希望对你有一定的参考价值。
问题:
一同事提出说从库延迟,我上去查看。发现一个怪现象,TPS其实很低,怎么就延迟了呢?
排查:
(1)查看性能数据,发现一个很怪的现象,比如17:36分这里,至17:38分,ins都为0,说明这个时候,系统卡住了。这意味着有一条语句,需要执行70秒。
show processlist可以发现是一条update语句。
生产环境标准化都是row格式,我还郁闷怎么能看到update语句。原来,这个群集,同事并没有用row格式,而是用了mixed格式。今天上午才修改为row格式,而当前在应用的仍是几天前的日志,仍是mixed格式的binlog,所以才会出现如上面update一条语句需要70秒的问题。
(2)为了验证当前应用的binlog的确是mixed格式,去主库查看binlog,发现的确不是row格式,而是以SQL格式保存,也即mixed的binlog。
解决:
(1)将binlog为mixed的修改为row格式,等待复制追上;
(2)扫描全部生产库,是否还有mixed格式的binlog,避免重复出现低级错误。
以上是关于binlog_format产生的延迟问题的主要内容,如果未能解决你的问题,请参考以下文章
mysql binlog_format row and Statement 比较
使用 binlog_format="row" 在只读副本上启用 BinLogs