MYSQL高可用集羣方案總結服務器
一,常見的高可用MYSQL解決方案
網絡
高可用解決方案:架構
1,數據共享或同步數據,數據共享可經過SAN(Storage Area Network)來實現,數據同步可經過rsync軟件或DRDB技術來實現ide
2,處理failover,宕機遷移至備份服務器,不影響業務運行spa
主從複製解決方案:日誌
MySQL自身的高可用解決方案,數據同步方法採用的是MYSQL replication技術,MYSQL replication技術是日誌複製的過程,一主多從,從服務器拉取主服務器的二進制日誌文件,而後再將日誌文件解析成相應的SQL在從服務器上執行,來達到數據的一致性。orm
注意:此處的從服務器只能提供讀操做,而且當主服務器發生故障事,必須手動failover,將一臺從服務器變成主服務器,實現90%的SLA(服務水平協定),通常在應用環境,MYSQL replication技術配合高可用的集羣軟件來實現自動的failover,達到95%的SLAhtm
MMM高可用解決方案:進程
MMM(Master-Master Replication Manager for MYSQL)MYSQL主從複製管理器,提供了MYSQL主主複製配置的監控,故障轉移和管理的一套可伸縮的腳本套件。在MMM高可用解決方案中,典型的應用是雙主多從架構,經過MYSQL replication技術實現兩臺服務器互爲主從,且在任什麼時候候只有一個節點能夠寫入,避免多點寫入的數據衝突。同時,當可寫的主節點故障時,MMM套件能夠馬上監控到,而後將服務自動切換到另外一個主節點,繼續提供服務,來實現MYSQL高可用。這種方案是比較成熟的的MYSQL高可用解決方案,能夠實現99%的SLA。get
Heartbeat/SAN高可用解決方案:
此解決方案是藉助第三方軟硬件實現的,這個方案處理failover的方式是高可用的集羣軟件Heartbeat,它監控和管理各個節點間的鏈接的網絡,並監控集羣服務,當節點出現故障或者服務不可用時,自動在其餘節點啓動集羣服務。
在數據共享方面,經過SAN存儲在共享數據,在正常狀態下,集羣主節點將掛載存儲進行讀寫,當集羣發生故障時,Heartbeat會首先經過一個仲裁設備將主節點掛載的存儲設備釋放,而後在備用節點上掛載存儲,啓動服務。這種方式特色是成本高,存在腦裂的可能,可實現99.99%的SLA
Heartbeat/DRDB高可用解決方案:
這個也是藉助第三方軟件實現的,處理failover依舊採用Heartbeat,不一樣的是,數據共享方面採用了基於塊級別的數據同步軟件DRDB(Distributed Replicated Block Device(DRBD)是一個用軟件實現的、無共享的、服務器之間鏡像塊設備內容的存儲複製解決方案)來實現。和SAN不一樣的是,SAN是共享,DRDB是經過服務器之間的網絡複製數據。特色:複雜,存在腦裂問題,可實現99.9的SLA
MYSQL Cluster高可用解決方案:
MYSQL Cluster由一組服務節點構成,每一個服務節點上均運行着多種進程,包括MYSQL服務器、NDB Cluster的數據節點、管理服務器,以及專門的數據回訪程序,特色,功能強大,配置繁瑣,可達到99.999%的SLA