標籤:
A.普通的主從複製――――用戶端通過master對資料庫進行讀/寫操作,Slave端作為備機,可用來進行一些查詢,備份等操作。
優點:部署簡單,易於擴充,能提供一定的資料保護。
缺點:如果master主機硬體故障且無法恢複,則可能造成部分未傳送到Slave端的資料丟失;如果master端需要進行某些維護操作,將slave臨時作為master提供服務之後,又需要重新搭建主從環境,會對master造成一定的效能影響。
B.雙主複製――――兩個 mysql server互相將對方作為自己的master,自己作為對方的Slave來進行複製,一端提供寫服務,另一端讀服務或者僅僅作為備機不用提供任何服務,而且其還能夠跟一個或者多個Slave專門提供讀服務。
優點:最大的好處就是既可以避免主Master的寫入操作不會受到Slave叢集的複製所帶來的影響,同時主Master需要切換的時候也基本上不會出現重搭Replication的情況。
缺點:這個架構也有一個弊端,那就是備用的Master有可能成為瓶頸,因為如果後面的Slave叢集比較大的話,備用Master可能會因為過多的SlaveIO線程請求而成為瓶頸。
C.主從複製擴充:讀寫分離――――由一個master複製到一個或者多個Slave的架構模式,用戶端通過master對資料庫進行寫操作,通過Slave端進行讀操作,並可進行備份,master出現問題後,可以後動將應用程式切換到Slave端。該方案主要用於讀壓力比較大的應用系統中。
優點:結構靈活,資料庫端廉價擴充,能夠解決很多中小型網站的資料庫壓力瓶頸問題。
缺點:需要程式來實現讀寫分離,增加了程式的複雜度,如果伺服器架構調整或者有主機發生故障,還需要調整程式。
D.HearBeat+雙主複製――――hearbeat最核心包括的兩個部分是心跳監測和資源接管。使用hearbeat+mysql主主同步來實現mysql資料庫的 高可用,當master的主機或hearbeat宕機以後會自動切換到備用機上,當恢複以後可以自動切換回來,master繼續提供服務。
優點:配置簡單,能在一定的程度上避免單點故障。
缺點:如果master上的mysql掛掉,則無法檢測到並進行切換,需要一些指令碼來協助監控。預設切換到備用機後,不會自動啟動mysql,需要手動或者指令碼啟動,不方便擴充,可能會出現腦裂的問題。
E.Hearbeat+DRBD+Mysql――――本方案採用Hearbeat雙機熱備軟體來保證資料庫的高穩定性和連續性,資料的一致性有DRBD這個工具來保證。預設情況下只有一台mysql在工作,當主mysql伺服器出現問題後,系統將自動切換到備機上繼續提供服務,當主要資料庫修複完畢,又將服務切回繼續由主mysql提供服務。
適用情境:適用於資料庫訪問量不太大,短期內訪問量增長不會太快,對資料庫可用性要求非常高的情境。
優點:安全性高,穩定性高,可用性高,出現故障自動切換。
缺點:只有一台伺服器提供服務,成本相對較高,不方便擴充,可能會出現資料庫腦裂。
F.LVS+Keepalive+雙主複製――――lvs提供負載平衡,keepalive作為容錯移轉。伺服器單點寫入,讀實現負載很橫和故障切換。當網路、mysql服務、伺服器、keepalive服務出現故障後,伺服器能自動跳轉到備用機,當主伺服器服務啟動起來後會自動切換回來。
適用情境:適用於對資料庫可用性要求比較高,讀壓力比較大的情境(後端可跟一個或多個Slave伺服器,讓lvs實現讀的負載平衡)。這個方案也能夠很方便地進行單台資料庫的管理維護以及切換工作,比如進行大表的表結構更改,資料庫的升級等。
優點:高可用效率好,可以根據服務與系統的可用性多方面進行切換。可以將寫vip和讀vip分別進行設定,為讀寫分離做準備。擴充很方便。可以在後面添加多個從伺服器,並做到讀的負載平衡。
缺點:在啟動或者恢複後如果要實現指定條件替換或者不替換需要通過其他方式實現,比如:臨時更改mysql的連接埠等。安裝配置比單寫入稍微複雜,需要另外一個vip。管理比單寫入複雜。主切換後,從需要手工切換。主備切換需要1s左右的時間。
G.MMM+mysqlproxy+雙主複製――――MMM(mysql主主複製管理器)是一套靈活的指令碼程式,用來對mysql replication進行監控和故障遷移?並能管理mysql Master-Master複製的配置 。附帶的工具套件可以實現多個slaves的read負載平衡.兩個mysql server伺服器互為主從,MMM提供浮動IP的功能,如果當前的主伺服器掛掉後,用戶端的讀寫請求會通過漂移的虛擬IP自動轉移到另一台伺服器上,從而自動實現伺服器的容錯移轉,mysqlproxy實現了讀寫分離。
適用情境:這個方案是目前比較成熟的解決方案,適用於資料庫訪問量大,業務增長快的情境。適用於讀/寫比較高的web2.0應用中。
優點:安全性、穩定性高,可擴充性好,高可用好,當主伺服器掛掉以後,另一個主立即接管,其他的從伺服器能自動切換,不用人工幹預。
缺點:至少三個節點,對主機的數量有要求,對於即時性很高的場合可能需要做一些處理。
mysqlprox與mysql MMM整合的必要性:實現mysql資料庫層的負載平衡;資料庫節點實現HA動態切換;讀寫分離,降低主要資料庫負載
mysql高可用方案