1. 程式人生 > >Mysql主從複製從庫狀態雙Yes及seconds_behind_master為0的故障分析

Mysql主從複製從庫狀態雙Yes及seconds_behind_master為0的故障分析

在監控Mysql主從叢集的時候,通常會使用以下三個引數

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

實際上,這種方式是有問題的。下面轉載的兩篇文章有詳細的描述。

簡單來說:如果由於某種原因,主庫的“執行緒”僵死,無法將binlog“推送”到從庫,那麼從庫的IO狀態將在“一段時間”內一直處於yes狀態,而SQL和SBM也分別處於YES和0的狀態,無法識別主從已經出現異常。

其中幾個比較關鍵的地方:

  • 負責推送binlog的執行緒binlog dump意外終止,從庫即無法接受到主庫的binlog日誌。
  • 從庫需要等待一段時間slave_net_timeout之後,才會感知到這種錯誤的發生。

轉載一:

MySQL同步狀態雙Yes的假象及seconds_behind_master的含義 

http://www.cnblogs.com/billyxp/p/3470376.html

Shows the replication heartbeat interval (in seconds) on a replication slave.

This counter increments with each replication heartbeat received by a replication slave since the last time that the slave was restarted or reset, or a 

CHANGE MASTER TO statement was issued.


轉載二:

請不要用Seconds_Behind_Master來衡量MySQL主備的延遲時間

http://www.woqutech.com/?p=1116

在mysql-5.6版本的環境中,按照作者的方法測試沒有成功。是因為5.6的多執行緒複製引起的麼?