MariaDB でクラスタ化してみる(MariaDB 10.0 Galera Cluster,CentOS 6.5)を調査した結果のメモメモ

1 min read読了の目安(約1600字

MySQLクラスタ化

Oracle RAC などを会社で使っていた(主に使うガワ)のですが、自分でも設定してみたいなと思っていたらMariaDB Galera Clusterが、比較的設定が簡単だと聞いたのでそのときに調査したメモ。

先人達の記事とおりなんだけどね

HA構成ちゃんと考えるなら LVS + Keepalived 使うのがスタンダードっぽいですけど、とりあえずどんな動作をするか確認してみます。ここらへんは、Oracle RACに比べて敷居が低くていいわ。が、業務で使うならバックアップとかリストアとか、クエリーログとるとか、、色々考えないといけませんけど、まあ勉強ですから。

MariaDB Galera Clusterを試す
MariaDB 10.0 Galera ClusterをCentOS7にインストール

MariaDB 10.0 Server

MariaDB 5.5 と 10.0 がありますが、先人達の記事とおり 10.0 を入れてみますよ。手順とおり実施するのも勉強ですから。そしてさっくり動きます。

注意点がある

・Galera Clusterは最低3台以上での構成にすること。
  ⇒ 推奨らしいです。
・クエリーが実行されたDBサーバのみbinlogが記録される。
  ⇒ バイナリログから、リストア・リカバリする場合は注意が必要。
・Primaryキーがないテーブルは、insert のみ使用可能。update, delete は使えない。
  ⇒ 検証したら、そのとおりでした。業務では、Primaryキーを作成しないテーブル作るケースがある場面が浮かびませんが…特に問題ないかと(笑)

チューニングすべき点

MySQLクラスタ化は驚くほど簡単にできました。3台⇒2台を止めて1台にして、2台復旧⇒3台、などしても当然ですがクラスタ化できているわけです。
あとは、HA構成や運用周りですね。こればかりはテンプレがないので考えないといけませんね。

とりあえず、その前にMariaDBの設定

MySQL 5.6のインストール後にチューニングすべき項目
MariaDBの初期設定
keepalivedで仮想IPを体験

クエリーログがでない

general-log=1 クラスタ化に伴う仕様なのかでないので、audit pluginでクエリーログを出力する。
よくよく考えるとバイナリーログも出力しているのでそこから取得するということでもいいかもしれないが、この audit つかうと任意のタイミングでon/off切り替えられるのでいいかもしれない。
ただしこのプラグイン使っても、クエリーが実行されたDBサーバのみ記録されるのは当然のことですw

MariaDBでデータベースを監査して、クエリーを追跡する!