製品

MySQL

MySQL レプリケーション

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

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

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

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

メリットデメリット
・MySQL 標準機能を使用するため、手・軽かつ安価で構築可能

・参照系の負荷分散やバックアップ用途に有効
・更新系、参照系を分けて運用する場合にはアプリケーションの改変が必要

・MySQLレプリケーションは非同期のため、マスター/スレーブ間でデータ遅延が伴う。

・マスター障害時は大幅なダウンタイムが発生する。

MySQL レプリケーションの基本構成

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

MySQL レプリケーションの障害発生時の切り替わり

MySQLレプリケーションの障害発生時の切り替わり
  1. スレーブ1に障害が発生
    ⇒ スレーブ2へ再接続
  2. マスターに障害が発生した場合、復旧するには手動でスレーブ1または2を切り替えることになるため復旧に数時間かかる場合もある。

MySQLレプリケーションの拡張構成

MySQLレプリケーションの拡張構成
  1. スレーブ1,2,3,4・・・・・を拡張させていく(複数台構築)
  2. MySQL データベースの台数を増やすことで参照処理能力向上が図れる。