基於galera cluster集羣實現mysql數據庫的高可用

一、galera cluster 簡介

1、Galera Cluster:

    集成了Galera插件的MySQL集羣,是一種新型的,數據
不共享的,高度冗餘的高可用方案,目前Galera Cluster有兩個版本,分
別是Percona Xtradb Cluster及MariaDB Cluster,Galera本身是具有多
主特性的,即採用multi-master的集羣架構,是一個既穩健,又在數據一
致性、完整性及高性能方面有出色表現的高可用解決方案。

       如下圖圖示:三個節點組成了一個集羣,與普通的主從架構不同,
它們都可以作爲主節點,三個節點是對等的,稱爲multi-master架構,
當有客戶端要寫入或者讀取數據時,連接哪個實例都是一樣的,
讀到的數據是相同的,寫入某一個節點之後,集羣自己會將新數據同步
到其它節點上面,這種架構不共享任何數據,是一種高冗餘架構。

基於galera cluster集羣實現mysql數據庫的高可用

2、特點

  • 多主架構:真正的多點讀寫的集羣,在任何時候讀寫數據,都是最新的。
  • 同步複製:集羣不同節點之間數據同步,沒有延遲,在數據庫掛掉之後,數據不會丟失
  • 併發複製:從節點APPLY數據時,支持並行執行,更好的性能
  • 故障切換:在出現數據庫故障時,因支持多點寫入,切換容易
  • 熱插拔:在服務期間,如果數據庫掛了,只要監控程序發現的夠快,不可服務時間就會非常少。在節點故障期間,節點本身對集羣的影響非常小
  • 自動節點克隆:在新增節點,或者停機維護時,增量數據或者基礎數據不需要人工手動備份提供,Galera Cluster會自動拉取在線節點數據,最終集羣會變爲一致
  • 對應用透明:集羣的維護,對應用程序是透明的

3、工作流程圖

基於galera cluster集羣實現mysql數據庫的高可用

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_%';

基於galera cluster集羣實現mysql數據庫的高可用

SHOW STATUS LIKE 'wsrep_%';

基於galera cluster集羣實現mysql數據庫的高可用

SHOW STATUS LIKE 'wsrep_cluster_size';

基於galera cluster集羣實現mysql數據庫的高可用

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