マージ レプリケーション
一般にマージ レプリケーションは、トランザクション レプリケーションと同様、パブリケーションのデータベース オブジェクトとデータのレポート スナップショットで開始されます。この後にパブリッシャとサブスクライバで行われたデータ変更とスキーマ修正は、トリガを使用して追跡されます。サブスクライバは、ネットワークへの接続時にパブリッシャと同期して、前回の同期以降に変更されたすべての行をパブリッシャとサブスクライバの間で交換します。
マージ レプリケーションは、一般にサーバー対クライアント環境で使用されます。マージ レプリケーションは、以下の状況に適しています。
- 複数のサブスクライバで別々の時刻に同じデータを更新し、それらの変更をパブリッシャや他のサブスクライバに反映する場合がある。
- サブスクライバがデータを受信し、オフラインで変更を行い、後でパブリッシャおよび他のサブスクライバと変更を同期する必要がある。
- 各サブスクライバが、データの別々の部分を必要とする。
- 競合が発生する可能性があり、競合が発生した場合にはそれを検出して解決できるようにする必要がある。
- アプリケーションが、中間状態のデータへのアクセスではなく、最終的な変更結果を必要としている。たとえば、パブリッシャと同期する前にサブスクライバ側で行が 5 回変更されても、パブリッシャ側では 1 回のみ最終的な変更結果を反映させるために、5 つ目の値に変更するような場合です。
マージ レプリケーションでは、さまざまなサイトが自律的に動作した結果の更新内容を後で 1 つにマージできます。更新は複数のサーバーで発生するので、パブリッシャおよび複数のサブスクライバで同じデータが更新されている場合があります。したがって、更新をマージする際に競合が発生する可能性があるため、マージ レプリケーションには競合を処理するいくつかの方法が用意されています。
マージ レプリケーションの実装については、SQL Server 2005 Books Online の「レプリケーションの実装」を参照してください。
マージ レプリケーションを含む一般的なシナリオについては、SQL Server 2005 Books Online の「サーバーとクライアント間のデータのレプリケート」を参照してください。
参照
概念
スナップショット レプリケーション
トランザクション レプリケーション
レプリケーション コンポーネント
レプリケーションに関する注意点 (SQL Server Express)