MySQL MMM是一種MySQL高可用性的解決方案,其原理是通過多主復制來實現自動切換和負載均衡。
MMM由3個角色組成:monitor、master和standby。Monitor通過對每個MySQL實例進行心跳檢測來監控MySQL的狀態。
monitor { nodes { node1 { host = "127.0.0.1" port = 3306 ... } node2 { host = "127.0.0.2" port = 3306 ... } } }
當其中一個MySQL實例出現問題時,Monitor會將該節點的狀態設置為“失效”,并自動將該節點上的數據同步到其他節點上。這些節點會在請求中被平均分配,從而實現負載均衡。
master { ... } standby { ... repl_user = "repl_user" repl_password = "repl_password" master = "127.0.0.1:3306" }
Master角色處理所有寫操作,并將數據傳輸到所有Standby節點。當Master節點故障時,某個Standby節點會自動被提升為新的Master節點。
當網絡閃斷或MK-Heartbeat進程出現故障時,MMM會觸發自動故障轉移過程。在轉移過程中,某個Standby節點會被選舉為新Master,并將所有寫操作重定向到新的Master節點。
heartbeat { device = "/dev/eth0" interval = 1 script "pidof mysqld >/dev/null || service mysql start >/dev/null" }
因此,MySQL MMM可以實現高可用性、自動切換和負載均衡,有效保證MySQL系統的穩定性和可靠性。
上一篇mysql mixed
下一篇mysql mnt