一.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工作过程

Galera Cluster实现多主架构MYSQL集群环境的高可用_第1张图片

三.具体操作实现步骤

    注意:安装之前确保没安装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                  
    操作完成,已实现多主架构的集群环境,三台主机可同时读写数据库并相互同步数据,实现高度冗余的高可用方案.