MySQLのレプリケーションについて
今回の記事ではMySQLのレプリケーションの特徴について簡単に書いていきたいと思います!
レプリケーションってなに?って方は以下の記事へ!
setomoki.hatenablog.com
シングルマスタ・マルチスレーブ
MySQLのレプリケーションではサーバをマスタとスレーブに分けます。
マスタでは、クライアントからの更新と参照の両方のクエリを受け付けることができます。
スレーブでは、クライアントからの更新は受け付けずデータの更新はマスタとの連携で行います。
つまりは本番系はマスタ、予備系がスレーブって感じですかね!
シングルマスタ・マルチスレーブの名前通りMySQLではマスタが一台でスレーブが複数台の構成になります。
複数のマスタが存在する構成にはMySQLは未対応みたいです。
複数のスレーブが可能なで参照系のクエリをスレーブに分散させて性能の向上ができます。
同期方式
MySQLの同期方式には非同期と準同期方式があります。
非同期方式
MySQLのデフォルトの設定になっています。
準同期方式よりもマスターサーバーの更新処理のレスポンスがよくなります。
しかし非同期でスレーブの更新をしているためマスタで障害が起こった場合直前の更新がスレーブに反映されてない可能性があります。
準同期方式より負荷分散に向いていますが障害発生直前の更新データの保護が必要な場合は対応が必要になります。
準同期方式
変更点を同期で転送し、非同期でDBに反映します
変更点を同期で転送しているため、マスタで障害が発生した場合直前の更新内容までスレーブに反映されています。
ただし同期の処理が必要になるため非同期よりも更新処理のレスポンスが悪くなります。
障害発生直前の更新データをDBで保護したい場合は非同期方式より準同期方式を使ったほうがよいみたいです。