PXC使用與總結

 

PXC使用與總結

 

1、PXC是什麼

基於Galera協議的Codership提供多主數據同步複製機制,可以實現多個節點間的數據同步複製以及讀寫,並且可保障數據庫的服務高可用及數據一致性。

基於Galera的高可用方案主要有MariaDB Galera Cluster和Percona XtraDB Cluster(簡稱PXC),目前PXC用的會比較多一些。

MariaDB的集羣原理跟PXC一樣,MariDB-Cluster其實就是PXC,兩者原理是一樣的。要搭建PXC架構至少需要3個mysql實例來組成一個集羣,三個實例之間不是主從模式,而是各自爲主,所以三者是對等關係,不分從屬。

 

2、PXC的特點

多主架構:真正的多點讀寫集羣,在任何時候讀寫的數據都是最新的。

同步複製:集羣不同節點之間的數據同步,沒有延遲,在數據庫掛掉之後,數據不會丟失。

併發複製:從節點在apply數據時,支持並行執行,有更好的性能表現,真正意義上的並行複製。

故障切換:因爲支持多節點寫入,所以在出現數據庫故障時可以很容易的進行故障切換。

熱插拔:在服務期間,如果數據庫掛了,只要監控程序發現的夠快,不可服務時間就會非常少,在節點故障期間,節點本身對集羣的影響非常小。

自動節點克隆:在新增節點或停機維護時,增量數據或基礎數據不需要人工手動備份提供,galera cluster會自動拉取在線節點數據,集羣最終會變爲一致。

對應用透明:集羣的維護,對應用程序是透明的,幾乎感覺不到。

PXC最大的優勢:強一致性、無同步延遲。

 

 

3、PXC的優缺點

3.1、PXC的優點

 

1)實現mysql數據庫集羣架構的高可用性和數據的強一致性。

2)完成了真正的多節點讀寫的集羣方案。

3)改善了傳統意義上的主從複製延遲問題,基本上達到了實時同步。

4)新加入的節點可以自動部署,無須提供手動備份,維護起來很方便。

5)由於是多節點寫入,所以數據庫故障切換很容易。

6)完全兼容MySQL;

 

 

3.2、PXC的缺點

 

1)新加入的節點開銷大,需要複製完整的數據。採用SST傳輸開銷太大。

2)任何更新事務都需要全局驗證通過,纔會在每個節點庫上執行,集羣性能受限於性能最差的節點。

3)因爲需要保證數據的一致性,所以在多節點併發寫時,鎖衝突問題比較嚴重。

4)因爲使用樂觀鎖,所以建議使用小事物。

5)存在寫擴大問題,所有的節點上都會發生相同操作。

6)只支持innodb存儲引擎的表。

7)沒有表級別的鎖定,執行DDL語句操作會把整個集羣鎖住,而且也 kill 不了(建議使用Osc操作,即在線DDL)

8)所有的表必須含有主鍵,不然操作數據時會報錯。

 

4、PXC的原理

4.1、名詞介紹

WS:write set 寫集

IST: Incremental State Transfer 增量同步

SST:State Snapshot Transfer 全量同步

 

pxc中一個事務=一個寫集=一個GTID(PXC特有)

GTID由UUID(集羣唯一) + seqno(集羣唯一)組成

4.2、工作原理

 

PXC使用的4個端口號

 

3306:數據庫對外服務的端口號

4444:請求SST用的。 SST: 鏡象傳輸方法 xtrabackup , rsync ,mysqldump

4567: 組成員之間進行溝通的一個端口號

4568: 傳輸IST用的。相對於SST來說的一個增量。

 

原理:

首先客戶端先發起一個事務,該事務先在本地執行,執行完成之後就要發起對事務的提交操作了。在提交之前需要將產生的數據寫集廣播出去,然後獲取到一個全局的事務ID號,一併傳送到另外的節點上面。通過合併數據之後,發現沒有衝突數據,執行apply_cd和commit_cb動作,如果發現衝突就需要取消此次事務的操作。而當前server節點通過驗證之後,執行提交操作,並返回OK,如果驗證沒通過,則執行回滾。當然在生產中至少要有3個節點的集羣環境,如果其中一個節點沒有驗證通過,出現了數據衝突,那麼此時採取的方式就是將出現不一致的節點踢出集羣環境,而且它自己會執行shutdown命令,自動關機。

 

 

4.3、節點狀態變化階段:

 

  open:節點啓動成功,嘗試連接到集羣。

  primary:節點已處於集羣中,在新節點加入時,選取donor進行數據同步時會產生的狀態。

  joiner:節點處於等待接收/接收數據同步文件時的狀態。

  joined:節點完成數據同步的工作,嘗試保持和集羣進度一致。

  synced:節點正常提供服務的狀態,表示已經同步完成並和集羣進度保持一致。

  doner:節點處於爲新加入的節點提供全量數據時的狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章