複数サイトからのデータの統合 (サーバー)
多くの企業では、データを収集して処理する支社や事業所があり、データを中央に送信する必要があります。以下に例を示します。
在庫データを、地方の倉庫にある多数のサーバーから、本社にある中央のサーバーに "ロール アップ" (収集) します。
企業内の独立ビジネス部門の情報を、中央のサーバーに送信します。
分散した場所からの注文処理情報を収集します。
場合によっては、中央サイトからリモート サイトにデータを送ることもあります。一般にこのデータは、中央サイトだけで更新する製品在庫テーブルなどのように、リモート サイトでは読み取り専用になります。
次の図は、データがリモート サイトからロール アップされる典型的なシナリオを示しています。各リモート サイトには、読み取り専用データも送信されています。
Adventure Works Cycles の例
Adventure Works Cycles は、データベースの概念とシナリオを説明するために使用する架空の製造会社です。詳細については、「AdventureWorks サンプル データベース」を参照してください。
Adventure Works Cycles には、米国中に多数の営業所があります。これらの支社では、次の 2 つの目的でレプリケーションを使用します。
注文調達とレポートのために注文情報を提供する。データは、各営業所で収集および処理されてから、本社にレプリケートされます。
移動販売スタッフにデータと注文機能を提供する。このシナリオについては、「モバイル ユーザーとのデータ交換」で説明します。
このシナリオの一般的な要件
支社のアプリケーションには一般的に以下のような要件があり、適切なレプリケーション ソリューションで対処する必要があります。
トランザクションの一貫性を保つ必要があります。
システムの待機時間が短く、リモート サイトで行われた更新が速やかに中央のサイトに反映されるようにする必要があります。
多数のトランザクションのレプリケーションを処理できる、高いスループットが必要です。
リモート サイトに対するレプリケーション処理のオーバーヘッドをできるだけ少なくする必要があります。
データの変更は双方向に送信される可能性があります。リモート サイトから中央のサイトにデータが収集されるだけでなく、読み取り専用データがリモート サイトに送信される場合もあります。
中央のサイトで必要なデータが、各リモート サイトで利用可能なデータのサブセットである可能性があります。
このシナリオで使用するレプリケーションの種類
MicrosoftSQL Server では、出版業界にたとえてレプリケーション システムのコンポーネントを表しています。コンポーネントには、パブリッシャ (出版社)、サブスクライバ (購読者)、パブリケーション (出版物) とアーティクル (記事)、およびサブスクリプション (定期購読物) があります。
上の図では、各リモート サイトがパブリッシャです。パブリケーションには、リモート サイトの一部またはすべてのデータが含まれます。各データ テーブルはアーティクルです (アーティクルはストアド プロシージャなどの他のデータベース オブジェクトの場合もあります)。中央のサイトは、これらのパブリケーションに対するサブスクライバで、スキーマおよびデータをサブスクリプションとして受信します。
中央のサイトは、リモート サイトに送信されるデータのパブリッシャとしても機能します。各リモート サイトは、中央のサイトからのパブリケーションにサブスクライブします。
システムのコンポーネントの詳細については、「レプリケーションのパブリッシング モデルの概要」を参照してください。
SQL Server では、さまざまなアプリケーション要件に対して各種のレプリケーション (スナップショット レプリケーション、トランザクション レプリケーション、およびマージ レプリケーション) を用意しています。このシナリオはトランザクション レプリケーションで最適に実装され、前のセクションで概説した要件によく適合します。トランザクション レプリケーションの詳細については、「トランザクション レプリケーションの概要」および「トランザクション レプリケーションの動作方法」を参照してください。
トランザクション レプリケーションは、以下に示すこのシナリオの主な要件に対応するように作られています。
トランザクションの一貫性
短い待機時間
高いスループット
最小限のオーバーヘッド
注意 |
---|
類似のシナリオをマージ レプリケーションで実装できます。アプリケーションに、競合解決または一意のデータセットを各リモート サイトに提供するフィルタが必要な場合は、マージ レプリケーションを使用します。詳細については、「複数サイトからのデータの統合 (クライアント)」を参照してください。 |
このシナリオの実装手順
このシナリオを実装するには、最初にパブリケーションとサブスクリプションを作成してから、各サブスクリプションを初期化してください。各手順の詳細については、以下のリンクをクリックしてください。
サブスクリプションの初期化が終わり、パブリッシャとサブスクライバ間でデータ フローが発生したら、共通の管理および監視作業の詳細について以下のトピックを参照してください。