orenoblog

エンジニアになりたいExcel方眼紙erの物語

MariaDB Galera Clusterのバックアップ・リストア - EBS Snapshotパターン

EC2で稼働しているMariaDB Galera Clusterのバックアップ/リストアプランについて考えています。

  1. mysqldump

  2. Percona Xtrabackup

  3. Clusterグループのメンバーノードを切り離してbackup

4.データベースのテーブルをFLUSH TABLES WITH READ LOCKしてストレージのスナップショットバックアップ

今回はEBSを利用していることも有り[4.]を試してみました。

やり方は昔からあるLVM Snapshotを用いたパターンと同じです ※ご参考

ちなみにGalera Clusterには未サポートの機能があります。

MariaDB Galera Cluster - Known Limitations - MariaDB Knowledge Base

いくつかのLockコマンドはサポート対象外となっていますが FLUSH TABLES WITH READ LOCKはサポートされているので、問題なく利用できると考えています。

backup やってみる

2台または3台で構成するGalera Clusterのうち、どれか1台で下記コマンドを実行します. (wsrep_cluster_address=gcomm://ではないメンバーノードが良いと思います)

  • バックアップの実行
mysql -u root -p
mysql> FLUSH TABLES WITH READ LOCK
mysql> system sync
mysql> system sync
mysql> system sync
<このポイントでEBS Snapshotを取得>
mysql> UNLOCK TABLES
mysql> exit

リストア試してみる

  • リストア

1.mysqlを停止

2.EBS スナップショットからcreate volume

3.volumeをattach

4.attachしたvolumeをmount

5.service mysql start(wsrepがマスタよりデータ同期してくれる)

これでOKでしたよう。

問題

  • マスタ死んだら直近までリストアできない。galera.cacheコピーしていいのかねと思ったら循環型...

と思ったらふつーにlog-binが効いた。

Galera Cluster + mysql slave(backup用途)の構成でいけそうかな?

清書しよう..