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

マージ レプリケーションの競合は、各アーティクルに対して指定された競合回避モジュールに基づいて解決されます。既定では、競合はユーザーの介入を必要とせずに解決されます。ただし、Microsoft レプリケーション競合表示モジュールで競合を表示したり、解決の結果を変更したりすることができます。

競合データは、競合の保有期間に指定した期間内 (既定では 14 日間) はレプリケーション競合表示モジュールで利用できます。競合の保有期間を設定するには、次のいずれかを実行します。

競合情報の既定の保存先は次のとおりです。

  • パブリケーションの互換性レベルが 90 RTM 以上の場合は、パブリッシャおよびサブスクライバに保存されます。互換性レベルの詳細については、「レプリケーション トポロジにおける複数バージョンの SQL Server の使用」の「マージ パブリケーションの互換性レベル」を参照してください。

  • パブリケーションの互換性レベルが 80 RTM 未満の場合は、パブリッシャに保存されます。

  • サブスクライバが SQL Server Compact 3.5 SP2 を実行している場合は、パブリッシャに保存されます。競合データを SQL Server Compact 3.5 SP2 サブスクライバに保存することはできません。

競合情報を格納する領域は、conflict_logging パブリケーション プロパティによって制御されます。詳細については、「sp_addmergepublication (Transact-SQL)」および「sp_changemergepublication (Transact-SQL)」を参照してください。

競合は、Microsoft のインタラクティブ競合回避モジュールを使用して、同期実行時に対話的に解決することもできます。競合回避モジュールは、Microsoft Windows 同期マネージャで利用できます。詳細については、「Windows 同期マネージャを使用してサブスクリプションを同期する方法 (Windows 同期マネージャ)」を参照してください。

マージ パブリケーションで競合を表示および解決するには

  1. Microsoft SQL Server Management Studio のパブリッシャ (または必要に応じてサブスクライバ) に接続して、サーバー ノードを展開します。

  2. [レプリケーション] フォルダを展開し、[ローカル パブリケーション] フォルダを展開します。

  3. 競合を表示するパブリケーションを右クリックしてから、[競合の表示] をクリックします。

    注意

    conflict_logging プロパティの値として 'subscriber' を指定した場合は、[競合の表示] メニュー オプションを利用できません。競合を表示するには、コマンド プロンプトで ConflictViewer.exe を起動します。既定では、ConflictViewer.exe が格納されているディレクトリは、Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE です。有効な起動時のパラメータの一覧を表示するには、ConflictViewer.exe -? を実行します。

  4. [競合テーブルの選択] ダイアログ ボックスで、競合を表示するデータベース、パブリケーション、およびテーブルを選択します。

  5. レプリケーション競合表示モジュールでは、以下を実行できます。

    • 上のグリッドの右側のボタンで行をフィルタ選択する。

    • 上のグリッドで行を選択して、下のグリッドにその行の情報を表示する。

    • 上のグリッドで 1 つ以上の行を選択し、[削除] をクリックする。これは、データに変更を加えずに [優先されたデータの送信] をクリックするのと同じです。

    • プロパティ ボタン ([...]) をクリックし、競合に関係のある列の詳細情報を表示する。

    • データを送信する前に、[競合で優先されたデータ] 列または [競合で優先されなかったデータ] 列でデータを編集する (列が灰色の場合、データは読み取り専用です)。

    • [優先されたデータの送信] をクリックし、競合で優先するデータとして指定された行を受け入れる。

    • [優先されなかったデータの送信] をクリックして解決を無効にし、競合で優先されないデータとして指定された値をトポロジのすべてのノードに反映する。

    • [この競合の詳細をログに記録する] を選択して、競合のデータをログ ファイルに記録する。ファイルの場所を指定するには、[表示] メニューをポイントし、[オプション] をクリックします。値を入力するか、または参照ボタン ([...]) をクリックして適切なファイルに移動します。[OK] をクリックして [オプション] ダイアログ ボックスを閉じます。

  6. レプリケーション競合表示モジュールを閉じます。