1

私はマージレプリケーションについてはまったく新しいですが、シナリオです。サーバーがあり、プルサブスクリプションを持つ2つのクライアントがある場合、それらのマシンの時間が互いに同期していないか、サーバーと同期していないかは重要ですか?

それらのクライアントの1つでいくつかのデータを変更すると、その変更に対する時間を保存しますか?

MSSQL2012を使用しています。

ここで説明するセットアップを使用します。

http://msdn.microsoft.com/en-us/library/ms151329(v=sql.105).aspx

4

2 に答える 2

0

OK、マージレプリケーションは特定の変更に対する時間を保存しないことがわかりました。

クライアントサブスクリプションがある場合、競合が発生した場合、最初に同期した人が勝ちます。

サーバーサブスクリプションがある場合は、それらのサーバーサブスクリプションの優先度によって誰が勝つかが決まります。

これらのオプションはどちらも時間に依存しません。

于 2012-06-04T21:34:26.440 に答える
0

現在、マージレプリケーションを使用するサードパーティアプリケーションが本番環境にあります。これには、パブリッシャーとしてのSQL 2008 R2データベースサーバーと、アプリケーションを介してデータベースと対話する最大100台のデスクトップクライアントが含まれます。さらに、パブリッシャーのサブスクライバーとしてSQL Server Express2008R2を備えた65台のラップトップが含まれます。ラップトップは、ホームベースの場所に到達するとワイヤレスで同期し、デルタはサブスクライバーにプッシュされます。

さて、あなたの質問に取り掛かりましょう。ミリ秒までのクライアントの時間は、おそらく何の違いもありません。違いを生むのは、パブリッシャーとサブスクライバーが特定の期間以上同期していないかどうかです。SQL Server Mgmt Studioを使用して、データベースを公開しているサーバーを確認します。[サーバーオブジェクトと管理]の間の[レプリケーション]セクションを展開し、[ローカルパブリケーション]の下のパブリッシャーを右クリックして、[プロパティ]を選択します。

[全般]ページで、[サブスクリプションの有効期限]領域を確認します。Microsoftのデフォルトは14日で、必要に応じて上下に移動できます。または、期限切れにならないように指定することもできます。「レプリケーションメタデータがこの時間より長く保持されることはありません」というフレーズに注意してください。

つまり、サブスクライバーの1人が14日を超えて予約を解除した場合でも、問題はありません。サブスクライブを解除してから、そのユニットを再サブスクライブする必要があります。これは、パブリッシャーの最も古いメタデータとサブスクライバーの最新のレコード/メタデータの間にギャップがあるためです。オーバーラップも同期もありません。

于 2012-07-06T19:05:20.390 に答える