一、galera cluster 簡介
1、Galera Cluster:
集成了Galera插件的MySQL集羣,是一種新型的,數據
不共享的,高度冗餘的高可用方案,目前Galera Cluster有兩個版本,分
別是Percona Xtradb Cluster及MariaDB Cluster,Galera本身是具有多
主特性的,即採用multi-master的集羣架構,是一個既穩健,又在數據一
致性、完整性及高性能方面有出色表現的高可用解決方案。
如下圖圖示:三個節點組成了一個集羣,與普通的主從架構不同,
它們都可以作爲主節點,三個節點是對等的,稱爲multi-master架構,
當有客戶端要寫入或者讀取數據時,連接哪個實例都是一樣的,
讀到的數據是相同的,寫入某一個節點之後,集羣自己會將新數據同步
到其它節點上面,這種架構不共享任何數據,是一種高冗餘架構。
2、特點
- 多主架構:真正的多點讀寫的集羣,在任何時候讀寫數據,都是最新的。
- 同步複製:集羣不同節點之間數據同步,沒有延遲,在數據庫掛掉之後,數據不會丟失
- 併發複製:從節點APPLY數據時,支持並行執行,更好的性能
- 故障切換:在出現數據庫故障時,因支持多點寫入,切換容易
- 熱插拔:在服務期間,如果數據庫掛了,只要監控程序發現的夠快,不可服務時間就會非常少。在節點故障期間,節點本身對集羣的影響非常小
- 自動節點克隆:在新增節點,或者停機維護時,增量數據或者基礎數據不需要人工手動備份提供,Galera Cluster會自動拉取在線節點數據,最終集羣會變爲一致
- 對應用透明:集羣的維護,對應用程序是透明的
3、工作流程圖
4、Galera Cluster包括兩個組件
- Galera replication library (galera-3)
- WSREP:MySQL extended with the Write Set Replication
WSREP複製實現:percona-cluster MariaDB-Cluster
二、實驗環境
1、準備好3臺虛擬主機,centos7系統,配置好epel源
2、vim dvd.repo加入下面的倉庫
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-5.5.60/yum/centos7-amd64/
gpgcheck=0
3、直接yum安裝
yum install MariaDB-Galera-server
三、實驗步驟
1、修改配置文件,三個節點一樣
vim /etc/my.cnf.d/server.cnf
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.190.129,192.168.190.130.192.168.190.131"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
下面配置可選項
wsrep_cluster_name = ‘mycluster‘默認my_wsrep_cluster
wsrep_node_name = 'node1'
wsrep_node_address = ‘192.168.190.129'
2、首次啓動時,需要初始化集羣,在其中一個節點上執行命令:
/etc/init.d/mysql start --wsrep-new-cluster
3、正常啓動其它節點
service mysql start
4、查看集羣中相關係統變量和狀態變量:
SHOW VARIABLES LIKE 'wsrep_%';
SHOW STATUS LIKE 'wsrep_%';
SHOW STATUS LIKE 'wsrep_cluster_size';