MYSQL數據庫高可用方案探究

MySQL做爲最關鍵的應用數據存儲中心,如何保證MySQL服務的可靠性和持續性,是咱們不得不細緻考慮的一個問題。當master宕機的時候,咱們如何保證數據儘量的不丟失,如何保證快速的獲知master宕機並進行相應的故障轉移處理,都須要仔細考慮與規劃。 前端

要保證MySQL數據不丟失,replication是一個很好的解決方案,而MySQL提供了一套強大的replication機制,replication能極大地提高數據安全,異步複製的方式也保證了sql讀寫性能不受太大影響。在大量企業長期的使用和實踐中,已經造成多套可靠的mysql高可用方案,如: keepalived+replication,MHA, MMM, heartbeat+共享存儲,mysql cluster等等。 mysql

HA的三種工做方式: sql

(1)主備方式 數據庫

工做原理:主機工做,備機處於準備情況;當主機宕機時,能夠配置備機接管主機的一切工做,待主機恢復正常後,再按使用者的設定是否將服務切換到主機上運行,mysql自帶的replication就是這樣的一種工做方式。 安全

(2)雙機互備方式 服務器

工做原理:兩臺主機同時運行服務工做且相互檢測服務可用性,當任一臺主機宕機時,另外一臺主機當即接管它的一切工做,保證業務連續性和可靠性,該雙機熱備方式須要第三方HA軟件的支持,如keepalived,heartbeat,以及ROSEHA等商業軟件。 架構

(3)集羣工做方式 負載均衡

工做原理:多臺主機一塊兒工做,運行一樣的一個或幾個服務,各服務定義一個或多個備用主機或實行負載均攤,當某個主機故障時,運行在其上的服務就能夠被其它主機接管,集羣內任何一個主機宕機不影響業務的持續性。Mysql cluster 就是這樣的集羣工做方式。 異步

先介紹如下爲幾種常見的mysql高可用方案: 性能

方案一: 

MYSQL+REPLICATION

方案概述:

MySQL複製基於主服務器在二進制日誌中記錄全部對數據庫的更改(更新、刪除等等)。所以,要進行復制,必須在主服務器上啓用二進制日誌 每一個從服務器從主服務器接收二進制日誌並保存到本地文件中,即中繼日誌。從服務器SQL線程讀取中繼日誌並執行日誌中包含的更新,從而使本地數據與主服務器保持一致。

方案拓撲:

image_thumb[1]

優勢:

成本低、經濟實惠、後期維護方便,整套系統架構簡單,故障率低,便於實現讀寫分離。

缺點:

不能實現故障自動轉移,須要人工干涉主從切換,更改應用層的數據庫IP地址。

 

方案二:

       MYSQL+KEEPALIVED/HEARTBEAT+共享存儲

方案概述:

本方案是典型的雙機熱備架構,採用高可靠性的HA雙機熱備軟件來保證數據庫服務的穩定性及連續性。正常狀況下兩臺mysql主機一臺出於active狀態,一臺出於standby狀態,HA軟件維持一個VIP提供對外訪問,當active主機出現問題宕機後,系統將自動切換到備機上繼續提供服務,而整個過程只須要幾秒到幾十秒的時間便可完成,當mysql主機故障維修完畢後,服務可自動回切。本方案需共享存儲的支持,全部mysql數據均保存在共享存儲上。

方案拓撲:

image_thumb[5]

優勢

維護簡單,安全性、穩定性高,出現故障系統將自動切換,採用vip故障切換應用層無感知。

缺點

須要有共享存儲設備,成本較高,雙機熱備不支持讀寫分離。

 

方案三:

MYSQL+MASTER-MASTER-REPLICATION+LVS/HAPROXY/NGINX


方案簡介:
本方案基於mysql replication技術,採用master-master replication的雙主複製模式,兩臺服務

器均可讀可寫,都處於active狀態,前端LVS(或HAPROXY或NGINX)代理並路由訪問請求,將

寫請求(應用層實現讀寫分離)分發到server1,將讀求分發到server2[或負載均衡到server1和

server2],server1和server2互爲主從,當任何一臺發生故障時可雙向實現故障轉移,故障恢復可自

動回切。


方案拓撲:

image_thumb[7]

優勢:
秒級故障自動切換,可自動回切,採用固定ip故障切換應用層無感知,可實現讀寫分離。
缺點:
架構稍顯複雜,後期有必定維護難度,包括其餘master-master replication 架構的缺點。

 

方案四:

MYSQL+REPLICATION+MHA

方案簡介:
MHA是一位日本MySQL大牛用Perl寫的一套MySQL故障切換方案,來保證數據庫系統的高可用。
在宕機的時間內(一般10—30秒內),完成故障切換,部署MHA,可避免主從一致性問題,不影
響服務器性能,不改變現有部署,支持在線切換,從當前運行master切換到一個新的master上面,
只須要很短的時間,此時僅僅阻塞寫操做,並不影響讀操做,便於主機硬件維護。在有高可用和數
據一致性要求的系統上,MHA 提供了有用的功能,當master crash後,MHA自動識別slave間
relay log events的不一樣,而後應用到不一樣的slave,最終全部slave都同步。

方案拓撲:

image_thumb[9]

優勢:  使用vip提供訪問請求,有最好的數據一致性,master crash不會致使其它從庫不一致性,故障自動 快速切換,方案較爲成熟,可實現一主多從,支持讀寫分離。 缺點:     需3臺及以上服務器,發生故障切轉移後主程序自動退出,需排除故障後手動添加到ha集羣再啓動 MHA,維護難度較大。

相關文章
相關標籤/搜索