MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしないよというお話

先に結論

MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしない

なんで?

  • MHAはヘルスチェックをバラメータ ping_type で設定された方法で行う
  • ping_type のデフォルトは SELECT
  • ping_type : SELECT の場合、ヘルスチェックは SELECT 1 As Value で行うので、書き込み障害には気づけない

どうすればよいの?

ping_type : INSERT の場合の注意事項

感想

書き込み障害が発生したのに、フェイルオーバーが行われず、めちゃくちゃ焦った

ツールが想定通りの挙動をしなかった場合、公式ドキュメントとコードをじっくり読もう