マージ アーティクルのインタラクティブな競合回避の指定

このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、マージ アーティクルにインタラクティブな競合回避を指定する方法について説明します。

Microsoft SQL Server レプリケーションでは、Microsoft Windows 同期マネージャーでの要求時同期中に、手動で競合を解決できるインタラクティブ競合回避モジュールを利用できます。 インタラクティブな競合解決を有効にすると、インタラクティブ競合回避モジュールを使用して、同期実行時に競合がインタラクティブに解決されます。 インタラクティブ競合回避モジュールは、Microsoft Windows 同期マネージャーで利用できます。 詳細については、「Windows 同期マネージャーを使用したサブスクリプションの同期 (Windows 同期マネージャー)」を参照してください。

このトピックの内容

  • 作業を開始する準備:

    推奨事項

  • マージ アーティクルにインタラクティブな競合回避を指定するために使用するもの:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

推奨事項

  • 同期が Windows 同期マネージャーの外部で (スケジュールされた同期、または SQL Server Management Studio かレプリケーション モニターでの要求時同期として) 実行される場合、アーティクルに指定された既定の競合回避を使用して、ユーザーの介入なしに自動的に競合が解決されます。 詳細については、「インタラクティブな競合解決」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

アーティクルに対してインタラクティブな競合解決を有効にするには

  1. パブリケーションの新規作成ウィザードの [アーティクル] ページまたは [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで、テーブルを選択します。 このウィザードの使用とダイアログ ボックスへのアクセスの詳細については、「パブリケーションの作成」および「パブリケーション プロパティの表示および変更」を参照してください。

  2. [アーティクルのプロパティ] をクリックし、次に [反転表示されたテーブル アーティクルのプロパティを設定] または [すべてのテーブル アーティクルのプロパティを設定] をクリックします。

  3. [アーティクルのプロパティ - <Article>] または [アーティクルのプロパティ - <ArticleType>] ページで、[競合回避モジュール] タブをクリックします。

  4. [要求時同期中にサブスクライバーが対話的に競合を解決することを許可する] を選択します。

  5. [OK] をクリックします。

  6. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、[OK] をクリックして保存し、ダイアログ ボックスを閉じます。

サブスクリプションでインタラクティブな競合解決を使用するように指定するには

  1. [サブスクリプションのプロパティ - <Subscriber>: <SubscriptionDatabase>] ダイアログ ボックスで、[競合を対話的に解決] オプションに対して [True] の値を指定します。 このダイアログ ボックスへのアクセスの詳細については、「プッシュ サブスクリプションのプロパティの表示または変更」および「プル サブスクリプションのプロパティの表示または変更」を参照してください。

  2. [OK] をクリックします。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

マージ パブリケーションに対するプル サブスクリプションが作成されるときに、サブスクライバーがこのグラフィカル インターフェイスを使用してアーティクルの競合を回避するように、プログラムで指定できます。 このオプションをサポートするアーティクル内の競合のみが、インタラクティブ競合回避モジュールに表示されます。

インタラクティブ競合回避モジュールを使用するマージ プル サブスクリプションを作成するには

  1. パブリッシャー側のパブリケーション データベースに対し、@publication を指定して sp_helpmergearticle を実行します。 インタラクティブ競合回避モジュールが使用される結果セット内の各アーティクルに対する allow_interactive_resolver の値を確認します。

    • この値が 1 の場合、インタラクティブ競合回避モジュールが使用されます。

    • この値が 0 の場合は、最初に、各アーティクルに対してインタラクティブ競合回避モジュールを有効にする必要があります。 そのためには、@publication@article を指定し、@propertyallow_interactive_resolver を、@valuetrue を指定して、sp_changemergearticle を実行します。

  2. サブスクライバー側のサブスクリプション データベースに対して、sp_addmergepullsubscription を実行します。 詳細については、「プル サブスクリプションの作成」を参照してください。

  3. サブスクライバー側のサブスクリプション データベースに対し、次のパラメーターを指定して sp_addmergepullsubscription_agent を実行します。

    • @publisher@publisher_db (パブリッシュされるデータベース)、および @publication

    • @enabled_for_syncmgrtrue

    • @use_interactive_resolvertrue

    • マージ エージェントが必要とするセキュリティ アカウント情報。 詳細については、「プル サブスクリプションの作成」を参照してください。

  4. パブリッシャー側のパブリケーション データベースに対し、sp_addmergesubscription を実行します。

インタラクティブ競合回避モジュールをサポートするアーティクルを定義するには

  • パブリッシャー側のパブリケーション データベースに対して、sp_addmergearticle を実行します。 @publication にアーティクルが属するパブリケーションの名前を、@article にアーティクルの名前を、@source_object にパブリッシュされるデータベース オブジェクトを指定し、@allow_interactive_resolvertrue を指定します。 詳細については、「アーティクルの定義」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]

関連項目

タスク

マージ パブリケーションでのデータの競合の表示および解決 (SQL Server Management Studio)

概念

インタラクティブな競合解決