サブスクリプションを再初期化するには、1 つ以上のアーティクルの新しいスナップショットを 1 つ以上のサブスクライバーに適用する必要があります。トランザクション レプリケーションとスナップショット レプリケーションでは、個々のアーティクルを再初期化できます。マージ レプリケーションでは、すべてのアーティクルを再初期化する必要があります。 ピア ツー ピア トランザクション レプリケーション トポロジ内のノードを再初期化することはできません。 ノードにデータの新しいコピーがあることを確認する必要がある場合は、ノードでバックアップを復元します。 再初期化は、次の 2 つの理由のいずれかで発生します。
サブスクリプションに再初期化のマークを明示的に付けます。
再初期化を必要とするアクション (プロパティの変更など) を実行します。 再初期化が必要なアクションの詳細については、「 パブリケーションとアーティクルのプロパティの変更」を参照してください。
いずれの場合も、ディストリビューション エージェントまたはマージ エージェントが次回実行されるときに、最新のスナップショットがサブスクライバーに適用されます。 スナップショット レプリケーションとトランザクション レプリケーションの場合、再初期化が行われると、サブスクライバーで加えられた変更は、パブリッシャーとまだ同期されていませんが、新しいスナップショットのアプリケーションによって上書きされます。
マージ レプリケーションでは、スナップショットが適用される前にサブスクライバーからすべてのデータ変更をアップロードするように選択できます。 パブリッシャーからの保留中のスキーマ変更はサブスクライバーで適用され、最後の同期以降にサブスクライバーで行われた更新は、スナップショットが再適用される前にパブリッシャーに反映されます。 この動作は、 upload_first プロパティと automatic_reinitialization_policy プロパティによって制御されます。詳細については、「サブスクリプションの 再初期化」を参照してください。 SQL Server Management Studio またはレプリケーション モニターを使用してサブスクリプションを再初期化するようにマークすると、最初に [ サブスクリプションの再初期化 ] ダイアログ ボックスに変更をアップロードするオプションが表示されます。
重要
マージ パブリケーションでパラメーター化されたフィルターを追加、削除、または変更した場合、再初期化中にサブスクライバーで保留中の変更をパブリッシャーにアップロードすることはできません。 保留中の変更をアップロードする場合は、フィルターを変更する前にすべてのサブスクリプションを同期します。
サブスクリプションの作成時に初期スナップショットをサブスクライバーに適用しないことを指定し、サブスクリプションに再初期化のマークを付けた場合、スナップショットは適用されません。 詳細については、「 スナップショットを使用せずにトランザクション サブスクリプションを初期化する」を参照してください。
サブスクリプションを再初期化するには
サブスクリプション内のすべてのアーティクルを再初期化するには、SQL Server Management Studio、ストアド プロシージャ、またはレプリケーション管理オブジェクト (RMO) を使用します。 スナップショット パブリケーションとトランザクション パブリケーション内の個々のアーティクルを再初期化するには、ストアド プロシージャを使用する必要があります。 詳細については、「サブスクリプションの 再初期化」を参照してください。