SQL Serverの高可用性と冗長化のレプリケーションセットアップ

企業のデータ管理において、高可用性(High Availability, HA)と冗長化(Redundancy)は重要な要素です。SQL Serverでは、レプリケーション(Replication)を利用することで、データのコピーを別のサーバーに維持し、可用性と耐障害性を向上させることができます。

本記事では、SQL Serverのレプリケーション技術を活用し、パブリッシャー(Publisher)、ディストリビューター(Distributor)、サブスクライバー(Subscriber)の役割を理解しながら、セットアップ方法を解説します。


レプリケーションの主要コンポーネント

SQL Serverのレプリケーションとは、一つのデータベース(パブリッシャー)から他のデータベース(サブスクライバー)へデータをコピーし、同期を取る仕組みです。

レプリケーションには パブリッシャー(Publisher)ディストリビューター(Distributor)サブスクライバー(Subscriber) という3つの役割が存在します。

  • パブリッシャー(Publisher):データを提供するサーバー
  • ディストリビューター(Distributor):データ変更を管理・配信するサーバー
  • サブスクライバー(Subscriber):データを受け取るサーバー

レプリケーションを理解する上で、以下の3つの役割が重要です。

パブリッシャー(Publisher)
  • 元のデータを保持し、変更を配信する役割
  • 変更が発生すると、それをディストリビューターに送信
ディストリビューター(Distributor)
  • パブリッシャーから送信されたデータを管理
  • サブスクライバーへの配信を制御
  • 専用サーバーとして分離するとパフォーマンス向上
サブスクライバー(Subscriber)
  • 配信されたデータを受け取り、適用するサーバー
  • 読み取り専用や、更新可能なモデルも選択可能

SQL Server レプリケーションのセットアップ

以下の手順で、トランザクションレプリケーションをセットアップします。

パブリッシャーの設定

  1. SQL Server Management Studio(SSMS)を開く
  2. レプリケーション > ローカルパブリケーション を右クリックし、新しいパブリケーション を選択
  3. パブリッシャーデータベースを選択(例: SalesDB)
  4. トランザクションレプリケーション を選択
  5. ディストリビューターの設定(ローカルまたはリモートを選択)
  6. 公開するテーブルやストアドプロシージャを選択
  7. スナップショットエージェントを設定(実行スケジュールを指定)
  8. パブリケーションの作成を完了

ディストリビューターの設定

  1. SQL Server Agent を有効化(自動起動を設定)
  2. ディストリビューター用の専用データベース(DistributorDB)を作成
  3. ログリーダーエージェントを設定(トランザクション変更を監視)

サブスクライバーの設定

  1. レプリケーション > ローカルサブスクリプション を右クリックし、新しいサブスクリプション を選択
  2. 対象のパブリケーションを選択
  3. サブスクライバーデータベースを指定(例: SalesReplicaDB)
  4. スナップショット適用方法を設定(即時適用またはスケジュール設定)
  5. サブスクリプションを作成して完了

演習問題

問題1

SQL Serverのレプリケーションにおける「パブリッシャー」「ディストリビューター」「サブスクライバー」の役割を簡潔に説明してください。

問題2

トランザクションレプリケーションとマージレプリケーションの違いを説明し、それぞれが適用されるユースケースを述べてください。

問題3

以下のSQL Server設定に関する説明のうち、正しいものを選んでください。

  1. パブリッシャーは、データを受信するだけの役割を持つ。(Yes/No)
  2. ディストリビューターは、データ変更をログに記録し、サブスクライバーに配信する役割を持つ。(Yes/No)
  3. スナップショットレプリケーションは、リアルタイムデータ転送に適している。(Yes/No)

解答例

解答1

  • パブリッシャー: 元のデータを保持し、変更をディストリビューターへ送信
  • ディストリビューター: 変更データを管理し、サブスクライバーへ配信
  • サブスクライバー: 配信されたデータを適用し、利用する

解答2

  • トランザクションレプリケーション: 変更を即座にサブスクライバーへ適用(金融取引など)
  • マージレプリケーション: 双方向で変更を同期(オフライン編集が必要な環境)

解答3

  1. No(パブリッシャーはデータを送信する役割)
  2. Yes(ディストリビューターは変更データの管理と配信を担当)
  3. No(リアルタイム転送にはトランザクションレプリケーションが適している)

まとめ

SQL Serverのレプリケーションを活用することで、データの可用性と冗長化を強化できます。

本記事では、基本的なセットアップ手順を解説しました。実際の運用では、サーバー負荷やネットワーク環境を考慮しながら適切な設定を行うことが重要です。