次の方法で共有


sp_resyncmergesubscription (Transact-SQL)

適用対象: SQL サーバー

指定した既知の検証状態にマージ サブスクリプションを再同期します。 コンバージェンスを強制するか、サブスクリプション データベースを特定の時点 (最後に検証が成功した時刻など)、または指定した日付に同期することができます。 この方法を使用してサブスクリプションを再同期しても、スナップショットは再適用されません。 このストアド プロシージャは、スナップショット レプリケーション サブスクリプションまたはトランザクション レプリケーション サブスクリプションには使用されません。 このストアド プロシージャは、パブリッシャー、パブリケーション データベース、またはサブスクライバーのサブスクリプション データベースで実行されます。

Transact-SQL 構文表記規則

構文

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'

パブリッシャーの名前。 @publishersysname で、既定値は NULL です。 NULLの値は、ストアド プロシージャがパブリッシャーで実行される場合に有効です。 ストアド プロシージャをサブスクライバー側で実行する場合は、パブリッシャーを指定する必要があります。

[ @publisher_db = ] N'publisher_db'

パブリケーション データベースの名前。 @publisher_dbsysname で、既定値は NULL です。 NULLの値は、パブリケーション データベースのパブリッシャーでストアド プロシージャが実行されている場合に有効です。 ストアド プロシージャをサブスクライバー側で実行する場合は、パブリッシャーを指定する必要があります。

[ @publication = ] N'publication'

出版物の名前。 @publicationsysname で、既定値はありません。

[ @subscriber = ] N'subscriber'

サブスクライバーの名前。 @subscribersysname で、既定値は NULL です。 NULLの値は、ストアド プロシージャがサブスクライバーで実行されている場合に有効です。 ストアド プロシージャがパブリッシャーで実行される場合は、サブスクライバーを指定する必要があります。

[ @subscriber_db = ] N'subscriber_db'

サブスクリプション データベースの名前。 @subscriber_dbsysname で、既定値は NULL です。 ストアド プロシージャがサブスクリプション データベースのサブスクライバーで実行されている場合、 NULL の値は有効です。 ストアド プロシージャがパブリッシャーで実行される場合は、サブスクライバーを指定する必要があります。

[ @resync_type = ] resync_type

再同期を開始するタイミングを定義します。 @resync_typeint で、次のいずれかの値を指定できます。

Value 説明
0 同期は、初期スナップショットの後から開始されます。 初期スナップショット以降のすべての変更がサブスクライバーに再適用されるため、このオプションは最も多くのリソースを消費します。
1 同期は、前回成功した検証以降に開始されます。 最後に検証が成功してから発生した新しい世代または不完全な世代はすべて、サブスクライバーに再適用されます。
2 同期は、 resync_date_strで指定された日付から開始されます。 指定の日付以降の、すべての新しい生成結果または完了していない生成結果がサブスクライバーに再適用されます。

[ @resync_date_str = ] N'resync_date_str'

再同期を開始する日付を定義します。 @resync_date_strnvarchar(30) で、既定値は NULL です。 このパラメーターは、 @resync_type2 の値である場合に使用されます。 指定された日付は、等価の datetime 値に変換されます。

リターン コードの値

0 (成功) または 1 (失敗)。

解説

sp_resyncmergesubscription はマージ レプリケーションで使用されます。

初期スナップショット以降のすべての変更を再適用する@resync_type パラメーターの値0は、リソースを大量に消費する可能性がありますが、完全再初期化よりもはるかに小さい場合があります。 たとえば、最初のスナップショットが 1 か月前に配信された場合、この値によって過去 1 か月のデータが再適用されます。 初期スナップショットに 1 ギガバイト (GB) のデータが含まれていて、過去 1 か月の変更数が 2 MB の変更データで構成されている場合は、完全な 1 GB のスナップショットを再適用するよりも、データを再適用する方が効率的です。

アクセス許可

sysadmin固定サーバー ロールまたはdb_owner固定データベース ロールのメンバーのみが、sp_resyncmergesubscriptionを実行できます。