MySQL高可用方案介紹

84223932發表於2014-08-08

公司內部目前採用的有三種,PXC,MHA,MGR,MySQL5.6版本的採用MHA,5.7版本的採用MGR。

MHA

MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟的解決方案,該軟體由兩部分組成:MHA Manager(管理節點)和MHA Node(資料節點。

  • MHA Manager: 可以單獨部署在一臺獨立的機器上管理多個master-slave叢集,也可以部署在一臺slave節點上。
  • MHA Node: 行在每臺MySQL伺服器上。

MHA Manager會定時探測叢集中的master節點,當master出現故障時,它可以自動將最新資料的slave提升為新的master,然後將所有其他的slave重新指向新的master。整個故障轉移過程對應用程式完全透明。

Image result for mysql mha

MGR

MySQL官方推薦的一款高可用叢集方案MySQL Group Replication,基於Paxos協議的狀態機複製,徹底解決了基於傳統的非同步複製和半同步複製中資料一致性問題無法保證的情況,也讓MySQL資料庫涉及的領域更廣,開啟網際網路金融行業的大門。

組複製

組複製是一種可用於實現容錯系統的技術。複製組是一個通過訊息傳遞相互互動的Server叢集。複製組由多個Server成員組成,如下圖的Master1、Master2、Master3,所有成員獨立完成各自的事務。

當客戶端發起一個更新事務時,該事務先在本地執行,執行完成之後就要發起對事務的提交操作。在還沒有真正提交之前,需要將產生的複製寫集廣播出去,複製到其它成員。如果衝突檢測成功,組內決定該事務可以提交,其它成員可以應用,否則就回滾。

img

組複製可以在兩種模式下執行:

  • 單主模式下,組複製具有自動選主功能,每次只有一個 Server成員接受更新,其它成員只提供讀服務。
  • **多主模式下,**所有的Server 成員都可以同時接受更新,沒有主從之分,成員角色是完全對等的。

PXC

Percona XtraDB Cluster是MySQL高可用性和可擴充套件性的解決方案, 的特性如下:

1).同步複製,事務要麼在所有節點提交或不提交。

2).多主複製,可以在任意節點進行寫操作。

3).在從伺服器上並行應用事件,真正意義上的並行複製。

4).節點自動配置。

5).資料一致性,不再是非同步複製。

優點如下:

1).當執行一個查詢時,在本地節點上執行。因為所有資料都在本地,無需遠端訪問。

2).無需集中管理。可以在任何時間點失去任何節點,但是叢集將照常工作,不受影響。

3).良好的讀負載擴充套件,任意節點都可以查詢。

缺點如下:

1).加入新節點,開銷大。需要複製完整的資料。

2).不能有效的解決寫縮放問題,所有的寫操作都將發生在所有節點上。

3).有多少個節點就有多少重複的資料。

img

參考

相關文章