雖然PXC支持線上增加群集節點,但是目前尚未解決wsrep_sst_method=xtrabackup 或wsrep_sst_method=mysqldump時報錯的問題,因此嘗試手動完成xtrabackup備份和恢復並添加到群集節點。 場景: 有三台乾凈的CentOS 6的伺服器,IP配置為:19 ...
雖然PXC支持線上增加群集節點,但是目前尚未解決wsrep_sst_method=xtrabackup 或wsrep_sst_method=mysqldump時報錯的問題,因此嘗試手動完成xtrabackup備份和恢復並添加到群集節點。
場景:
有三台乾凈的CentOS 6的伺服器,IP配置為:192.168.166.169,192.168.166.170,192.168.166.171,準備搭建三節點的Percona XtraDB Cluster,目前192.168.166.169,192.168.166.170已加入到群集,準備將192.168.166.171加入到群集中。
192.168.166.169的wsrep_node_name為pxc1,
192.168.166.170的wsrep_node_name為pxc2,
192.168.166.171的wsrep_node_name為pxc3,
============================================
首先在伺服器192.168.166.170上備份,使用galera-info來獲取備份時的群集序列號:
/usr/bin/innobackupex --defaults-file="/etc/my.cnf" \ --host="localhost" \ --port=3306 \ --user="sstuser" \ --password="s3cret" \ --socket="/var/lib/mysql/mysql.sock" \ --galera-info \ "/pxc_backup/"
將備份複製到192.168.166.171上,切換到備份目錄下,執行恢復:
innobackupex --apply-log ./
恢復完成後,可以看到一個xtrabackup_galera_info,該文件中存放備份時的群集序列號
本次demo中xtrabackup_galera_info數據為:
5f3c567e-033f-11e6-a67c-67e2991c9c84:13
從192.168.166.169或192.168.166.170複製文件grastate.dat到192.168.166.171上
預設rpm安裝下,grastate.dat路徑為:/var/lib/mysql
然後在192.168.166.171上修改grastate.dat文件中的值為xtrabackup_galera_info數據:
# GALERA saved state version: 2.1 uuid: 5f3c567e-033f-11e6-a67c-67e2991c9c84 seqno: -1 safe_to_bootstrap: 0
修改文件mysql數據目錄的許可權
chown -R mysql:mysql /var/lib/mysql
編輯mysql配置文件/etc/my.cnf
然後分別到192.168.166.169和192.168.166.170上執行下麵命令來查看各節點上保存的最小序列號:
show global status like 'wsrep_local_cached_downto';
假設192.168.166.170上的最小序列號低於xtrabackup_galera_info數據,則證明可以利用192.168.166.170來做增量同步,而192.168.166.170的wsrep_node_name為pxc2,因此啟動pxc3節點的腳本為:
service mysql start --wsrep_sst_donor=pxc2
啟動成功:
ERROR! MySQL (Percona XtraDB Cluster) is not running, but lock file (/var/lock/subsys/mysql) exists Starting MySQL (Percona XtraDB Cluster).... SUCCESS!
登錄MySQL查看狀態:
show status like 'wsrep%';
插入測試數據驗證群集同步是否正常。
============================================
趕班車,走人,周末快樂