【MySQL】MHAを設定してみた感想
MHAを設定してみたので、その感想や気付いたことを。
と言っても、全サーバーが10台ちょいのシステムなので、もっと良いカンジに出来るかと思いますが…
当たり前なのですが、全SlaveはMasterに昇格する可能性があります。なので、スペックは同じか、同等にしておく必要があります。
これまた当たり前なのですが、メンテ等でMasterを再起動すると、MHAが反応してフェイルオーバーが開始されます。Masterの再起動前に、MHAを停止する等の対策が必要かと思います。
MHA ManagerがMasterのダウンを検知してから、フェイルオーバーが開始するまで数秒かかります。その間のMasterへの更新は捨てられることになります。
MHAの設定時に、sshでパスワードなしでログインする設定がありますが、binary・relay logにアクセス出来る権限があれば良いので、ログインに使うユーザーをusermod -Gなどでmysqlグループに追加しておけばOKかと思います。
実際のところ、フェイルオーバーが発生して、新しいMasterとSlaveの情報を、どうやってアプリサーバーに伝えるかが問題になります。「Mobageを支える技術」ではMyDNSを採用していますが、なかなか設定がめんどかったりします。
新しいMasterのIPが変わった時にキックされるスクリプトに何を書くか、なのですが…