用語集 最終更新 2026.06.19

レプリケーション

レプリケーション (replication) は、あるデータベースの内容を、別のサーバー上のデータベースへ複製し、変更を継続的に同期し続ける仕組み です。 主に 可用性を高める 読み取り負荷を分散する バックアップや分析用にデータを逃がす といった目的で使われます。

まず押さえたいポイント

  • 書き込みを受ける 主系 (プライマリ / マスター) と、複製を受け取る 複製系 (レプリカ / スレーブ) がある
  • 主系の変更が、複製系へ自動で反映され続ける
  • 主系が落ちても複製系へ切り替えれば (フェイルオーバー) 止まりにくくなる

主な方式

  • 非同期レプリケーション — 主系は複製の完了を待たずに応答する。速いが、わずかな遅れ (レプリケーションラグ) が出る
  • 同期レプリケーション — 複製の完了を待ってから応答する。整合性は高いが、書き込みが遅くなりやすい

多くのシステムは、性能を優先して非同期を使い、遅延を許容できない部分だけ同期を検討します。

主な用途

  • 可用性の向上 — 主系が落ちても複製系へ切り替えてサービスを継続する
  • 読み取りの分散リードレプリカとして参照クエリを逃がし、主系の負荷を下げる
  • バックアップ・分析 — 本番に影響を与えずに、複製側でバックアップや重い集計を実行する
  • 地理的な分散 — 利用者に近い拠点へ複製を置き、アクセスを速くする

同じ「複製」でも、目的によって構成や同期方式の選び方が変わります。

注意点 (レプリケーションラグ)

非同期では、主系に書いた直後に複製系を読むと、まだ反映されていない古いデータ が返ることがあります。 たとえば 投稿した直後に一覧へ出てこない といった現象です。リードレプリカで読み取りを分散するときは、この遅延を考慮した設計が必要です。

データベースを別サーバーに分ける構成全体は、DBサーバーを分ける必要性とは?Webと同居の限界・分離するメリットと判断基準 で整理しています。