レプリケートされたテーブルを比較して相違があるかどうかを確認する方法 (レプリケーション プログラミング)

テーブルのアーティクル用にパブリッシュされたデータが、パブリッシャ側とサブスクライバ側とで異なっていると、データが収束しない可能性があります。アーティクルを検証することにより、両者に相違点が存在するかどうかを確認できます。詳細については、「レプリケートされたデータの検証」を参照してください。ただし、検証によって返されるのは、一致しているかどうかという情報だけであり、両者のテーブル間の相違について、それ以上詳しい情報は提供されません。tablediff コマンド プロンプト ユーティリティを使用すると、2 つのテーブル間の詳細な相違点を取得できるだけでなく、サブスクリプションをパブリッシャ側のデータに収束させるための Transact-SQL スクリプトを生成することもできます。

ms147919.note(ja-jp,SQL.90).gifメモ :
tablediff ユーティリティは、SQL Server サーバーでのみサポートされます。

tablediff を使用してレプリケートされたテーブルを比較し相違点を確認するには

  1. レプリケーション トポロジの任意のサーバーで、コマンド プロンプトから tablediff ユーティリティを実行します。次のパラメータを指定します。

    • -sourceserver - データが正しいとわかっている方のサーバー (通常はパブリッシャ) の名前。
    • -sourcedatabase - 正しいデータが格納されているデータベースの名前。
    • -sourcetable - アーティクルの比較元テーブルの名前。
    • (省略可) -sourceschema - 比較元テーブルのスキーマ所有者 (既定のスキーマを使用しない場合)。
    • (省略可) SQL Server 認証を使用してパブリッシャに接続する場合は、-sourceuser および -sourcepassword を指定します。
      ms147919.security(ja-jp,SQL.90).gifセキュリティ メモ :
      可能な場合は、Windows 認証を使用します。SQL Server 認証を使用する必要がある場合は、セキュリティ資格情報の入力を、ユーザーに対して実行時に求めるようにしてください。スクリプト ファイルに資格情報を格納する必要がある場合、不正なアクセスを防ぐために、ファイルをセキュリティ保護する必要があります。
    • -destinationserver - 比較対象のデータが格納されているサーバー (通常はサブスクライバ) の名前。
    • -destinationdatabase - 比較対象データベースの名前。
    • -destinationtable - 比較対象テーブルの名前。
    • (省略可) -destinationschema - 比較対象テーブルのスキーマの所有者 (既定のスキーマを使用しない場合)。
    • (省略可) SQL Server 認証を使用してサブスクライバに接続する場合は、-destinationuser および -destinationpassword を指定します。
      ms147919.security(ja-jp,SQL.90).gifセキュリティ メモ :
      可能な場合は、Windows 認証を使用します。SQL Server 認証を使用する必要がある場合は、セキュリティ資格情報の入力を、ユーザーに対して実行時に求めるようにしてください。スクリプト ファイルに資格情報を格納する必要がある場合、不正なアクセスを防ぐために、ファイルをセキュリティ保護する必要があります。
    • (省略可) 列レベルの比較を行う場合は、-c を使用します。
    • (省略可) 短時間で処理が済むように行数およびスキーマのみの比較を行う場合は、-q を使用します。
    • (省略可) -o に、結果の出力先ファイルの名前とパスを指定します。
    • (省略可) 結果を挿入するサブスクリプション データベース内のテーブルを -et に指定します。テーブルが既に存在する場合は、-dt を指定して、最初にテーブルを削除します。
    • (省略可) サブスクライバ側のデータをパブリッシャ側のデータと一致するように修正するための Transact-SQL ファイルを生成する場合は、-f を使用します。各ファイルの Transact-SQL ステートメントの数を指定するには、-df を使用します。
    • (省略可) 操作を再試行する回数と再試行間隔を指定するには、-rc および -ri を使用します。
    • (省略可) 比較元テーブルと比較先テーブル間の完全なスキーマの比較を実行するには、-strict を使用します。

参照

処理手順

サブスクライバでデータを検証する方法 (レプリケーション Transact-SQL プログラミング)
サブスクライバでデータを検証する方法 (RMO プログラミング)

その他の技術情報

レプリケーションのトラブルシューティング ツール
パブリッシャとサブスクライバのデータが一致しない

ヘルプおよび情報

SQL Server 2005 の参考資料の入手