[Microsoft レプリケーション競合表示モジュール] (マージ レプリケーション)

レプリケーション競合表示モジュールを使用すると、レプリケーション同期中に発生した競合を表示できます。競合が発生するのは、同一のデータの変更が、2 つの異なるサーバー、たとえば、パブリッシャとサブスクライバ、または 2 つの異なるサブスクライバで行われたときです。競合は、レプリケーションがアーティクルの作成時に選択された競合回避モジュールを使用することで自動的に解決されます。ただし、レプリケーション競合表示モジュールを使用すると、必要な場合に、競合を回避するための別の解決方法を選択することができます。発生する可能性がある競合は、次のとおりです。

  • 更新競合。更新競合は、同一のデータが 2 つの異なる場所で変更された場合に発生します。一方の変更が競合の優先データとなり、他方は非優先データとなります。既存のデータ (競合の優先データ) を保持する、競合したデータ (競合の非優先データ) で既存のデータを上書きする、または優先データと非優先データをマージして既存のデータを更新するオプションがあります。
  • 挿入競合。挿入競合は、他の場所での変更とマージされた場合に、データの一貫性のルールに違反する場所に行が挿入されたときに発生します。たとえば、2 行が 2 か所に挿入され、各行が同じ主キーを使用する場合、変更がマージされたときに 2 つの変更は競合します。一方の変更が競合の優先データとなり、他方は非優先データとなります。既存のデータ (競合の優先データ) を保持する、競合したデータ (競合の非優先データ) で既存のデータを上書きする、または優先データと非優先データをマージして既存のデータを更新するオプションがあります。
  • 削除競合。この競合は、同一行が、ある箇所で削除され、別の箇所で変更された場合に発生します。

競合は同期中に解決され、競合の非優先行のデータは競合テーブルに書き込まれます。この競合に対して、最初の解決策を受け入れるか別の解決策を選択すると、記録された競合行は競合テーブルから削除されます。定期的に競合を見直して、競合テーブルのサイズを小さくするようにしてください。

ms189029.note(ja-jp,SQL.90).gifメモ :
論理レコードに関連する競合は、競合表示モジュールに表示されません。これらの競合に関する情報を表示するには、レプリケーション ストアド プロシージャを使用します。詳細については、「マージ パブリケーションの競合情報を表示する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

オプション

レプリケーション競合表示モジュールは 2 つのセクションに分かれています。ダイアログ ボックスの上部のセクションには、選択されたテーブルの競合の一覧が表示されます。競合の一覧の項目をクリックすると、競合の詳細がダイアログ ボックスの下部のセクションに表示されます。

競合の発生理由を示す情報 (パブリッシャとサブスクライバの両方で同じ行が更新された場合など) はダイアログ ボックスの下部に表示されます。下部のセクションの競合データは、2 つの対応する列 ([競合で優先されたデータ][競合で優先されなかったデータ]) に表示されます。更新されたデータと削除されたデータの間で競合が発生した場合、削除された側の競合データが表示されない場合があります。この場合、レプリケーション競合表示モジュールでは、その行がある箇所では削除され別の箇所では更新されたことを示すメッセージが列の 1 つに表示されます。また、提案された解決策についても示されます。

レプリケーション競合表示モジュールで編集できないデータ (たとえば、rowguid データ) は、読み取り専用としてボックス内に淡色表示されます。

  • [データベース]
    競合があるパブリケーションを含むデータベースを選択します。
  • [パブリケーション]
    競合があるテーブルを含むパブリケーションを選択します。
  • [テーブル]
    競合を含むテーブルを選択します。
  • [フィルタの定義]
    [フィルタの定義] ダイアログ ボックスが表示されます。
  • [フィルタの適用または削除]
    [フィルタの定義] ダイアログ ボックスで定義されたフィルタを適用または削除します。
  • [すべて選択]
    グリッドに一覧表示されたすべての競合を選択します。
  • [すべて選択解除]
    グリッドに一覧表示されたすべての競合の選択を解除します。
  • [削除]
    選択された競合をビューアから削除し、関連するメタデータをレプリケーション システム テーブルから削除します。それぞれの選択された競合に対して [優先するデータの送信] ボタンをクリックする (データへの変更を行わない) 場合と同じです。
  • [すべての列を表示]
    選択すると、テーブルのすべての列が表示されます。
  • [最初の 5 列および競合データが含まれている列を表示]
    選択すると、最初の 5 列および競合データが含まれている列が表示されます。これは、テーブルに多数の列があり、競合を解決するのに最も関連する列のみを表示する場合に便利です。主キーや名前フィールドなど、行を識別するフィールドはテーブルの最初の列にある場合が多いため、このビューでは最初の 5 列が必ず表示されます。
  • 列情報の表示 ([...])
    列の情報である [テーブル名][列名][データ型]、および [列の値] を表示します。[列の値] は、値が読み取り専用と表示されている場合を除いて編集可能です。
  • [優先されたデータの送信]
    競合回避モジュールによって優先データと見なされた行をそのまま使用します。読み取り専用と表示されていない列の値は、このボタンをクリックする前に変更することができます。
  • [優先されなかったデータの送信]
    競合回避モジュールによって非優先データと見なされた行を受け入れます。読み取り専用と表示されていない列の値は、このボタンをクリックする前に変更することができます。
  • [競合の詳細をログに記録]
    このボックスをオンにすると、競合の詳細がファイルに記録されます。ファイルの場所を指定するには、[表示] メニューをポイントし、[オプション] をクリックします。値を入力するか、参照ボタン ([...]) をクリックして適切なファイルへ移動します。[OK] をクリックして、[オプション] ダイアログ ボックスを終了します。

参照

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手