PXC三節點集羣系統搭建

1.概念:html

    Percona Xtradb Cluster,簡稱PXC。是基於Galera插件的MySQL集羣。node

    76ca70aa2cc9bd6245ae4088cfd05a3d.png-wh_

    詳細原理請移步個人另外文章:理解PXC集羣原理mysql

   

2.搭建linux

    官方手冊地址:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html
sql


     環境:PXC101 IP:192.168.1.101 端口:3306  版本5.7 CentOS7
數據庫

           PXC102 IP:192.168.1.102 端口:3306  版本5.7 CentOS7
vim

           PXC103 IP:192.168.1.103 端口:3306  版本5.7 CentOS7安全


           1.關閉系統防火牆bash

      #systemctl stop   firewalld
      #systemctl disable  firewalld       #取消防火牆開機自啓動

           2.關閉selinuxsocket

      #vim /etc/selinux/config         
        SELINUX=permissive
      #getenforce                  #檢查是否關閉

           3.安裝依賴,與相關診斷軟件           

      #yum install lsof socat telnet       #telnet用於檢查端口

           4.下載,解壓二進制安裝包(三個主機都執行):

            (選擇二進制安裝包,能夠避免各類編譯或者Yum安裝依賴關係,最節省時間,且往後升級方便

             101版本對應REHL系列版本,100對應DEBIAN系列版本,有區別          

      #wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.19-29.22-3/binary/tarball/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101.tar.gz -P /usr/local/src
      #tar -zxf /usr/local/src/Percona-Xtra(...).tar.gz   -C /usr/local
       
      #建立符號鏈接,即建立快捷方式,這也是往後方便升級的小技巧
      #ln -s /usr/local/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101 /usr/local/mysql
       
      #將可執行文件位置關聯到路徑中,方便像Yum安裝的程序同樣直接調用
      #echo "PATH=$PATH:/usr/local/mysql/bin"|cat >>/etc/profile
      #source /etc/profile

            5.建立MySQL用戶與用戶組,權限相關(三個主機都執行):          

      #useradd -d /usr/local/mysql -s /sbin/nologin -U -M mysql
      #mkdir -p /data/mysql/3306/{data,logs,tmp}
      #chown -R mysql.mysql /data/*

            6.建立配置文件(三個主機都執行)

            cat << EOF >/data/mysql/3306/my.cnf
            [client]
             #省略
            [mysql]
             #省略
            [mysqld]
            basedir    = /usr/local/mysql
            datadir    = /data/mysql/3306/data/
            socket    = /data/mysql/3306/tmp/mysql3306.sock
            pid-file = PXC3306.pid
            #省略#
            #log
            log-bin = mysql-bin
            sync_binlog = 1
            innodb_flush_log_at_trx_commit = 1
            #省略#
            #InnoDB
            innodb_file_per_table = 1
            ##InnoDB IO
            innodb_data_file_path = ibdata1:1G:autoextend
            innodb_thread_concurrency = 0
            #replication
            server-id = 1013306                          #IP+PORT
            master_info_repository = TABLE
            relay_log_info_repository = TABLE
            binlog_format = row
            relay_log_recovery = 1
            relay-log-purge = 1
            ##GTID
            gtid_mode = on                                                #必須
            enforce_gtid_consistency = 1                                  #必須
            #省略#
            #PXC MODE
            wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so          #galera插件位置
            wsrep_cluster_name=zrz                                        #集羣名稱
            wsrep_cluster_address=gcomm://192.168.1.101,192.168.1.102,192.168.1.103   #羣集全部主機地址
            wsrep_node_name=PXC101                                        #本節點名稱
            wsrep_node_address=192.168.1.101                              #本節點IP
            wsrep_sst_method=xtrabackup-v2                                #寫集全量同步傳輸方式
            wsrep_sst_auth=dba:123456                                     #寫集傳輸驗證用戶與密碼
            pxc_strict_mode=ENFORCING                                     #必須,涉及到集羣數據安全
            binlog_format=ROW                                             #必須
            default_storage_engine=InnoDB                                 #必須
            innodb_autoinc_lock_mode=2                                    #自增鎖離散分配自增主鍵
            
            EOF

        先將上述配置文件中的PXC MODE相關配置項註釋掉(前面加#)       

    #/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3306/my.cnf --initialize --user=mysql &

        獲取初始密碼並更改root密碼,建立全量寫集傳輸用戶

    #grep  -i password /data/mysql/3306/error.log      
    #mysqld --defaults-file=/data/mysql/3306/my.cnf &  #純單實例方式啓動MySQL
    #mysql -u root -p                                #輸入剛剛grep獲得的密碼                            #回車後輸入剛剛查到的密碼
    >set password='123456';                               #更改root用戶密碼
    >flush privileges;                
    >create user dba@'localhost' identified by '123456';  #建立全量寫集傳輸用戶
    >GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'dba'@'localhost';
    >flush privileges;
    >shutdown;                                            #關閉實例
    >exit

        8.啓動PXC第一個節點

        先將上一步註釋掉的PXC MODE相關配置項從新啓用(前面刪掉#)       

    #/usr/local/mysql/bin/mysqld--defaults-file=/data/mysql/3306/my.cnf --user=mysql --wsrep-new-cluster&

        同時tail -f /data/mysql/3306/error.log會觀察到:

        871ec69711c312abbebed05ab72860df.png-wh_

         9.啓動第二個第三個節點        

    #在第二個節點上執行
    #/usr/local/mysql/bin/mysqld--defaults-file=/data/mysql/3306/my.cnf --user=mysql&
    #在第三個節點上執行
    #/usr/local/mysql/bin/mysqld--defaults-file=/data/mysql/3306/my.cnf --user=mysql&

         這時在第一個節點的錯誤節點上觀測錯誤日誌能夠獲得

          60f1a856151dae939fe4ac09f036106c.png-wh_    

         在第二個節點或者第三個節點上均可以觀測到:

        f2b69d3c32335840a4f46d6f4f2f98d1.png-wh_ 

        OK,都啓動成功。

3.查看WSREP寫集同步

      1.查看寫集同步相關參數

       在任意一個已經進入同步狀態的實例上執行

        >show global status like "%wsrep%";

        輸出以下:

        2819cc00ec2ab16c8288823233c51e32.png-wh_

      2.檢查同步狀況

        在實例3上建立數據庫

        >create database dba;

        在實例1和實例2上均可以觀測到:

        >show database;

        532dd4eb704262ede67a1cb539c25aa6.jpg-wh_


    OK,到這裏,咱們就完成了整個PXC集羣的建立

4.注意:

    第一個節點啓動時需添加 --wsrep-new-cluster參數。

    而節點加入已經啓動的集羣,則不須要這個參數,按照正常啓動方式便可。

    更多疑難故障解答,請瀏覽個人下個帖子:PXC搭建故障疑難解答

相關文章
相關標籤/搜索