基於galera cluster集群實現mysql數據庫的高可用
阿新 • • 發佈:2018-08-06
xtend .repo 需要 主從 adb 讀寫 應用程序 維護 ddr 一、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‘;
基於galera cluster集群實現mysql數據庫的高可用