sp_resyncmergesubscription (Transact-SQL)
マージ サブスクリプションを、指定の有効な状態に再同期します。これによって、サブスクリプション データベースを、正常終了した前回の検証時や指定の日時など、特定の時点に強制的に集約または同期できます。この方法でサブスクリプションを再同期する場合、スナップショットは再適用されません。このストアド プロシージャは、スナップショット レプリケーション サブスクリプションまたはトランザクション レプリケーション サブスクリプションでは使用しません。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されるか、サブスクライバ側でサブスクリプション データベースについて実行されます。
構文
sp_resyncmergesubscription [ [ @publisher = ] 'publisher' ]
[ , [ @publisher_db = ] 'publisher_db' ]
, [ @publication = ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @resync_type = ] resync_type ]
[ , [ @resync_date_str = ] resync_date_string ]
引数
- [ @publisher = ] 'publisher'
パブリッシャの名前を指定します。publisher のデータ型は sysname で、既定値は NULL です。ストアド プロシージャをパブリッシャ側で実行する場合は、NULL の値が有効です。ストアド プロシージャをサブスクライバ側で実行する場合は、パブリッシャを指定する必要があります。
- [ @publisher_db = ] 'publisher_db'
パブリケーション データベースの名前を指定します。publisher_db のデータ型は sysname で、既定値は NULL です。ストアド プロシージャをパブリケーション データベースのパブリッシャ側で実行する場合は、NULL の値が有効です。ストアド プロシージャをサブスクライバ側で実行する場合は、パブリッシャを指定する必要があります。
- [ @publication = ] 'publication'
パブリケーションの名前を指定します。publication のデータ型は sysname で、既定値はありません。
- [ @subscriber = ] 'subscriber'
サブスクライバの名前を指定します。subscriber のデータ型は sysname で、既定値は NULL です。ストアド プロシージャをサブスクライバ側で実行する場合は、NULL の値が有効です。ストアド プロシージャをパブリッシャ側で実行する場合は、サブスクライバを指定する必要があります。
- [ @subscriber_db = ] 'subscriber_db'
サブスクリプション データベースの名前を指定します。subscription_db のデータ型は sysname で、既定値は NULL です。ストアド プロシージャをサブスクリプション データベースのサブスクライバ側で実行する場合は、NULL の値が有効です。ストアド プロシージャをパブリッシャ側で実行する場合は、サブスクライバを指定する必要があります。
[ @resync_type = ] resync_type
再同期の開始時期を定義します。resync_type のデータ型は int で、次のいずれかの値を指定できます。値 説明 0
初期スナップショットの後から同期を開始。このオプションでは、初期スナップショット以降のすべての変更がサブスクライバに再適用されるので、最もリソースが使用されます。
1
正常終了した前回の検証以降の同期を開始。正常終了した前回の検証以降の、すべての新しい生成結果または完了していない生成結果がサブスクライバに再適用されます。
2
resync_date_str で指定した日付から同期を開始。指定の日付以降の、すべての新しい生成結果または完了していない生成結果がサブスクライバに再適用されます。
- [ @resync_date_str=] resync_date_string
再同期を開始する日付を定義します。resync_date_string のデータ型は nvarchar(30) で、既定値は NULL です。このパラメータは、resync_type の値が 2 のときに使用します。指定した日付は、対応する datetime 値に変換されます。
解説
sp_resyncmergesubscription は、マージ レプリケーションで使用します。
resync_type パラメータの値が 0 の場合は、初期スナップショット以降のすべての変更が再適用され、多くのリソースが使用されることがあります。しかし多くの場合、全体を再初期化するよりはリソースの使用量が少なくて済みます。たとえば、初期スナップショットが 1 か月前に配信された場合は、過去 1 か月分のデータが再適用されます。初期スナップショットに 1 GB のデータが含まれていた場合、過去 1 か月のデータ変更量が 2 MB であれば、1 GB のスナップショット全体を再適用するよりは変更データを再適用する方が効率的です。
権限
sp_resyncmergesubscription を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバだけです。
戻り値
0 (成功) または 1 (失敗)
参照
関連項目
システム ストアド プロシージャ (Transact-SQL)