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

適用対象:SQL ServerAzure SQL Managed Instance

サブスクリプションの再初期化とは、1つ以上の記事の新しいスナップショットを1つ以上の購読者に適用することを意味します。 トランザクションおよびスナップショットレプリケーションにより、個々の記事の初期化が可能です。 マージレプリケーションでは、すべての記事の初期化が必要です。 ピアツーピアのトランザクションレプリケーショントポロジーではノードの再初期化はできません。 ノードに新しいデータのコピーを確実にするために、そのノードでバックアップを復元します。 再初期化は、以下の 2 つの場合に行われます。

  • サブスクリプションを再初期化の対象として明示的にマークします。

  • プロパティの変更など、再初期化を必要とする操作を実行した場合。 再初期化が必要な操作の詳細については、「Change Publication and Article Properties」 (パブリケーションおよびアーティクルのプロパティの変更) を参照してください。

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

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

重要

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

購読者に初期スナップショットを適用しないと指定し、その後再初期化のマークを付けた場合、スナップショットは適用されません。 詳細については、「 スナップショットを使用しないトランザクション サブスクリプションの初期化を使用して、サブスクリプションを手動で初期化する方法について説明します。

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

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