Blog

物理設計② レプリケーション

2025.01.22

本記事の目的


レプリケーションとは何かを学び、冗長化と可用性についてをおさえていきます。


レプリケーションよは


レプリケーションとは、複数のデータベース(現用系と待機系)を使用し、現用系(プライマリ)から待機系(セカンダリ)にデータを同期する技術です。
これにより、現用系でデータの更新が行われるたびに、待機系にもその変更が反映され、データの整合性が保たれます。


レプリケーションの主な目的は、システムの可用性と耐障害性を向上させることです。現用系に障害が発生した場合、待機系に自動的に切り替え(フェイルオーバー)を行うことで、サービスの中断を防ぎ、処理を継続できるようになります。


データの同期方法としては、現用系のトランザクションログを待機系に送信し、待機系はログを元にデータを反映します。


同期レプリケーション


待機系のトランザクションログの反映を待ってユーザーのコミットを完了します。



  • コミット完了まで時間がかかる

  • 障害発生時でもデータをロストしない


非同期レプリケーション


待機系のトランザクションログの反映を待たずにコミット完了を通知する。



  • コミット完了までの時間が高速

  • 障害発生時にデータをロストする可能性がある


待機系は災害対策のために遠隔地に配置されることがあるため、同期レプリケーションの場合に遅延が大きな問題になることもあります。


災害対策以外での利用


待機系を現用系と離れた場所に設置し、災害対策に使われるのが一般的ですが、
待機系でもデータの読みとりのみ受け付けるというやり方で、パフォーマンスの向上でも利用することができます。


CONTACT

あくまでも本業がメインですが、休日や業務の隙間時間は個人でも動いております。
もしお手伝いできることがあれば、お気軽にお問い合わせください。

SNS