主從複製解決方案:這是MySQL自身提供的一種高可用解決方案,數據同步方法採用的是MySQL replication技術。MySQL replication就是從服務器到主服務器拉取二進制日誌文件,而後再將日誌文件解析成相應的SQL在從服務器上從新執行一遍主服務器的操做,經過這種方式保證數據的一致性。爲了達到更高的可用性,在實際的應用環境中,通常都是採用MySQL replication技術配合高可用集羣軟件keepalived來實現自動failover,這種方式能夠實現95.000%的SLA。java
MMM/MHA高可用解決方案:MMM提供了MySQL主主複製配置的監控、故障轉移和管理的一套可伸縮的腳本套件。在MMM高可用方案中,典型的應用是雙主多從架構,經過MySQL replication技術能夠實現兩個服務器互爲主從,且在任什麼時候候只有一個節點能夠被寫入,避免了多點寫入的數據衝突。同時,當可寫的主節點故障時,MMM套件能夠馬上監控到,而後將服務自動切換到另外一個主節點,繼續提供服務,從而實現MySQL的高可用。mysql
Heartbeat/SAN高可用解決方案:在這個方案中,處理failover的方式是高可用集羣軟件Heartbeat,它監控和管理各個節點間鏈接的網絡,並監控集羣服務,當節點出現故障或者服務不可用時,自動在其餘節點啓動集羣服務。在數據共享方面,經過SAN(Storage Area Network)存儲來共享數據,這種方案能夠實現99.990%的SLA。sql
Heartbeat/DRBD高可用解決方案:此方案處理failover的方式上依舊採用Heartbeat,不一樣的是,在數據共享方面,採用了基於塊級別的數據同步軟件DRBD來實現。DRBD是一個用軟件實現的、無共享的、服務器之間鏡像塊設備內容的存儲複製解決方案。和SAN網絡不一樣,它並不共享存儲,而是經過服務器之間的網絡複製數據。數據庫
NDB CLUSTER:國內用NDB集羣的公司很是少,貌似有些銀行有用。NDB集羣不須要依賴第三方組件,所有都使用官方組件,能保證數據的一致性,某個數據節點掛掉,其餘數據節點依然能夠提供服務,管理節點須要作冗餘以防掛掉。缺點是:管理和配置都很複雜,並且某些SQL語句例如join語句須要避免。服務器
使用第三方的Tungsten軟件:使用java編寫,不是MYSQL內置的,一樣是MYSQL數據庫複製,不過他不是用MYSQL內置的組件來作的,不但支持MYSQL數據庫複製也支持異構數據庫的複製,並且對異構數據庫複製支持較好,例如MYSQL複製到ORACLE。網絡