====== 11 Galera同期(複数台構成) ======
Galeraで複数台構成を組んでいる状態で、1台同期が外れたので再同期。
または、新規にノード追加する場合。
今回は例として、下記の構成でnode2のMySQLがダウンしたと想定して説明。
|node1|192.168.0.11|OK|
|node2|192.168.0.12|障害|
|node3|192.168.0.13|OK|
===== 1.稼働中のノードでフルバックアップ =====
[node1]# mkdir -p /backup/xtrabackup/base/
[node1]# innobackupex --galera-info --slave-info --safe-slave-backup --no-timestamp /backup/xtrabackup/base/
=== user/passwordを指定する場合 ===
[node1]# innobackupex --user [root] --password [password] --galera-info --slave-info --safe-slave-backup --no-timestamp /backup/xtrabackup/base/
===== 2.バックアップをコピー =====
[node2]# rsync -av 192.168.0.11:/backup/xtrabackup/base/ /backup/xtrabackup/base/
===== 3.ログファイルを適応 =====
[node2]# innobackupex --apply-log --redo-only /backup/xtrabackup/base/
===== 4.Galera情報修正 =====
xtrabackup_galera_infoを確認し、grastate.datを作成
ここをちゃんと合わせないと、wsrep_cluster_state_uuidが違うとかで正常に同期できない。
[node2]# cat /backup/xtrabackup/base/xtrabackup_galera_info
d38587ce-246c-11e5-bcce-6bbd0831cc0f:1352215
[node2]# vi /backup/xtrabackup/base/grastate.dat
# GALERA saved state
version: 2.1
uuid: d38587ce-246c-11e5-bcce-6bbd0831cc0f
seqno: 1352215
cert_index:
===== 5.データを戻す =====
mysqlのディレクトリにデータが残っていると、エラーになるので移動するか、削除する。
最後は、権限をmysqlへ変更する。
[node2]# rm -rvf /var/lib/mysql/*
[node2]# innobackupex --copy-back /backup/xtrabackup/base/
[node2]# chown -R mysql:mysql /var/lib/mysql/
===== 6.起動・同期 =====
[node2]# /etc/init.d/mysql start --wsrep_cluster_address="gcomm://192.168.0.11"
==== もしくは ====
下記でも同じ
[node2]# /etc/init.d/mysql start
[node2]# mysql
mysql> set global wsrep_cluster_address='gcomm://192.168.0.11';
===== 7.確認 =====
一部抜粋
mysql> show status like 'wsrep_%';
| wsrep_last_committed | 1352215
| wsrep_cluster_size | 3
| wsrep_cluster_state_uuid | d38587ce-246c-11e5-bcce-6bbd0831cc0f
===== 参考URL =====
[[http://severalnines.com/blog/how-avoid-sst-when-adding-new-node-galera-cluster]]
{{tag>mysql galera}}