既存のパブリケーションへのアーティクルの追加および削除
パブリケーションを作成したら、アーティクルを追加および削除できます。アーティクルはいつでも追加できますが、アーティクルを削除するために必要な操作は、レプリケーションの種類と、アーティクルを削除するタイミングによって異なります。
アーティクルの追加
アーティクルを追加するには、アーティクルへのパブリケーションの追加、パブリケーションの新しいスナップショットの作成、サブスクリプションの同期による新しいアーティクルのスキーマとデータの適用を行います。
注意 |
---|
マージ パブリケーションにアーティクルを追加する際に、その新しいアーティクルに既存のアーティクルが依存している場合は、sp_addmergearticle および sp_changemergearticle の @processing_order パラメータを使用して、両方のアーティクルの処理順序を指定する必要があります。たとえば、テーブルをパブリッシュし、テーブルが参照している関数はパブリッシュしない場合を考えます。この関数をパブリッシュしないと、サブスクライバ側でテーブルを作成できないとします。この場合は、この関数をパブリケーションに追加するときに、sp_addmergearticle の @processing_order パラメータに値 1 を指定し、sp_changemergearticle の @processing_order パラメータに値 2 を指定します。パラメータ @article にはテーブル名を指定します。この処理順序により、サブスクライバ側で関数に依存するテーブルを作成する前に、関数の作成が求められるようになります。各アーティクルに使用する値は、関数の値がテーブルの値より小さければ、別の値でもかまいません。 |
次のいずれかの方法を使用して、1 つ以上のアーティクルを追加します。
Microsoft SQL Server Management Studio: パブリケーションでアーティクルを追加または削除する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : アーティクルを定義する方法 (レプリケーション Transact-SQL プログラミング)
レプリケーション管理オブジェクト (RMO) プログラミング : アーティクルを定義する方法 (RMO プログラミング)
パブリケーションにアーティクルを追加したら、パブリケーションの新しいスナップショット (およびパラメータ化されたフィルタを使用したマージ パブリケーションの場合は、すべてのパーティション) を作成する必要があります。その後、ディストリビューション エージェントまたはマージ エージェントによって、新しいアーティクルのスキーマおよびデータがサブスクライバにコピーされます (パブリケーション全体が再初期化されるわけではありません)。
新しいスナップショットを作成するには
SQL Server Management Studio: 初期スナップショットを作成および適用する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : 初期スナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)
RMO プログラミング : 初期スナップショットを作成する方法 (RMO プログラミング)
パラメータ化されたフィルタを使用してマージ パブリケーションの新しいスナップショットを作成するには
SQL Server Management Studio: パラメータ化されたフィルタを使用してマージ パブリケーションのスナップショットを作成する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : パラメータ化されたフィルタを使用してマージ レプリケーションのスナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)
スナップショットを作成したら、サブスクリプションを同期し、新しいアーティクルのスキーマおよびデータをコピーします。
プッシュ サブスクリプションを同期するには
SQL Server Management Studio: プッシュ サブスクリプションの同期をとる方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : プッシュ サブスクリプションを同期する方法 (レプリケーション プログラミング)
RMO プログラミング : プッシュ サブスクリプションを同期する方法 (RMO プログラミング)
プル サブスクリプションを同期するには
SQL Server Management Studio: プル サブスクリプションの同期をとる方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : プル サブスクリプションを同期する方法 (レプリケーション プログラミング)
RMO プログラミング : プル サブスクリプションを同期する方法 (RMO プログラミング)
アーティクルの削除
アーティクルはパブリケーションからいつでも削除できます。ただし、次の動作について考慮する必要があります。
パブリケーションからアーティクルを削除しても、パブリケーション データベースからオブジェクトが削除されたり、サブスクリプション データベースから対応するオブジェクトが削除されるわけではありません。必要に応じて、DROP <Object> を使用してこれらのオブジェクトを削除します。パブリッシュされた他のアーティクルに外部キー制約を通じて関連付けられているアーティクルを削除するときは、手動または要求時スクリプト実行により、サブスクライバでテーブルを削除することをお勧めします。適切な DROP <Object> ステートメントを含むスクリプトを指定してください。詳細については、「同期中にスクリプトを実行する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
互換性レベル 90RTM 以上のマージ パブリケーションの場合、アーティクルはいつでも削除できますが、新しいスナップショットが必要です。さらに、次のことを考慮する必要があります。
アーティクルが結合フィルタ リレーションシップまたは論理レコード リレーションシップの親アーティクルの場合、最初にリレーションシップの削除が必要ですが、これには再初期化が必要になります。
アーティクルにパブリケーションの最後のパラメータ化されたフィルタが含まれる場合、サブスクリプションを再初期化する必要があります。
互換性レベルが 90RTM 未満のマージ パブリケーションの場合、アーティクルは特別な注意をせずに、サブスクリプションの初期同期の前に削除できます。1 つ以上のサブスクリプションが同期された後にアーティクルが削除された場合、サブスクリプションの削除、再作成、および同期が必要です。互換性レベルの詳細については、「レプリケーション トポロジにおける複数バージョンの SQL Server の使用」の「マージ パブリケーションの互換性レベル」を参照してください。
スナップショット パブリケーションまたはトランザクション パブリケーションの場合、アーティクルはサブスクリプションを作成する前に、特別な事項を考慮せずに削除できます。1 つ以上のサブスクリプションが作成された後にアーティクルが削除された場合、サブスクリプションの削除、再作成、および同期が必要です。サブスクリプションの削除の詳細については、「パブリケーションのサブスクライブ」および「sp_dropsubscription (Transact-SQL)」を参照してください。sp_dropsubscription を使用すると、サブスクリプション全体ではなく、サブスクリプションの単一のアーティクルを削除できます。
パブリケーションからアーティクルを削除するには、アーティクルを削除し、パブリケーションの新しいスナップショットを作成します。アーティクルを削除すると、現在のスナップショットは無効になります。したがって新しいスナップショットを作成する必要があります。
パブリケーションからアーティクルを削除するには
SQL Server Management Studio: パブリケーションでアーティクルを追加または削除する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : アーティクルを削除する方法 (レプリケーション Transact-SQL プログラミング)
RMO プログラミング : アーティクルを削除する方法 (RMO プログラミング)
パブリケーションからアーティクルを削除したら、パブリケーションの新しいスナップショット (およびパラメータ化されたフィルタを使用したマージ パブリケーションの場合は、すべてのパーティション) を作成する必要があります。
新しいスナップショットを作成するには
SQL Server Management Studio: 初期スナップショットを作成および適用する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : 初期スナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)
RMO プログラミング : 初期スナップショットを作成する方法 (RMO プログラミング)
パラメータ化されたフィルタを使用してマージ パブリケーションの新しいスナップショットを作成するには
SQL Server Management Studio: パラメータ化されたフィルタを使用してマージ パブリケーションのスナップショットを作成する方法 (SQL Server Management Studio)
レプリケーション Transact-SQL プログラミング : パラメータ化されたフィルタを使用してマージ レプリケーションのスナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)
前述のように、場合によっては、アーティクルを削除するために、サブスクリプションの削除、再作成、および同期が必要になる場合があります。詳細については、「パブリケーションのサブスクライブ」および「データの同期」を参照してください。