マージレプリケーションの誤った競合を適切にトラブルシューティングする方法


12

SQL Server 2008 R2マージレプリケーションのセットアップがあります。

最近、いくつかのテーブルで競合が発生し始めました。競合ビューアを確認すると、勝者と敗者の列の値が同じであることがわかります。

これらのデータは1人の加入者だけが入力していると確信しています。

使った sp_showrowreplicainfoは競合する行の詳細を取得していましたが、2つの行がありました。1つはパブリッシャー用、もう1つはサブスクライバー用で、両方の行の「バージョン」が1です。

また、ブランドンの方法を実装しました:Merge Replication変更を監査しますが、通常の挿入のみを示していました!

この種の競合のトラブルシューティングを開始する方法を教えてください。

回答:


1

Brandon Williamsのデータベース管理者に関するあなたの質問に対する確固たる答えが見つかりました。

SQL Serverマージレプリケーションの競合のトラブルシューティング方法

ブランドンは言った:

競合ビューアを調べて、競合の種類と競合する行の値を観察する必要があります。注意すべき点は、Conflict Winner列には、ベーステーブルから取得された勝った行の値が表示されることです。考えてみると、これらの値は揮発性であり、変化する可能性があるため、[競合勝者]列に表示される値は、競合が発生したときの値ではない可能性があります。[競合の敗者]列には、MSmerge_conflict_publication_articleテーブルから取得された失われている行の値が表示され、これらの値は静的です。

競合ビューアに基づいて競合の根本原因を特定できない場合は、監査スキームを実装する必要があります。マージレプリケーションの変更の監査でこれを行う方法の例を提供しました。

誤った競合が発生する可能性はわずかですが、監査によってそれが事実かどうかが明らかになるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.