任何排查延迟呢? 有人说用show slave status里面的seconds_behind_master的选项,但是这个不是真正意义上的主从延迟标准。
看一下mysql的复制流程图:
主从延迟的时间边界应该是,数据从master端写入binlog开始到slave端应用binlog为止,这个过程是相对完整的数据同步过程。
所以如果产生延迟,那么就存在多种可能性,seconds_behind_master是比较sql_thread执行的event的timestamp和io_thread复制好的event的timestamp进行比较,得到的差。
如果master和slave端网络不好,io_thread端同步是瓶颈,从slave端看,sql_thread能够很快端应用日志数据,sbm却是0,这样造成一个幻觉,没有延迟,其实是由于网络不佳导致的。
如果master和slave机器的时间不一致,推送来的延迟是根据日志中的event时间来计算,结果也不对。