数据同步延迟情况参考: show slave status; --> seconds_behind_master , 此参数表示同步延迟时间为多少秒 延迟时间点: 1.主库A执行完成一个事务,写入binlog,时间点time1 2.之后传给备库B,备库B接收完这个binlog,时间点time2 3.备库B执行完这个事务,时间点 time3 time3 减去 time1 的时间差为同步延迟时间,主要是在执行一个事务中备库与主库执行执行完的时间偏差 seconds_behind_master 计算方式: 1.每个事务的binlog里面都有一个时间字段,用于记录主库上写入的时间 2.备库取出当前正在执行的事务的时间字段的值,计算它与当前系统时间的差值,得到seconds_behind_master 如果主备库机器的系统时间设置不一致,不会导致主备延迟的值不准。备库连接到主库的时候,会通过SELECTUNIX_TIMESTAMP()函数来获得当前主库的系统时间。如果这时候发现主库的系统时间与自己不一致,备库在执行seconds_behind_master计算的时候会自动扣掉这个差值,网络正常情况下,主备延迟的主要来源是备库接收完binlog和执行完这个事务之间的时间差,主备延迟最直接的表现是,备库消费中转日志的速度,比主库生产binlog的速度要慢。
|