Mysql主從複製從庫狀態雙Yes及seconds_behind_master為0的故障分析
阿新 • • 發佈:2019-02-12
在監控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的含義
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的多執行緒複製引起的麼?