Mysql

在主伺服器上執行“顯示從屬狀態”會顯示什麼?

  • November 30, 2021

我們使用的監控軟體會拋出一個錯誤,說Slave_IO_Running正在返回以在我們的伺服器No上進行複制。事實上,當在主伺服器上執行時,它顯示但顯示.show slave status``Slave_IO_Running``No``Slave_SQL_Running``Yes

我知道該show slave status命令需要在從屬伺服器上執行,而不是在主伺服器上執行,並且任何伺服器都可以是主伺服器和/或從伺服器。據我所知,這台伺服器實際上只是一個主伺服器,而不是任何其他伺服器的從屬伺服器。

我想知道為什麼監控軟體將此顯示為嚴重錯誤,以及是否值得關注。據我所知,複製執行順利,但希望從監控軟體中清除此錯誤。我是否正確,如果這是主伺服器,Slave_IO_Running: No以及主伺服器show_slave_status上的任何其他輸出都沒有意義?

主/從複製

在主/從複製中,您不應該有任何來自SHOW SLAVE STATUS\G主伺服器的輸出。如果您看到任何輸出,則很可能是陳舊的並且不再需要。您可以使用以下命令將其刪除

STOP SLAVE;
RESET SLAVE ALL;

在 Master 上執行這些命令後,您應該從SHOW SLAVE STATUS\G

mysql> show slave status\G
Empty set (0.00 sec)

mysql>

警告 !!!: 不要在 Slave 上執行這些命令(Breaks Replication)

大師/大師複製

在主/主複製中,兩個主都是彼此的從屬。如果您的數據庫拓撲是主/主複製,那麼這是一個合法的錯誤情況。該消息Slave_IO_Runninng: Yes意味著有一個數據庫連接到另一個數據庫伺服器並收集已經在另一個數據庫伺服器上執行的二進制日誌事件。當您擁有Slave_IO_Runninng: No時,沒有返回到其他數據庫伺服器的數據庫連接。

這可以解決,START SLAVE;但請在執行之前找出原因(防火牆問題、伺服器之間的網路中斷等)。

您的實際問題

您詢問

我是否正確,如果這是主伺服器,Slave_IO_Running: No 就像主伺服器上 show_slave_status 的任何其他輸出一樣沒有意義?

SHOW SLAVE STATUS\G來自Master/Slave Replication(而不是 Master/Master Replication)的 Master 上的輸出沒有意義。您可以STOP SLAVE; RESET SLAVE ALL;在該 Master 上執行,這樣監控軟體就可以停止向您發出警報。

引用自:https://dba.stackexchange.com/questions/303298