サブスクリプションの再初期化

サブスクリプションの再初期化では、1 つ以上のサブスクライバに 1 つ以上のアーティクルの新しいスナップショットが適用されます。トランザクション レプリケーションとスナップショット レプリケーションでは個々のアーティクルを再初期化できますが、マージ レプリケーションではすべてのアーティクルを再初期化する必要があります。ピア ツー ピア トランザクション レプリケーション トポロジのノードは再初期化できません。ノードが新しいデータのコピーを確実に保持する必要がある場合は、そのノードでバックアップを復元してください。再初期化は、以下の 2 つの場合に行われます。

いずれの場合も、ディストリビューション エージェントまたはマージ エージェントが次に実行されたときに、最新のスナップショットがサブスクライバに適用されます。スナップショット レプリケーションとトランザクション レプリケーションの場合は、再初期化が行われると、サブスクライバで行われた変更 (まだパブリッシャと同期されていない変更) は新しいスナップショットの適用によって上書きされます。

マージ レプリケーションの場合は、スナップショットを適用する前にすべてのデータ変更をサブスクライバからアップロードするように選択することができます。スナップショットが再適用される前に、パブリッシャの保留中のスキーマ変更がサブスクライバに適用され、前回の同期以降にサブスクライバで行われた更新がパブリッシャに反映されます。この動作は、upload_first プロパティと automatic_reinitialization_policy プロパティによって制御されます。詳細については、「サブスクリプションを再初期化する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。SQL Server Management Studio またはレプリケーション モニタを使用してサブスクリプションを再初期化するようにマークする場合は、[サブスクリプションの再初期化] ダイアログ ボックスのオプションで、先に変更をアップロードするかどうかを指定できます。

重要な注意事項重要

マージ パブリケーションのパラメータ化されたフィルタを追加、削除、変更する場合は、再初期化の際にサブスクライバで保留中の変更をパブリッシャにアップロードできません。保留中の変更をアップロードする場合は、フィルタを変更する前にすべてのサブスクリプションを同期してください。

サブスクリプションを作成するとき、初期スナップショットをサブスクライバに適用しないように指定した場合、作成されたサブスクリプションを再初期化するようにマークしても、スナップショットは適用されません。詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」および「スナップショットを使用しないマージ サブスクリプションの初期化」を参照してください。

サブスクリプションを再初期化するには

サブスクリプションのすべてのアーティクルを再初期化するには、SQL Server Management Studio、ストアド プロシージャ、またはレプリケーション管理オブジェクト (RMO) を使用します。スナップショット パブリケーションおよびトランザクション パブリケーションの個々のアーティクルを再初期化するには、ストアド プロシージャを使用する必要があります。