sp_resyncmergesubscription (Transact-SQL)
適用対象: SQL Server
指定した既知の検証状態にマージ サブスクリプションを再同期します。 コンバージェンスを強制するか、サブスクリプション データベースを特定の時点 (最後に検証が成功した時刻など)、または指定した日付に同期することができます。 この方法を使用してサブスクリプションを再同期しても、スナップショットは再適用されません。 このストアド プロシージャは、スナップショット レプリケーション サブスクリプションまたはトランザクション レプリケーション サブスクリプションには使用されません。 このストアド プロシージャは、パブリッシャー、パブリケーション データベース、またはサブスクライバーのサブスクリプション データベースで実行されます。
構文
sp_resyncmergesubscription
[ [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
, [ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
, [ @resync_type = ] resync_type
[ , [ @resync_date_str = ] N'resync_date_str' ]
[ ; ]
引数
[ @publisher = ] N'publisher'
パブリッシャーの名前。 @publisher は sysname で、既定値は NULL
です。 NULL
の値は、ストアド プロシージャがパブリッシャーで実行される場合に有効です。 ストアド プロシージャをサブスクライバー側で実行する場合は、パブリッシャーを指定する必要があります。
[ @publisher_db = ] N'publisher_db'
パブリケーション データベースの名前。 @publisher_db は sysname で、既定値は NULL
です。 NULL
の値は、パブリケーション データベースのパブリッシャーでストアド プロシージャが実行されている場合に有効です。 ストアド プロシージャをサブスクライバー側で実行する場合は、パブリッシャーを指定する必要があります。
[ @publication = ] N'publication'
出版物の名前。 @publication は sysname で、既定値はありません。
[ @subscriber = ] N'subscriber'
サブスクライバーの名前。 @subscriber は sysname で、既定値は NULL
です。 NULL
の値は、ストアド プロシージャがサブスクライバーで実行されている場合に有効です。 ストアド プロシージャがパブリッシャーで実行される場合は、サブスクライバーを指定する必要があります。
[ @subscriber_db = ] N'subscriber_db'
サブスクリプション データベースの名前。 @subscriber_db は sysname で、既定値は NULL
です。 ストアド プロシージャがサブスクリプション データベースのサブスクライバーで実行されている場合、 NULL
の値は有効です。 ストアド プロシージャがパブリッシャーで実行される場合は、サブスクライバーを指定する必要があります。
[ @resync_type = ] resync_type
再同期を開始するタイミングを定義します。 @resync_type は int で、次のいずれかの値を指定できます。
値 | 説明 |
---|---|
0 |
同期は、初期スナップショットの後から開始されます。 初期スナップショット以降のすべての変更がサブスクライバーに再適用されるため、このオプションは最も多くのリソースを消費します。 |
1 |
同期は、前回成功した検証以降に開始されます。 最後に検証が成功してから発生した新しい世代または不完全な世代はすべて、サブスクライバーに再適用されます。 |
2 |
同期は、 resync_date_strで指定された日付から開始されます。 指定の日付以降の、すべての新しい生成結果または完了していない生成結果がサブスクライバーに再適用されます。 |
[ @resync_date_str = ] N'resync_date_str'
再同期を開始する日付を定義します。 @resync_date_str は nvarchar(30) で、既定値は NULL
です。 このパラメーターは、 @resync_type が 2
の値である場合に使用されます。 指定された日付は、等価の datetime 値に変換されます。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
sp_resyncmergesubscription
はマージ レプリケーションで使用されます。
初期スナップショット以降のすべての変更を再適用する@resync_type パラメーターの値0
は、リソースを大量に消費する可能性がありますが、完全再初期化よりもはるかに小さい場合があります。 たとえば、最初のスナップショットが 1 か月前に配信された場合、この値によって過去 1 か月のデータが再適用されます。 初期スナップショットに 1 ギガバイト (GB) のデータが含まれていて、過去 1 か月の変更数が 2 MB の変更データで構成されている場合は、完全な 1 GB のスナップショットを再適用するよりも、データを再適用する方が効率的です。
アクセス許可
sysadmin固定サーバー ロールまたはdb_owner固定データベース ロールのメンバーのみが、sp_resyncmergesubscription
を実行できます。