パブリケーションのサブスクライブ

適用対象:SQL Server (サポートされているすべてのバージョン) Azure SQL Database

サブスクリプションとは、パブリケーションのデータとデータベース オブジェクトのコピーを要求することです。 サブスクリプションでは、受信するパブリケーションおよびパブリケーションの受信場所と受信時間が定義されます。 サブスクリプションを設計する場合は、エージェント処理を実行する場所を考慮してください。 選択するサブスクリプションの種類によって、エージェントが実行される場所が決まります。 プッシュ サブスクリプションではマージ エージェントまたはディストリビューション エージェントがディストリビューターで実行されるのに対し、プル サブスクリプションではサブスクライバーでエージェントが実行されます。 サブスクリプションの作成後にその種類を変更することはできません。

注意

Azure SQL Managed Instance は、スナップショットおよびトランザクション レプリケーションのパブリッシャー、ディストリビューター、およびサブスクライバーの可能性があります。 Azure SQL Database のデータベースは、スナップショットとトランザクション レプリケーションのプッシュ サブスクライバーの可能性しかありません。 詳細については、Azure SQL Database および Azure SQL Managed Instance を使用したトランザクションのレプリケーションに関するページを参照してください。

サブスクリプション 特性 いつ使用するか
プッシュ サブスクリプション プッシュ サブスクリプションでは、サブスクライバーからの要求なしにパブリッシャーが変更をサブスクライバーに反映します。 変更は、要求時、連続的、スケジュールのいずれかの方法に基づいて、サブスクライバーにプッシュできます。 ディストリビューション エージェントまたはマージ エージェントはディストリビューターで実行されます。 連続的に、または定期的なスケジュールで頻繁にデータの同期をとる場合

パブリケーションがほぼリアルタイムのデータの移動を必要とする場合

ディストリビューターのプロセッサのオーバーヘッドが高くなってもパフォーマンスに影響しない場合

スナップショット レプリケーションとトランザクション レプリケーションで最も頻繁に使用する場合
プル サブスクリプション プル サブスクリプションでは、パブリッシャーで変更を行うようにサブスクライバーが要求します。 プル サブスクリプションでは、サブスクライバーのユーザーがデータの変更をいつ同期するかを指定できます。 ディストリビューション エージェントまたはマージ エージェントはサブスクライバーで実行されます。 連続的ではなく、要求時またはスケジュールに基づいてデータを同期する場合

パブリケーションに多くのサブスクライバーがある場合、またはリソースの消費が大きすぎてディストリビューターですべてのエージェントを実行できない場合 (またはその両方)

サブスクライバーが独立しているか、接続解除されているか、またはモバイルである場合。 サブスクライバーでは、いつ接続して変更を同期するかが決定されます。

マージ レプリケーションで最も頻繁に使用する場合

マージ レプリケーション サブスクリプションの種類

すべての種類のレプリケーションでプッシュ サブスクリプションとプル サブスクリプションが使用できます。 マージ レプリケーションでは、2 つのサブスクリプションを区別するために、クライアント サブスクリプションとサーバー サブスクリプションという語を使用します。 クライアント サブスクリプションとサーバー サブスクリプションのどちらの種類も、プッシュ サブスクリプションとプル サブスクリプションで使用できます。 クライアント サブスクリプションはほとんどのサブスクライバーに適していますが、サーバー サブスクリプションは通常、データを他のサブスクライバーに再パブリッシュするサブスクライバーで使用されます。 サブスクリプションの選択は、競合の解決にも影響します。

Non-SQL Server Subscribers

Oracle および IBM DB2 は、プッシュ サブスクリプションを使用してスナップショット パブリケーションとトランザクション パブリケーションをサブスクライブできます。 詳細については、「 Non-SQL Server Subscribers」を参照してください。

サブスクリプションの作成

サブスクリプションを作成するには、次の情報を指定します。

  • パブリケーションの名前を指定します。

  • サブスクライバーとサブスクリプション データベースの名前

  • ディストリビューション エージェントまたはマージ エージェントをディストリビューターとサブスクライバーのどちらで実行するか

  • ディストリビューション エージェントまたはマージ エージェントを、連続的、スケジュール、要求時のどの方法に基づいて実行するか

  • スナップショット エージェントがサブスクリプションの初期スナップショットを作成するかどうか、およびディストリビューション エージェントまたはマージ エージェントがそのスナップショットをサブスクライバーで適用するかどうか

  • ディストリビューション エージェントまたはマージ エージェントを実行するときに使用するアカウント

  • マージ レプリケーションの場合、サブスクリプションの種類はサーバーとクライアントです。

プッシュ サブスクリプションを作成するには

プッシュ サブスクリプションを作成する

プッシュ サブスクリプションのプロパティを表示または変更するには

プッシュ サブスクリプションのプロパティの表示または変更

プッシュ サブスクリプションを削除するには

SQL Server Management Studio:プッシュ サブスクリプションの削除

注意

サブスクリプションを削除しても、パブリッシュされたオブジェクトはサブスクライバーから削除されません。

プル サブスクリプションを作成するには

SQL Server Management Studio:Create a Pull Subscription

プル サブスクリプションのプロパティを表示または変更するには

プル サブスクリプションのプロパティの表示または変更

プル サブスクリプションを削除するには

プル サブスクリプションの削除

参照

サブスクライバーのセキュリティ保護
サブスクリプションの有効期限と非アクティブ化