1

CRM システムで Merge レプリケーションをセットアップしています。営業担当者のデータは、ネットワークに接続したときにマージされ (SQL がノートブックが接続されていることを検出したときだと思います)、ラップトップを取り出し、戻ってきたときに再びマージします (1 つのサーバーを介して合計で約 6 台のラップトップがマージされます)。

このシステムは、最初のセットアップ時には問題ないように見えますが、約 1 か月が経過するとほとんど停止し、ユーザーごとにマージ ジョブの実行に 2 時間近くかかります。サーバーはまったく苦労していません。

パブリケーション全体を削除してすべてのサブスクリプションを再作成すると、約 1 か月が経過するまで問題なく動作しているように見えますが、同じ問題に戻ります。

データベースは、主キー/インデックスなどが不足しているため、設計が不十分ですが、最大のテーブルには約 3000 行しかありません。

なぜこれが起こっているのか、そしてパブリケーションを削除して再作成するときにデータを失うリスクがあるかどうかを知っている人はいますか?

4

2 に答える 2

2

問題は、SQL Server のレプリケーションによって作成されたメタデータでした。3000 行のテーブルを空にして補充する夜通しのジョブがあります。これにより、レプリケーションはこれらすべての行を毎日複製します。

サブスクリプションは期限切れにならないように設定されていました。つまり、古いメタ データが SQL サーバーによって削除されることはありませんでした。

この期間の後にメタデータがクリーンアップされることを期待して、サブスクリプション期間を 7 日間に設定しました。私はいくつかのテストを行い、サブスクリプションの有効期限が切れても変更が失われないことを証明しました. ただし、サーバー上の更新はクライアントよりも優先されました。

于 2009-12-30T10:21:25.417 に答える
1

最近、2008 R2 で「さらに変更をポーリングする前に 60 秒待機しています」というメッセージに遭遇しました。

レプリケーション モニターは、レプリケーションの "進行中の状態" を示していますが、手順 1 (初期化) と手順 2 (スキーマの変更と一括挿入) のみが実行されました。なぜ他のステップが実行されないのか非常に困惑しました。

理由は単純です。マージ レプリケーションでは、tcp/ip (または不明) の名前付きパイプ プロトコルのアクティブ化が必要なようです。

エラーは報告されませんでした。

おそらく、同様の問題 (何らかの接続の問題) が Ryan Stephens のケースで明らかになりました。

于 2011-11-18T12:51:53.357 に答える