1. 程式人生 > >Galera Cluster實現多主架構MYSQL集群環境的高可用

Galera Cluster實現多主架構MYSQL集群環境的高可用

簡介 png 集成 log engine 過程 gpg .com 手動

一.Galera Cluster簡介:
    集成了Galera插件的MySQL集群,高度冗余的高可用方案,目前兩個版本分為Percona Xtradb Cluster及MariaDB Cluster,采用multi-master的集群架構 ,  
    是一個既穩健,又在數據一 致性、完整性及高性能方面有出色表現的高可用解決方案 ,至少三個節點組成一個集群,與普通的主 從架構不同,它們都可以作  
    為主節點,三個節點是 對等的,稱為multi-master架構,當有客戶端要寫入或者讀取數據時,連接哪個實例都是一樣的,讀到的數據是相同的,寫入某一個節   
    點之後,集群自 己會將新數據同步到其它節點上面,這種架構不共享任何數據.  
            其主要特點如下:  
                  1. 多組架構——多點讀寫的集群,無論合適讀寫數據都是最新。   
                  2. 同步復制——節點之間數據同步,無延遲,數據庫掛掉之後數據不  
                      會丟失 。   
                  3.並發復制——從節點APPLY數據時,支持並行執行,更好的性能 。        
                  4.故障切換——數據庫出現故障時,由於支持多點寫入,因此切換容易。  
                  5. 熱插拔——在服務期間,如果數據庫掛了,只要監控程序發現的夠快,  
                     不可服務 時間就會非常少。在節點故障期間,節點本身對集群的影響非常小 。   
                  6.自動節點克隆:在新增節點,或者停機維護時,增量數據或者基礎數據不   
                     需要 人工手動備份提供,Galera Cluster會自動拉取在線節點數據,最終    
                     集群會變為 一致。   
                  7.對應用透明:集群的維護,對應用程序是透明的 。       

二.Galera Cluster工作過程

技術分享圖片

三.具體操作實現步驟

    註意:安裝之前確保沒安裝mariadb-server或將其卸載,避免安裝時出現沖突,至少三臺主機才能實現.    
            master1主機  192.168.1.107   
            master2主機  192.168.1.110   
            master3主機  192.168.1.106  

1.先配置好三臺主機的Galera Cluster的yum源

     三臺主機配置相同的yum源     
             ~]# vim /etc/yum.repos.d/cluster.repo    
                       [mariadb]
                       name=MariaDB
                       baseurl=http://yum.mariadb.org/5.5/centos7-amd64
                       gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
                       gpgcheck=1  
        清理並更新yum倉庫    
                ~]# yum clean all     
                ~]# yum repolist           

2.在三臺主機上同時安裝MariaDB-Galera-server包並配置文件

       安裝Galera Cluster,註意安裝包大小寫敏感    
                 ~]# yum install MariaDB-Galera-server -y     
        三臺主機配置相同的配置文件     
                  ~]# vim /etc/my.cnf.d/server.cnf     
                        ...   
                        ...   
                       ...   
                        #Mandatory settings
                           wsrep_provider=/usr/lib64/galera/libgalera_smm.so
                           wsrep_cluster_address="gcomm://192.168.1.107,192.168.1.110,192.168.1.106"
                           binlog_format=row
                           default_storage_engine=InnoDB
                         #innodb_autoinc_lock_mode=2
                         #bind-address=0.0.0.0   
                         ...    
                         ...   
                         ...      

3.以上完成後分別啟動三臺主機的mysql服務

 # 第一個先啟動服務的主機必須加上--wsrep-new-cluster作為新創建的集群環境    
        假設master1主機最先啟動mysql服務
                    ~]# service mysql start --wsrep-new-cluster    
        master2主機啟動mysql服務    
                     ~]# service mysql start     
        master3主機啟動mysql服務               
                     ~]# service mysql start                  
    操作完成,已實現多主架構的集群環境,三臺主機可同時讀寫數據庫並相互同步數據,實現高度冗余的高可用方案.

Galera Cluster實現多主架構MYSQL集群環境的高可用