マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】MySQL MHA

【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」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?🤖

デジタル寺田の3分用語解説

2025.03.11

【デジタル寺田の3分用語解説】 「 AIエージェント 」は、人間の管理職の代わりになるか?🤖

「 AIエージェント 」は営業マネージャーの業務をどこまで代行できるのか?「データ分析」「フィードバック」「自動日程調整」の可能性を探り、未来の管理職のあり方を考察します。AIが進化する中で、人間の役割はどう変わるのか詳しく解説します。

【デジタル寺田の3分用語解説】 「 ウェルビーイング 」とは?😊

デジタル寺田の3分用語解説

2025.03.10

【デジタル寺田の3分用語解説】 「 ウェルビーイング 」とは?😊

「 ウェルビーイング 」とは、身体的・精神的な健康だけでなく、社会的・経済的にも満たされた状態を指します。企業にとっては、健康経営の推進により生産性向上や離職率低下などのメリットがあります。本記事では、ウェルビーイングが注目される背景や企業の具体的な取り組みについて詳しく解説します。

【デジタル寺田の3分用語解説】 「 心理的安全性 」が無い職場とは?🤐

デジタル寺田の3分用語解説

2025.03.17

【デジタル寺田の3分用語解説】 「 心理的安全性 」が無い職場とは?🤐

「 心理的安全性 」が低い職場とはどのような環境なのか、具体的な特徴を解説します。「質問しづらい雰囲気」「失敗を報告できない隠蔽体質」「発言をためらう風土」など、心理的安全性の欠如がもたらす影響を詳しく紹介し、安全な職場づくりの重要性も解説します。