こんにちは、cloudpackがみさん です。

はじめに

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

  1. mysqldump
  2. Percona Xtrabackup
  3. Clusterグループのメンバーノードを切り離してbackup
  4. データベースのテーブルをFLUSH TABLES WITH READ LOCKしてストレージのスナップショットバックアップ

今回は

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

やり方は昔からあるLVM Snapshotを用いたパターンと同じです
※ご参考「SQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup

ちなみに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用途)の構成でいけそうかな?

清書しよう..

元記事はこちらです。
MariaDB Galera Clusterのバックアップ・リストア – EBS Snapshotパターン