次の方法で共有


sp_resyncmergesubscription (Transact-SQL)

マージ サブスクリプションを、指定の有効な状態に再同期します。 これによって、サブスクリプション データベースを、正常終了した前回の検証時や指定の日時など、特定の時点に強制的に集約または同期できます。 この方法でサブスクリプションを再同期する場合、スナップショットは再適用されません。 このストアド プロシージャは、スナップショット レプリケーション サブスクリプションまたはトランザクション レプリケーション サブスクリプションでは使用しません。 このストアド プロシージャは、パブリッシャー側でパブリケーション データベースについて実行されるか、サブスクライバー側でサブスクリプション データベースについて実行されます。

トピック リンク アイコン 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 値に変換されます。

戻り値

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

説明

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

resync_type パラメーターの値が 0 の場合は、初期スナップショット以降のすべての変更が再適用され、多くのリソースが使用されることがあります。しかし多くの場合、全体を再初期化するよりはリソースの使用量が少なくて済みます。 たとえば、初期スナップショットが 1 か月前に配信された場合は、過去 1 か月分のデータが再適用されます。 初期スナップショットに 1 GB のデータが含まれていた場合、過去 1 か月のデータ変更量が 2 MB であれば、1 GB のスナップショット全体を再適用するよりは変更データを再適用する方が効率的です。

権限

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

関連項目

参照

システム ストアド プロシージャ (Transact-SQL)