マージ パブリケーションでデータの競合を表示および解決する方法 (SQL Server Management Studio)
更新 : 2006 年 12 月 12 日
マージ レプリケーションの競合は、各アーティクルに対して指定された競合回避モジュールに基づいて解決されます。既定では、競合はユーザーの介入を必要とせずに解決されます。ただし、Microsoft レプリケーション競合表示モジュールで競合を表示したり、解決の結果を変更したりすることができます。
競合データは、競合の保有期間に指定した期間内 (既定では 14 日間) はレプリケーション競合表示モジュールで利用できます。競合の保有期間を設定するには、次のいずれかを実行します。
- sp_addmergepublication (Transact-SQL) の @conflict_retention パラメータに保有期間の値を指定します。
- @property パラメータに conflict_retention の値を指定し、sp_changemergepublication (Transact-SQL) の @value パラメータに保有期間の値を指定します。
競合情報の既定の保存先は次のとおりです。
- パブリケーションの互換性レベルが 90 RTM 以上の場合は、パブリッシャおよびサブスクライバに保存されます。互換性レベルの詳細については、「レプリケーション トポロジにおける複数バージョンの SQL Server の使用」の「マージ パブリケーションの互換性レベル」を参照してください。
- パブリケーションの互換性レベルが 80 RTM 未満の場合は、パブリッシャに保存されます。
- サブスクライバが SQL Server 2005 Compact Edition を実行している場合は、パブリッシャに保存されます。競合データを SQL Server 2005 Compact Edition サブスクライバに保存することはできません。
競合情報を格納する領域は、conflict_logging パブリケーション プロパティによって制御されます。詳細については、「sp_addmergepublication (Transact-SQL)」および「sp_changemergepublication (Transact-SQL)」を参照してください。
競合は、Microsoft のインタラクティブ競合回避モジュールを使用して、同期実行時に対話的に解決することもできます。競合回避モジュールは、Microsoft Windows 同期マネージャで利用できます。詳細については、「Windows 同期マネージャを使用してサブスクリプションを同期する方法 (Windows 同期マネージャ)」を参照してください。
マージ パブリケーションで競合を表示および解決するには
Microsoft SQL Server Management Studio のパブリッシャ (または必要に応じてサブスクライバ) に接続して、サーバー ノードを展開します。
[レプリケーション] フォルダを展開し、[ローカル パブリケーション] フォルダを展開します。
競合を表示するパブリケーションを右クリックしてから、[競合の表示] をクリックします。
メモ : conflict_logging プロパティの値として 'subscriber' を指定した場合は、[競合の表示] メニュー オプションを利用できません。競合を表示するには、コマンド プロンプトで ConflictViewer.exe を起動します。既定では、ConflictViewer.exe が格納されているディレクトリは、Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE です。有効な起動時のパラメータの一覧を表示するには、 ConflictViewer.exe -?
を実行します。[競合テーブルの選択] ダイアログ ボックスで、競合を表示するデータベース、パブリケーション、およびテーブルを選択します。
レプリケーション競合表示モジュールでは、以下を実行できます。
- 上のグリッドの右側のボタンで行をフィルタ選択する。
- 上のグリッドで行を選択して、下のグリッドにその行の情報を表示する。
- 上のグリッドで 1 つ以上の行を選択し、[削除] をクリックする。これは、データに変更を加えずに [優先されたデータの送信] をクリックするのと同じです。
- プロパティ ボタン ([...]) をクリックし、競合に関係のある列の詳細情報を表示する。
- データを送信する前に、[競合で優先されたデータ] 列または [競合で優先されなかったデータ] 列でデータを編集する (列が灰色の場合、データは読み取り専用です)。
- [優先されたデータの送信] をクリックし、競合で優先するデータとして指定された行を受け入れる。
- [優先されなかったデータの送信] をクリックして解決を無効にし、競合で優先されないデータとして指定された値をトポロジのすべてのノードに反映する。
- [この競合の詳細をログに記録する] を選択して、競合のデータをログ ファイルに記録する。ファイルの場所を指定するには、[表示] メニューをポイントし、[オプション] をクリックします。値を入力するか、または参照ボタン ([...]) をクリックして適切なファイルに移動します。[OK] をクリックして [オプション] ダイアログ ボックスを閉じます。
レプリケーション競合表示モジュールを閉じます。
参照
処理手順
マージ アーティクル競合回避モジュールを指定する方法 (SQL Server Management Studio)