ご利用になりたいプロダクトをクリックして下さい。
 


MySQL レプリケーション [マスター/スレーブ構成]

MySQL 標準の機能として、非同期型のマスター/スレーブ型のレプリケーションがございます。様々な用途に応用が利くので大変人気の高い機能の一つです。

レプリケーションを利用すると、以下のようなレイアウトのシステムを構築することが可能です。

  1. データをリモートサイトに転送(ディザスタリカバリ等に利用)
  2. データのフルバックアップを取得(マスターサーバの負荷軽減と手順の簡素化)
  3. スタンバイサーバ(マスターサーバがクラッシュした際に切り替える。ただし、データの転送は非同期なので、マスターがクラッシュした場合にはデータが少し失われる可能性があります。)
  4. 参照系クエリの負荷分散スレーブを多数用意することで、参照系のクエリを、ロードバランサーを用いて負荷分散させる。

レプリケーションは非同期ですがほとんどタイムラグはありません。従って、各スレーブの内容はほぼ同じなので、どのスレーブを参照しても、ほぼ同じデータを取得できます。

 

基本構成

  1. MySQL DB(M:マスター)は常時処理を行うデータベースである。
  2. MySQL DB(S:スレーブ)は MySQL DB(M)のレプリケーション(複製)として機能する。
  3. MySQL DB(S)はバックアップや参照系として構築する場合が一般的に多い。

障害発生時の切り替わり

  1. MySQL DB(S1)に障害が発生
    ⇒ MySQL DB(S2)へ再接続
  2. MySQL DB(M)に障害が発生した場合、復旧するには手動で MySQL DB(S1 又は S2)を切り替えることになるので、復旧に数時間かかる場合もある。

拡張構成

  1. MySQL DB(S3、S4・・・)を拡張させていく(複数台構築)
  2. MySQL DB の台数を増やすことで参照処理能力向上が図れる。

MySQLレプリケーションでの構成メリット

  1. MySQL 標準機能を使用するため、手軽かつ安価で構築可能
  2. 参照系の負荷分散やバックアップ用途に有効

MySQLレプリケーションでの構成デメリット

  1. 更新系、参照系を分けて運用する場合にはアプリケーションの改変が必要である。
  2. MySQL レプリケーションは非同期のため、MySQL DB(M)とMySQL DB(S)間でデータ遅延が伴う。
  3. MySQL DB(M)障害時は大幅なダウンタイムが発生する。
お問い合わせはこちらから