マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】MySQL MHA


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「MySQL MHA」とは
基本情報
概要
MySQL MHA(マイエスキューエル エムエイチエー)とは、MySQLマスタ障害発生時に、MySQLマスタの自動フェイルオーバーを行い高可用性を実現するオープンソースツールです。
基本説明
「MySQL MHA」は、「Master High Availability Manager and tools for MySQL」の略称です。
Perlで実装されており、マスタとスレーブで構成されるMySQLレプリケーション環境で稼働します。
MySQLには、マスタサーバ障害時のフェイルオーバ機能は標準では提供されていないため、短時間でミスなく障害復旧を行うために有効なツールです。
MySQLのマスタをフェイルオーバーさせ、スレーブをマスタに昇格させる作業を短時間(10〜30秒程度)で実行することを目的としています。MHAマネージャがマスタ障害を検知すると、スレーブの1つを新しいマスタに昇格させデータベースの稼働を継続します。
マスタ障害が発生しても、スレーブ間での整合性を崩さない機能を搭載しています。最小限のダウンタイムで迅速にレプリケーションを再開できます。非同期レプリケーションでもスレーブ間の同期が取れます。
経緯
MySQLエキスパートとして世界的にも著名な松信嘉範氏が開発されています。
主な特徴
フェイルオーバー機能
フェイルオーバーの際、非同期によるデータ差分をチェックし同期を取ることで、データロスの可能性を軽減します。
フェイルオーバー機能(1)自動フェイルオーバー(監視あり)
MHAマネージャがマスタを監視し、マスタに障害が発生するとフェイルオーバーさせます。最新のDB情報を反映しているスレーブから、その他のスレーブに対して差分を適用する動作を行うため、スレーブ間のデータ整合性が保証されます。
フェイルオーバー機能(2)手動フェイルオーバー
手動でのマスタフェイルオーバーも可能です。
フェイルオーバー機能(3)自動フェイルオーバー(監視なし)
MHA自身では、MySQLのサービス監視は実施しないモードです。監視作業を他の監視ソフトウェアで行い、監視ソフトウェアからの通知によりフェイルオーバーを実行します。
マスタ切り替え機能
オンラインでマスタを別ホストに切り替える機能です。0.5〜2秒ほどの書き込みブロックのみで切り替え可能です。
マスタ昇格指定機能
「特定スレーブのマスタ昇格(昇格不可)指定」が可能です。
動作条件
・rootで各ノード間でのSSH公開鍵認証が可能であること
・MySQL 5.0 以降のみサポート
・マスタ昇格候補のサーバでlog-binがenableであること
・マスタ昇格候補サーバにレプリケーション用ユーザが存在すること
・ステートメントベースレプリケーションでは「LOAD DATA INFILE」の使用は禁止
MHAマネージャコンポーネント
「MySQLマスタのサービス監視」と「フェイルオーバー実行」を行います。
MHAノードコンポーネント
MHAノードコンポーネントは、各MySQLサーバに1つずつ配置され、フェイルオーバーが発生した場合、「スレーブサーバの更新状態調査」「更新状態が最新であるスレーブサーバをマスタサーバへ昇格」「他のスレーブサーバの更新処理参照先を新マスタサーバへ変更」などを行います。
フックポイント
全部で6箇所のフックポイントが用意されています。動作の各所で任意のスクリプトを実行させることができます。
既に動作しているMySQLに影響を与えない
MHAのインストール/アンインストールにおいて、MySQLプロセスやレプリケーションを止める必要はありません。
負荷をかけない
MHA自体は追加の負荷をかけないため、パフォーマンスを低下させません。
バイナリログフォーマット
「Statement」ベースでも「Row」ベースでもサポートします。
ストレージエンジンに依存しない
トランザクション非対応ストレージエンジン(MyISAMなど)でも動作します。
ローコストで導入可能
・アクティブ/スタンバイ構成時のスタンバイ機のようなサーバは不要(サーバの追加投資が不要)
・既存のMySQLレプリケーションの構成変更は不要
・既存の環境を入れ替えることなく導入できる
導入事例
DeNAのサービスへのMHA導入実績があります。
ライセンス情報
「MySQL MHA」のライセンスは、「GNU General Public License Version 2」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク3位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク4位🏆
【無料で使える】「 翻訳 」ツールまとめ - 🏆ランク5位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク6位🏆
【無料で使える】「 RPA 」ツールまとめ - 🏆ランク7位🏆
【ツール紹介】無料で使えるオープンソース「 ヘルプデスク 管理ツール 」まとめ5選 - 🏆ランク8位🏆
【ChatGPT使ってみる実験室】 WordPress関数を作って記事リストを出力 - 🏆ランク9位🏆
【OSS情報アーカイブ】GitBucket - 🏆ランク10位🏆
【無料で使える】「 ファイアウォール 」ソフトウェアまとめ