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