1. 程式人生 > >MySQL高可用方案-PXC(Percona XtraDB Cluster)環境部署詳解

MySQL高可用方案-PXC(Percona XtraDB Cluster)環境部署詳解

Percona XtraDB Cluster簡稱PXC。Percona Xtradb Cluster的實現是在原mysql程式碼上通過Galera包將不同的mysql例項連線起來,實現了multi-master的叢集架構。
下圖中有三個例項,組成了一個叢集,而這三個節點與普通的主從架構不同,它們都可以作為主節點,三個節點是對等的,這種一般稱為multi-master架構,當有客戶端要寫入或者讀取資料時,隨便連線哪個例項都是一樣的,讀到的資料是相同的,寫入某一個節點之後,叢集自己會將新資料同步到其它節點上面,這種架構不共享任何資料,是一種高冗餘架構。

技術分享
此方案無法解決較大MySQL資料場景的資料儲存問題,即不能實現分庫分表,但是提供了一個高冗餘的環境,適合於業務不是很大但是要求資料絕對安全的環境。

 

Percona XtraDBCluster提供的特性有:

1.同步複製,事務要麼在所有節點提交或不提交。
2.多主複製,可以在任意節點進行寫操作。
3.在從伺服器上並行應用事件,真正意義上的並行複製。
4.節點自動配置。
5.資料一致性,不再是非同步複製。

叢集特點:
a.叢集是有節點組成的,推薦配置至少3個節點,但是也可以執行在2個節點上。
b.每個節點都是普通的mysql/percona伺服器,可以將現有的資料庫伺服器組成叢集,反之,也可以將叢集拆分成單獨的伺服器。 叢集和單機間互換
c.每個節點都包含完整的資料副本。

優點如下:

1.當執行一個查詢時,在本地節點上執行。因為所有資料都在本地,無需遠端訪問。
2.無需集中管理。可以在任何時間點失去任何節點,但是叢集將照常工作。
3.良好的讀負載擴充套件,任意節點都可以查詢。


缺點如下:

1.加入新節點,開銷大。需要複製完整的資料。
2.不能有效的解決寫縮放問題,所有的寫操作都將發生在所有節點上。
3.有多少個節點就有多少重複的資料。
4.只支援innodb引擎。
5.所有表都要有主鍵。

 

 

Percona XtraDB Cluster與MySQL Replication區別在於:
分散式系統的CAP理論:
C— 一致性,所有節點的資料一致;
A— 可用性,一個或多個節點失效,不影響服務請求;
P— 分割槽容忍性,節點間的連線失效,仍然可以處理請求;
任何一個分散式系統,需要滿足這三個中的兩個。

MySQLReplication: 可用性和分割槽容忍性;
Percona XtraDBCluster: 一致性和可用性。
因此MySQL Replication並不保證資料的一致性,而Percona XtraDB Cluster提供資料一致性  強一致性