說明:本文及其系列文章由作者翻譯自Galera Cluster官方文檔,若有不當之處,麻煩聯系作者處理,郵箱:[email protected]。轉摘請注明。
PS:在情人節到來之際,僅以此翻譯系列文章獻給我的女票蚊子,感謝将近6個年頭以來你對我的不離不棄,你使我更好!
Galera叢集是一個同步多主資料庫叢集,基于同步複制和Oracle的MySQL/InnoDB。 當Galera叢集在使用時,你可以直接往任一節點讀取和寫入,并且你可以不中斷叢集去丢棄任何單個節點,而無需處理複雜的故障轉移過程。
在更高層面上,Galera叢集由一個資料庫伺服器(即MySQL或MariaDB)組成,然後使用Galera複制插件來管理複制。更具體地說,MySQL複制插件API已經被擴充支援提供真正的多主同步複制所需的所有資訊和接口。此擴充API稱為寫集(Write-Set)複制API或wsrep API。通過wsrep API,Galera叢集提供基于認證的複制。複制事務(寫入事務)不僅包含要複制的資料庫行,而且還包括有關事務期間資料庫持有的所有鎖的資訊。然後,每個節點驗證緊靠在應用隊列中其他寫集的待複制的寫集。如果沒有沖突鎖,則寫集被應用寫入節點。此時,事務被認為已送出,之後每個節點将送出資料到表空間。這種方法也稱為虛拟同步複制,假定它在邏輯上是同步的,實際寫入和送出到表空間是獨立發生的,是以在每個節點上是異步的。
Galera叢集的優勢
Galera叢集為MySQL生态系統在高可用性(HA)方面提供了顯著改進。 僅通過Galera提供的一些功能就能實作MySQL的高可用性,為高可用性解決方案提供應用模式。
Galera叢集提供以下功能: 1.真正的多主模式,可以往任意節點任意時間讀和寫入。
2.異步複制沒有從庫延遲,在節點崩潰時沒有資料丢失。
3.緊耦合所有節點保持相同的狀态。 節點之間不允許分散資料。
4.多線程複制提供更好的性能和更多的負載 。
5.無主從故障切換操作,使用不受限制。
6.備用在故障轉移期間不用停機(因為沒有故障轉移)。
7.自動節點配置,無需手動備份資料庫并将其複制到新節點。
8.支援InnoDB。
9.對應用程式透明,無須(或最小的)更改應用程式。
10.不需要讀寫分離。 這是一個高可用性解決方案,在資料完整性和高性能與即時故障轉移方面都是穩健的。
Galera叢集的雲實施
Galera Cluster的另一個好處是良好的雲支援。 自動節點設定使得彈性向外擴充和伸縮操作沒有痛點。 Galera叢集已經被證明在雲中表現非常出色,例如,當使用多個小節點時,可以跨越多個資料中心 - 例如AWS區域 - 甚至是廣域網。
目錄
入門
節點初始化
安裝
系統配置
複制配置
叢集初始化
啟動叢集
測試叢集
重新開機叢集
技術說明
資料庫複制
主庫和從庫
異步和同步複制
解決同步複制中的問題
基于證書的複制
需要什麼基于證書的複制
基于證書的複制如何工作
Galera叢集中基于認證的複制
複制API
wsrep API
Galera複制插件
組通信插件
隔離級别
Galera叢集中的節點間隔離
了解隔離級别
狀态轉移
狀态快照傳輸(SST)
增量狀态轉移(IST)
流控制
流控制如何工作
了解節點狀态
節點狀态中的更改
節點故障和恢複
檢測單節點故障
叢集可用性與分區容差
從單節點故障恢複
權重
權重
權重計算
權重計算例子
配置
節點配置
節點如何加入叢集
狀态轉移
狀态快照傳輸
邏輯狀态快照
實體狀态快照
恢複主元件
了解主元件狀态
修改儲存的主元件狀态
重置權重
查找優先級最高節點
重置權重
管理流控制
監控流控制
配置流控制
自動收回
配置自動收回
檢查收回狀态
從以前的版本更新
模式更新
總順序隔離
滾動架構更新
更新Galera叢集
滾動更新
批量更新
僅供應商更新
可編寫腳本的狀态快照傳輸
使用常用SST腳本
狀态傳輸腳本參數
調用約定
啟用可編寫腳本的SST
Galera仲裁員
啟動Galera仲裁器
備份叢集資料
狀态快照傳輸作為備份
部署
叢集部署變式
沒有叢集
整堆棧聚類
資料層聚類
聚合堆疊叢集
負載均衡
HAProxy
Pen
Galera負載平衡器
容器部署
使用Docker
使用Jails
監控
監控叢集狀态
檢查叢集完整性
檢查節點狀态
檢查複制運作狀況
檢測慢網絡問題
資料庫伺服器日志
日志參數
其他日志檔案
通知指令
通知指令參數
示例通知腳本
啟用通知指令
安全
防火牆設定
使用iptables進行防火牆配置
使用FirewallD進行防火牆配置
使用PF的防火牆配置
SSL設定
SSL證書
SSL配置
狀态快照傳輸的SSL
SELinux配置
生成SELinux政策
遷移
與獨立MySQL伺服器的差別
伺服器差異
表配置中的差異
事務的差異
遷移到Galera叢集
更新系統表
從MySQL遷移到Galera Cluster
支援
故障排除
經常問的問題
伺服器錯誤日志
未知指令錯誤
使用者更改不複制
叢集在ALTER上停止
檢測慢節點
處理多主機沖突
雙節點叢集
示例
性能
配置提示
參考
MySQL wsrep選項
Galera參數
在MySQL中設定Galera的參數
Galera狀态變量
XtraBackup參數
Galera負載平衡器參數
配置參數
配置選項
版本控制資訊
版本号
Galera叢集的第三方實作