常見的高可用MySQL解決方案

chenfeng發表於2016-05-05
1. 主從複製解決方案
   主從複製解決方案是MySQL自身提供的一種高可用解決方案,資料同步方法採用的是MySQL複製技術。
MySQL複製就是一個日誌的複製過程,在複製過程中的一個伺服器充當主伺服器,而一個或多個其他伺服器充當從伺服器。
簡單說,就是從伺服器到主伺服器拉取二進位制日誌檔案,然後再將日誌檔案解析成相應的SQL在從伺服器上重新執行一遍
主伺服器的操作,透過這種方式保證資料的一致性。
   MySQL複製技術僅僅提供了日誌的同步執行功能,而從伺服器只能提供讀操作,並且當主伺服器出現故障時,必須透過
手動來處理故障轉移,通常的做法是將一臺從伺服器更改為主伺服器,這種解決方案在一定程度上實現了MySQL的高可用性,
可以實現90%的SLA(Service-Level Agreement)。
   為了達到更高的可用性,在實際的應用環境中,一般都是採用MySQL複製技術配合高可用叢集軟體來實現自動故障轉移,
這種方式可以實現95%的SLA。

2. MMM高可用解決方案
   MMM是Master-Master Replication Manager for MySQL的縮寫,全稱為MySQL主主複製管理器,它提供了MySQL主主複製
配置的監控、故障轉移和管理的一套可伸縮的指令碼套件。在MMM高可用方案中,典型的應用是雙主多從架構,透過MySQL複製
技術可以實現兩個伺服器互為主從,且在任何時候只有一個節點可以被寫入,避免了多點寫入的資料衝突。同時,當可用的
主節點出故障時,MMM套件可以立刻監控到,然後將服務自動切換到另一個主節點繼續提供服務,從而實現MySQL的高可用。
MMM方案是目前比較成熟的MySQL的高可用解決方案,可以實現99%的SLA。

3.Heartbeat/SAN高可用解決方案
   Heartbeat/SAN高可用解決方案是藉助第三方軟硬體實現的。在這個方案中,處理故障轉移的方式是高可用叢集軟體Heartbeat,
它監控和管理各個節點間連線的網路,並監控叢集服務,當節點出現故障或者服務不可用時,自動在其他節點啟動叢集服務。
   在資料共享方面,透過SAN儲存來共享資料,在正常狀態下,叢集主節點將掛接儲存進行資料讀寫,而當叢集發生故障時,
Heartbeat會首先透過一個仲裁裝置將主節點掛接的儲存裝置釋放,然後在備用節點上掛接儲存,接著啟動服務,透過這種方式
實現資料的共享和同步。這種資料共享方式實現簡單,但是成本較高,並且存在腦裂的可能,需要根據實際應用環境來選擇,這種
方案可以實現99.99%的SLA。

4.Heartbeat/DRBD高可用解決方案
  Heartbeat/DRBD高可用解決方案也藉助於第三方軟硬體來實現,在處理故障轉移的方式上依舊採用Heartbeat,不同的是,在資料
共享方面,採用了基於塊級別的資料同步軟體DRBD來實現。
  DRBD即Distributed Replication Block Device,是一個用軟體實現的,無共享的,伺服器之間映象塊裝置內容的分散式儲存複製
解決方案。和SAN網路不同,它不共享儲存,而是透過伺服器之間的網路複製資料,這種方案實現起來稍微複雜,同時也存在腦裂的
問題,可以實現99.9%的SLA。

5.MySQL Cluster高可用解決方案
  MySQL Cluster 是一種技術,該技術允許在無共享的系統中部署“記憶體中”資料庫的 Cluster 。透過無共享體系結構,系統能夠
使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個元件有自己的記憶體和磁碟,不存在單點故障。
MySQL Cluster 由一組計算機構成,每臺計算機上均執行著多種程式,包括MySQL伺服器,NDB Cluster 的資料節點,管理伺服器,
以及(可能)專門的資料訪問程式。
  MySQL Cluster由一組服務節點構成,每個服務節點上均執行著很多程式,包括MySQL伺服器,NDB Cluster的資料節點,管理伺服器,
以及專門的資料訪問程式。此解決方案是MySQL官方主推的技術方案,功能強大,但是由於實現過程較為繁瑣,配置麻煩,實際的企業應用
並不是太多。MySQL Cluster的標準版和電信版(針對電信運營商)可以達到99.999%的SLA。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2094003/,如需轉載,請註明出處,否則將追究法律責任。

相關文章