サブスクリプションは、パブリケーション内のデータ オブジェクトとデータベース オブジェクトのコピーの要求です。 サブスクリプションでは、受信するパブリケーションと、受信する場所とタイミングを定義します。 サブスクリプションを計画する場合は、エージェントの処理を行う場所を検討してください。 選択したサブスクリプションの種類によって、エージェントが実行される場所が制御されます。 プッシュ サブスクリプションでは、マージ エージェントまたはディストリビューション エージェントはディストリビューターで実行されますが、プル サブスクリプションではサブスクライバーで実行されます。 サブスクリプションを作成した後は、ある種類から別の種類に変更することはできません。
サブスクリプション | 特性 | 使用するタイミング |
---|---|---|
プッシュ購読 | プッシュ サブスクリプションでは、パブリッシャーはサブスクライバーからの要求なしで変更をサブスクライバーに反映します。 変更は、オンデマンド、継続的、またはスケジュールに基づいてサブスクライバーにプッシュできます。 ディストリビューション エージェントまたはマージ エージェントは、ディストリビューターで実行されます。 | 通常、データは継続的に同期されるか、頻繁に繰り返されるスケジュールで同期されます。 パブリケーションでは、ほぼリアルタイムでデータを移動する必要があります。 ディストリビューターのプロセッサ オーバーヘッドが高いほど、パフォーマンスには影響しません。 ほとんどの場合、スナップショット レプリケーションとトランザクション レプリケーションで使用されます。 |
プル購読 | プル サブスクリプションでは、サブスクライバーはパブリッシャーで行われた変更を要求します。 プル サブスクリプションを使用すると、サブスクライバーのユーザーは、データの変更がいつ同期されているかを判断できます。 ディストリビューション エージェントまたはマージ エージェントはサブスクライバーで実行されます。 | 通常、データは継続的ではなく、オンデマンドまたはスケジュールに従って同期されます。 パブリケーションのサブスクライバー数が多い場合や、ディストリビューターですべてのエージェントを実行するにはリソースを大量に消費する可能性があります。 サブスクライバーは自律的で、切り離されているか、または移動の自由があります。 サブスクライバーは、接続して変更を同期するタイミングを決定します。 ほとんどの場合、マージ レプリケーションで使用されます。 |
マージ レプリケーション サブスクリプションの種類
すべてのレプリケーションの種類では、プッシュ サブスクリプションとプル サブスクリプションが許可されます。 マージ レプリケーションでは、サブスクリプションを区別するために、クライアント サブスクリプションとサーバー サブスクリプションという 2 つの追加の用語が使用されます。 プッシュ サブスクリプションとプル サブスクリプションでは、クライアントとサーバーの両方のサブスクリプションの種類を使用できます。 クライアント サブスクリプションはほとんどのサブスクライバーに適しています。一方、サーバー サブスクリプションは通常、他のサブスクライバーにデータを再発行するサブスクライバーに使用されます。 サブスクリプションの選択は、競合の解決にも影響します。
SQL Server 以外のサブスクライバー
Oracle と IBM DB2 は、プッシュ サブスクリプションを使用してスナップショット パブリケーションとトランザクション パブリケーションをサブスクライブできます。 詳細については、「 SQL Server 以外のサブスクライバー」を参照してください。
サブスクリプションの作成
サブスクリプションを作成するには、次の情報を指定します。
出版物の名前。
サブスクライバーとサブスクリプション データベースの名前。
ディストリビューション エージェントとマージ エージェントのどちらがディストリビューターまたはサブスクライバーで実行されるか。
ディストリビューション エージェントとマージ エージェントのどちらを継続的に実行するか、スケジュールに基づいて実行するか、オンデマンドでのみ実行するか。
スナップショット エージェントがサブスクリプションの初期スナップショットを作成するかどうか、およびディストリビューション エージェントまたはマージ エージェントがサブスクライバーでそのスナップショットを適用する必要があるかどうか。
ディストリビューション エージェントまたはマージ エージェントを実行するアカウント。
マージ レプリケーションの場合は、サブスクリプションの種類 (サーバーまたはクライアント)。
プッシュ サブスクリプションを作成するには
プッシュ サブスクリプションのプロパティを表示または変更するには
プッシュ サブスクリプションを削除するには
SQL Server Management Studio: プッシュ サブスクリプションを削除する
注
サブスクリプションを削除しても、パブリッシュされたオブジェクトはサブスクライバーから削除されません。
プル サブスクリプションを作成するには
SQL Server Management Studio: プル サブスクリプションを作成する
プル サブスクリプションのプロパティを表示または変更するには
プル サブスクリプションを削除するには