真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PXC/GaleraCluster集群概述及原理分析-創(chuàng)新互聯(lián)

mariadb的galera cluster集群抄襲percona的PXC數(shù)據(jù)庫集群,所以原理一樣

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)雙峰,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

### Galera Cluster/ PXC 集群工作原理

client端向server端發(fā)送dml更新操作請求時,server的native本地進程處理請求,并返回OK準(zhǔn)備接收,client發(fā)送commit更新事務(wù)給server,server將replicate writeset復(fù)制寫數(shù)據(jù)集發(fā)給group(cluster集群),cluster將該數(shù)據(jù)集對應(yīng)產(chǎn)生的唯一的GTID(global transaction ID)發(fā)送給集群每個server(節(jié)點)。當(dāng)前server節(jié)點驗證通過后,執(zhí)行commit_cd動作更新本地數(shù)據(jù)庫,并返回OK;若其他節(jié)點驗證不通過,則執(zhí)行rollback_cd,回滾剛提交的事務(wù)。其他server(other server)接收并驗證通過后,執(zhí)行apply_cd和commit_cd動作更新本地數(shù)據(jù)庫;若驗證不通過,則丟棄該數(shù)據(jù)集。

PXC / Galera Cluster集群概述及原理分析

任意節(jié)點收到sql請求,對于dml更新操作事務(wù),在commit之前,由wsrep API調(diào)用galera庫進行集群內(nèi)部廣播,驗證當(dāng)前事務(wù)是否能在所有節(jié)點中執(zhí)行,驗證通過后該事務(wù)真正提交到集群所有節(jié)點執(zhí)行,反之roll back回滾。此驗證機制則是為了保證所有節(jié)點的數(shù)據(jù)一致性。PXC / Galera Cluster集群概述及原理分析

innodb內(nèi)部使用悲觀鎖,保證事務(wù)的成功提交和執(zhí)行。

pxc/galera集群采用樂觀鎖,所有的事務(wù)都廣播給集群每個節(jié)點,驗證不通過再回滾

### PXC/Galera Cluster集群架構(gòu)

PXC / Galera Cluster集群概述及原理分析

group communication層:主要實現(xiàn)統(tǒng)一全局數(shù)據(jù)同步策略和集群內(nèi)部所有事務(wù)的排序,便于生成GTID

replication層:主要用于完成數(shù)據(jù)同步,由applier和slave queue組成。replication模塊的效率直接影響整個集群的寫入功能

### 主要名詞解釋

WS    write set寫數(shù)據(jù)集,寫/更新事務(wù)

IST  Incremental State Transfer增量同步

SST  State Snapshot Transfer增量同步。傳輸SST的幾種方法:mysqldump/xtrabackup/rsync

UUID    節(jié)點狀態(tài)改變及順序的唯一標(biāo)識

GTID    Global Transaction ID,由UUID和sequence number偏移量組成。wsrep api中定義的集群內(nèi)部全局事務(wù)id,用于記錄集群中發(fā)生狀態(tài)改變的唯一標(biāo)識以及隊列中的偏移量。

wsrep API    在DBMS庫和wsrep provider之間提供接口

commit      把事務(wù)所做的修改提交到數(shù)據(jù)庫,即在庫中執(zhí)行用戶的sql請求

### PXC/Galera Cluster集群端口

3306    數(shù)據(jù)庫對外提供服務(wù)的端口

4444    鏡像數(shù)據(jù)傳輸SST,集群數(shù)據(jù)同步端口,全量同步,新節(jié)點加入時起作用

4567    集群節(jié)點間相互通信的端口

4568    增量數(shù)據(jù)同步IST,節(jié)點下線、重啟后使用該端口,增量同步數(shù)據(jù)。

### 節(jié)點狀態(tài)

PXC / Galera Cluster集群概述及原理分析

  1. OPEN    節(jié)點啟動成功,嘗試連接到集群,如果失敗則根據(jù)配置退出或創(chuàng)建新的集群

  2. PRIMARY 節(jié)點已處于集群中,在新節(jié)點加入時,選取donor進行數(shù)據(jù)同步時會產(chǎn)生的狀態(tài)

  3. JOINER 節(jié)點處于等待接收/接收同步文件時的狀態(tài)

  4. JOINED  節(jié)點完成數(shù)據(jù)同步,但有部分數(shù)據(jù)沒跟上,在嘗試保持和集群進度一致的過程狀態(tài)

     例如某個節(jié)點故障后,重新加入集群,在追趕集群進度時的狀態(tài)

5. SYNCED    節(jié)點正常提供服務(wù)的狀態(tài),表示已經(jīng)同步完成并和集群進度保持一致。

6. DONOR    節(jié)點處于為新節(jié)點提供全量數(shù)據(jù)數(shù)據(jù)同步時的狀態(tài)。此時該節(jié)點對客戶端不提供服務(wù)。

##節(jié)點狀態(tài)發(fā)生變化因素

  1. 新節(jié)點加入集群 

  2. 節(jié)點故障恢復(fù),重新加入集群

  3. 節(jié)點同步失效

### PXC/Galera Cluster集群優(yōu)缺點

優(yōu)點:

    1.高可用性。集群多個節(jié)點功能平等,提供負載和冗余,避免單點故障

    2.強一致性。集群所有節(jié)點同步修改數(shù)據(jù),真正同步讀寫,不存延遲。

    3.易擴展。增加新節(jié)點,只需扔進集群,會自動完成SST全量同步,和后續(xù)IST增量同步

缺點:

    1.任何更新事務(wù)都需要全局驗證通過,才會在每個節(jié)點庫執(zhí)行。集群性能受限于性能最差的節(jié)點

    2.galera/pxc集群保證數(shù)據(jù)一致性,必須所有節(jié)點驗證通過。多點并發(fā)寫入,鎖沖突嚴重。

        例如:多臺同時有寫操作,每個更新操作時,都會鎖庫來驗證

    3.新節(jié)點或延后較大的節(jié)點重新加入時,會進行全量拷貝數(shù)據(jù)SST,作為donor(提供同步文件的節(jié)點)的節(jié)點在同步過程中無法提供讀寫,顯示狀態(tài)為donor。完成后的狀態(tài)為syncd

###當(dāng)galera cluster集群單個節(jié)點或所有節(jié)點停機情況分析

  1. 單個節(jié)點停機

    節(jié)點停機重啟,重新加入集群,通過IST增量同步數(shù)據(jù),來保持集群數(shù)據(jù)的一致性。IST的實現(xiàn)由wsrep_provider_options="gcache.size=1G"參數(shù)決定,一般設(shè)置為1G。參數(shù)大小由什么決定,根據(jù)停機時間,若停機一小時,需要確認一小時產(chǎn)生多大的binlog來算出參數(shù)大小。

1.1 停機時間過長,部分數(shù)據(jù)gcache沒有,此時該節(jié)點SST全量同步數(shù)據(jù)。

2. 所有節(jié)點關(guān)閉,應(yīng)采用輪巡滾動關(guān)閉的方式:a節(jié)點關(guān)閉修復(fù),加回集群;b節(jié)點關(guān)閉修復(fù),加回集群...

    原則就是保持cluster中最少一個成員存活,進行滾動重啟。

2.1 集群所有節(jié)點都關(guān)閉了,沒有存活的節(jié)點的情況

    每個節(jié)點數(shù)據(jù)庫關(guān)閉后,都會保存最后一個GTID,啟動集群時要先啟動最后一個關(guān)閉的節(jié)點,啟動順序和關(guān)閉順序相反。

3. 避免關(guān)閉和啟動節(jié)點時數(shù)據(jù)丟失

    3.1 原則保持cluster集群中最少有一個成員存貨,然后進行滾動重啟

    3.2 利用主從的概念,把一個從節(jié)點轉(zhuǎn)化為PXC/Galera集群中的節(jié)點

### 常見問題匯總

  1. 如果主節(jié)點(負責(zé)寫入的節(jié)點)寫入過大,apply_cd時間過長,導(dǎo)致數(shù)據(jù)更新操作時間過長,怎么處理?

    Wrep_slave_threads參數(shù)配置成cpu的個數(shù)或者1.5倍。

  2. 腦裂

    任何命令執(zhí)行出現(xiàn)unknown command,表示出現(xiàn)腦裂,集群中任意兩個節(jié)點間通信的4567端口不通,并且無法對外提供服務(wù)。SET GLOBAL wsrep_provider_options="pc.ignore_sb=true";

  3. 并發(fā)寫

    如果在集群多個節(jié)點進行寫/更新操作,有可能同時不同節(jié)點update同一行操作時就會出現(xiàn)鎖死問題,出現(xiàn):Error:1213 SQLSTATE:4001.解決:指定更新和寫入都在都一個節(jié)點操作。

  4. DDL全局鎖

    采用pt-online-schema-change

  5. 只支持innodb引擎,表結(jié)構(gòu)必須要有主鍵,不然會造成集中每個節(jié)點的data page里的數(shù)據(jù)不一致。

    不支持表級鎖,即不能lock/unlock tables,使用行級鎖

  6. 新節(jié)點加入加入&故障節(jié)點恢復(fù)加入集群,此時不能有寫操作,不然會導(dǎo)致被寫入的那臺庫DDL死鎖。所以需要暫停集群業(yè)務(wù)寫操作,等數(shù)據(jù)一致后在開啟寫操作。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文題目:PXC/GaleraCluster集群概述及原理分析-創(chuàng)新互聯(lián)
URL分享:http://weahome.cn/article/coodjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部