1

願わくば、SQL レプリケーションの天才がこれを手伝ってくれることを願っています。

SQL 2008 R2 データベースでマージ レプリケーションを使用して、ローカル データベースの同期を維持しているハンドヘルド デバイスがいくつかあります。

これはほとんどの場合うまくいきますが、クライアントは進行中の同期のステータスを示すレポートを要求しています。

今、マージ中に msmerge_history テーブルと msmerge_session テーブルを監視していますが、デバイス自体が完了するずっと前に、それらのテーブルが完了していることに気付きました。

そのため、クライアントは、同期が成功したことを認識しており、5 分後に何らかの理由で同期が失敗しました。

クライアントがいつマージを終了したかを確認するにはどうすればよいですか?

4

3 に答える 3

0

正確な答えではありませんが、Microsoftは、サーバーからサブスクライバーの進行状況をリアルタイムで監視できないことを確認しています。加入者からのみ監視できます。

そのため、サーバーに進行状況を通知するために、サブスクライバーの動作方法を変更する必要があります。

于 2012-05-07T09:38:31.123 に答える
0

@Gavin Mannion - sp_replmonitorhelpmergesession を使用してみてくださいPercentageDone/Durationとともに、監視中に結果セットのStatusErrorMessages、およびErrorID列の値も検査する必要があることに注意してください。

于 2012-04-13T04:05:54.673 に答える
-2

エージェントはサーバーで自動的に開始する必要があるため、これはエージェントの不適切な構成の問題です。最も一般的な状況は、レポートの作成時に警告ステータスが表示される場合です。

したがって、エージェントを再構成する必要があります。

sp_configure 'show advanced options',1 
reconfigure with override 
go 
sp_configure 'xp_cmdshell',1 
reconfigure with override 
go 
sp_configure 'Agent XPs',1 
reconfigure with override 
go

次に、問題がないかどうかを確認します。

net start sqlserveragent

または管理フォルダからエージェントを「開始」します。

于 2012-04-11T10:11:40.930 に答える