マジセミドライブ

ウェビナー関連のニュースや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分用語解説】「 ASM 」とは?🧩

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

2024.10.07

【デジタル寺田の3分用語解説】「 ASM 」とは?🧩

「 ASM 」(アタックサーフェースマネジメント)は、システムに存在する脆弱性や攻撃の入り口を可視化し、管理することでリスクを特定し、対策を講じる手法です。攻撃者がシステムに侵入するために利用できる潜在的な脆弱性を理解し、適切な対策を取ることが、セキュリティ対策の第一歩となります。

【デジタル寺田の3分用語解説】「 人的資本経営 」とは?🧑‍💼

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

2024.10.08

【デジタル寺田の3分用語解説】「 人的資本経営 」とは?🧑‍💼

「 人的資本経営 」は、企業が従業員のスキルや経験、意欲を高めるために投資を行い、長期的な企業価値の向上を目指す経営手法です。本記事では、人的資本経営の意義やその具体的な取り組みについて分かりやすく解説します。

【デジタル寺田の3分用語解説】「 SAP 2027問題 」とは?⏳

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

2024.10.07

【デジタル寺田の3分用語解説】「 SAP 2027問題 」とは?⏳

「 SAP 2027問題 」とは、「SAP ERP 6.0」が2027年末でサポート終了する問題です。セキュリティリスクを避けるため、早期に新システムへの移行が必要です。移行は業務プロセスの見直し、効率化のチャンスにもなります。新しい技術を積極的に導入し、挑戦していくことが成功の鍵となります。