###レプリケーション?そんなのわからないよ
初めて聞く人にも説明させて頂きます
レプリケーションとはストレートに日本語訳すると複製
ですね。
ではレプリケーション(複製)とはデータベースの分野で言うと、Aのデータベース(MySQL)があるとしてまったく同じBのデータベースをレプリカを複製するということですね。
#####ではなぜこんなことするのか?
(意外に情報として既に周知されてるので僕みたいなビギナーは当初はなぜだかわからなかったです。ですのでくどいですが説明させて頂きます。)
- レプリケーションを利用した場合以下のことができます
- データをリモートサイトに転送(ディザスタリカバリ等に利用)
- データのフルバックアップを取得(マスターサーバの負荷軽減と手順の簡素化)
- スタンバイサーバ(マスターサーバがクラッシュした際に切り替える。ただし、データの転送は非同期なので、マスターがクラッシュした場合にはデータが少し失われる可能性があります。)
- 参照系クエリの負荷分散スレーブを多数用意することで、参照系のクエリを、ロードバランサーを用いて負荷分散させる
#####ではマスターとスレーブってなに?
- マスターサーバとは
複数のスレーブをもてるのもマスターの特徴
マスターで変更した内容をスレーブに転送すること
データの変更
*スレーブサーバとは
マスターでの変更内容を受け取る
変更内容をデータベースに反映
スレーブは1つのマスターのみ持てる
##レプリケーションのメリット
参照性能の向上
参照処理の負荷が高い場合は、スレーブサーバを追加することで、負荷分散による性能向上が実現できる
高可用性構成の実現
マスターの障害時に、スレーブをマスターに昇格することで高可用性を実現可能
地理的冗長性の実現
地理的に離れた場所に、災害対策サイトを構築可能
NW経由で離れたロケーションでマスタースレーブ構成を構築可能
バックアップサーバとしての利用
スレーブサーバでバックアップを取得することで、マスターサーバに影響を与えずにバックアップを取得可能
-例)マスターサーバは常時かどうさせつつ、スレーブサーバでDBを停止してコールドバックアップを取得する
マスターとスレーブに歴史が関わり、呼び名について論争が10年前からあるので暇なときに拝見して見ては面白いと思います。押下してもらえればリンク飛べます。