サブスクリプションの有効期限の設定
このトピックでは、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 のサブスクリプションの有効期限を設定する方法について説明します。 サブスクリプションの期限が切れて削除されるまでの時間は、サブスクリプションの有効期限によって決定されます。 詳細については、「 Subscription Expiration and Deactivation」を参照してください。
このトピックの内容
作業を開始する準備:
サブスクリプションの有効期限を設定するために使用するもの:
はじめに
推奨事項
サブスクリプションの有効期限は、 パブリケーション保有期間とも呼ばれます。 マージ レプリケーション メタデータのクリーンアップは、この設定に依存します。
保有期間が終了するまで、パブリケーションおよびサブスクリプション データベースでメタデータをクリーンアップすることはできません。 レプリケーション パフォーマンスを低下させる可能性があるため、保有期間に大きな値を指定する際は注意してください。 すべてのサブスクライバーが保有期間内で定期的に同期されることを確実に予測できる場合は、小さい値を使用することをお勧めします。
マージ パブリケーションの保有期間には、異なるタイム ゾーンのサブスクライバーに対応するため、24 時間の猶予期間があります。 たとえば、保有期間を 1 日に設定した場合、実際の保有期間は 48 時間となります。
サブスクリプションの期限が切れないように指定することは可能ですが、メタデータをクリーンアップできなくなるため、この値は使用しないことを強くお勧めします。
SQL Server Management Studio を使用する
[パブリケーションのプロパティ - <パブリケーション>] ダイアログ ボックスの [全般] ページで、サブスクリプションの有効期限を設定します。 このダイアログ ボックスへのアクセス方法の詳細については、「パブリケーション プロパティの表示および変更」を参照してください。
サブスクリプションの有効期限を設定するには
[パブリケーションのプロパティ - <パブリケーション>] ダイアログ ボックスの [全般] ページの [サブスクリプションの有効期限] セクションで、サブスクリプションの有効期限を指定します。
有効期限を設定する場合、有効期限の期間を指定します。
Transact-SQL の使用
この値は、レプリケーションのストアド プロシージャを使用して、パブリケーションの作成時に設定することも、後で変更することもできます。
スナップショットまたはトランザクション パブリケーションのサブスクリプションに対して有効期限を設定するには
- パブリッシャーで sp_addpublicationを実行します。 @retentionに必要なサブスクリプションの有効期限を時間単位で指定します。 既定の有効期限は 336 時間です。 詳しくは、「 パブリケーションを作成」をご覧ください。
マージ パブリケーションのサブスクリプションに対して有効期限を設定するには
パブリッシャーで sp_addmergepublicationを実行します。 @retentionのサブスクリプションの有効期限に必要な値を指定します。 @retention_period_unitの有効期限を表す単位を指定します。次のいずれかを指定できます。
1 = 週
2 = 月
3 = 年
既定の有効期限は 14 日です。 詳しくは、「 パブリケーションを作成」をご覧ください。
スナップショットまたはトランザクション パブリケーションのサブスクリプションに対して有効期限を変更するには
- パブリッシャーで sp_changepublicationを実行します。 @propertyのリテンション期間と、@valueの新しいサブスクリプションの有効期限を時間単位で指定します。
マージ パブリケーションのサブスクリプションに対して有効期限を変更するには
パブリッシャーで、@publicationと@publisherを指定して、sp_helpmergepublicationを実行します。 結果セットの retention_period_unit の値 (次のいずれか) を確認します。
0 = 日
1 = 週
2 = 月
3 = 年
パブリッシャーで sp_changemergepublicationを実行します。 @valueの手順 1 の保持期間単位に基づいて、@propertyと新しいサブスクリプションの有効期限の保持期間をテキストとして指定します。
(省略可) パブリッシャーで sp_changemergepublicationを実行します。 @propertyのretention_period_unitと、@valueのサブスクリプションの有効期限の新しいユニットを指定します。
参照
Replication System Stored Procedures Concepts
サブスクリプションの有効期限と非アクティブ化