判断mysql主从延时的方法(不依赖中间件)

用show slave status\G;命令查看从库的状态

1.以下的两调参数表明主从同步可以正常的运行

如果是Slave_IO_Running的参数不是YES则说明从库读取不到主库的bin-log日志,

如果是Slave_SQL_Running参数不是YES,则说明从库在读取中继日志发生问题。

Slave_IO_Running: Yes
 Slave_SQL_Running: Yes


2.查看Seconds_Behind_Master参数,

如果为0的话,则表示主从复制良好,

如果为正数的话,数字越大表示从库落后主库越多。

可以用2比较的前提是io_thread与master网络很好的情况下,原因是Seconds_Behind_Master是通过比较sql_thread执行的event的timestamp和io_thread复制好的 event的timestamp(简写为ts)进行比较,而得到的这么一个差值。我们都知道的relay-log和主库的bin-log里面的内容完全一 样,在记录sql语句的同时会被记录上当时的ts,所以比较参考的值来自于binlog,其实比较真正是发生在io_thread与sql_thread之间,而io_thread才真正与主库有关联, 当主库I/O负载很大或是网络阻塞,io_thread不能及时复制binlog(没有中断,也在复制),而sql_thread一直都能跟上 io_thread的脚本,这时Seconds_Behind_Master的值是0,也就是我们认为的无延时。

展示主从同步正常的效果图:

 slave

猜你喜欢

转载自blog.csdn.net/zhydream77/article/details/81270543