1. 程式人生 > >基於galera cluster集群實現mysql數據庫的高可用

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

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數據庫的高可用