MySQLのレプリケーションについて

今回の記事ではMySQLレプリケーションの特徴について簡単に書いていきたいと思います!
レプリケーションってなに?って方は以下の記事へ!
setomoki.hatenablog.com

シングルマスタ・マルチスレーブ

MySQLレプリケーションではサーバをマスタとスレーブに分けます。
マスタでは、クライアントからの更新と参照の両方のクエリを受け付けることができます。
スレーブでは、クライアントからの更新は受け付けずデータの更新はマスタとの連携で行います。
つまりは本番系はマスタ、予備系がスレーブって感じですかね!

シングルマスタ・マルチスレーブの名前通りMySQLではマスタが一台でスレーブが複数台の構成になります。
複数のマスタが存在する構成にはMySQLは未対応みたいです。
複数のスレーブが可能なで参照系のクエリをスレーブに分散させて性能の向上ができます。

同期方式

MySQLの同期方式には非同期と準同期方式があります。

非同期方式

MySQLのデフォルトの設定になっています。
準同期方式よりもマスターサーバーの更新処理のレスポンスがよくなります。
しかし非同期でスレーブの更新をしているためマスタで障害が起こった場合直前の更新がスレーブに反映されてない可能性があります。
準同期方式より負荷分散に向いていますが障害発生直前の更新データの保護が必要な場合は対応が必要になります。

準同期方式

変更点を同期で転送し、非同期でDBに反映します
変更点を同期で転送しているため、マスタで障害が発生した場合直前の更新内容までスレーブに反映されています。
ただし同期の処理が必要になるため非同期よりも更新処理のレスポンスが悪くなります。
障害発生直前の更新データをDBで保護したい場合は非同期方式より準同期方式を使ったほうがよいみたいです。

おわりに

今回はMySQLでのレプリケーション機能の特徴について書いていきました。
時間があれば実際にレプリケーション構成の作り方まで記事にできたらなと思っています。

この記事はほぼサーバなどを触ったことがない人物が学んだことを整理するために書いていますので間違いなどが多々あると思います。間違いなどありましたら是非コメントなどで教えていただけると幸いです。