hogepiyoエンジニアリング

トラブルシューティングからノウハウ、作ってみた系まで扱う情報系ブログ

MySQL Fabricを動かしてみた

ぶっちゃけほとんどこちらのブログ参考
日々の覚書: MySQL Fabricつらい(インストール編)
日々の覚書: MySQL Fabricつらい(HA/登録編)

MySQLの設定

/etc/my.cnf

//マスタースレーブ両方で設定
[mysqld]
#replication
log-bin = mysql-bin
log-slave-updates = true
gtid-mode = on
enforce-gtid-consistency = true
server-id=1000 // 各ノードで別の値にすること。

勘違いしてたこと

fabricのコマンドを打てばmysqlのmaster-slave構成の設定してくれるんでしょ?

$ mysqlfabric group promote my_first_fabric //fabricで管理しているノードからマスターを選出するコマンド

これだけだとダメだった。
mysqlreplicateなりでmaster-slaveの設定をしてあげないといけなかった。ここで行ったmaster-slave構成に合わせてfabricを設定するって感じかと。

$ mysqlreplicate --master=fabric:fabric_password@"10.10.10.10" --slave=fabric:fabric_password@"11.11.11.11" --rpl-user=fabric:fabric_password

一回設定してしまえばあとはマスターが死んでもfailoverした状態で自動的にマスターとスレーブを認識してくれる。(ちゃんと障害検知設定していれば)

ノードが死んだときの障害検知ってfabricでgroupに追加しておけばやってくれるんでしょ?

$ mysqlfabric group add fabricgrp 10.10.10.10 //fabricの管理しているノード郡に追加するコマンド

これだけだとダメだった。マスターが死んでもそのまま放置される。
ちゃんと障害検知を有効化すれば、マスターが死んだ時にスレーブをマスター昇格してくれる。

$ mysqlfabric group activate fabricgrp