====== 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}}