1


1

誰もがSQL Server(2008)からの最後の同期日のクエリを知っていますか。

これはレプリケーションモニタに表示される情報と同じですが、クエリからその日付を取得できるようにしたいです。

3 回答


3


購読者による最終日を取得するために、このようなビューを作成しました

subscriber_nameによるmsmerge_agents.id = msmerge_sessions.agent_idグループのmsMerge_sessions内部結合msMerge_agentsからlast_syncとしてsubscriber_name、max(start_time)を選択します。

私はビューを 'LastSync’と呼びました - それから私はこのようにそのビューを結合してレプリケーションモニターが示すものと同様の表現を取得します。

SELECT dbo.LastSync.id、dbo.LastSync.subscriber_name、dbo.LastSync.creation_date、dbo.LastSync.last_sync、distribution.dbo.MSmerge_sessions.estimated_upload_changes distribution.dbo.MSmerge_sessions.estimated_download_changes AS Estimation_sms_ distribution_segement_rows_segement_srow_security_session.zip_stry_source_security_domain .dbo.MSmerge_sessions.upload_updates distribution.dbo.MSmerge_sessions.upload_deletes distribution.dbo.MSmerge_sessions.download_inserts
                   + distribution.dbo.MSmerge_sessions.download_updates + distribution.dbo.MSmerge_sessions.download_deletes AS actual_rows,
distribution.dbo.MSmerge_sessions.duration AS total_seconds、distribution.dbo.MSmerge_sessions.percent_complete、distribution.dbo.MSmerge_sessions.delivery_rate、CASE(runstatus)いつ1から10の '開始'から2 ''成功 'から3' '進行中' 4「アイドル」の場合5「再試行」の場合6「失敗」の場合distribution.dbo.MSmerge_sessionsからのステータス終了内部dbo.LastSync on dbo.LastSync.id = distribution.dbo.MSmerge_sessions.agent_idおよびdistribution.dbo。 MSmerge_sessions.start_time = dbo.LastSync.last_sync


2


システムテーブルmsMerge_sessionsを使うと、マージセッションに関する多くの情報を見ることができます。

msMerge_sessionsから*を選択

必要な情報に応じて、データベースで利用可能な他のシステムテーブルを使用してください。


0


回答番号3の場合

多大な努力がありますが、いくつかの修正があります

  • 以下のようにView LastSyncを作成します

Create View LastSync As
select subscriber_name, max(start_time) as last_sync, ID, creation_date
from msMerge_sessions inner join msMerge_agents
   on msmerge_agents.id = msmerge_sessions.agent_id
group by subscriber_name, ID, creation_date
Go
  • 以下のクエリを実行

_ SELECT dbo.LastSync.id、dbo.LastSync.subscriber_name、dbo.LastSync.creation_date、dbo.LastSync.last_sync、distribution.dbo.MSmerge_sessions.estimated_upload_changes + distribution.dbo.MSmerge_sessions.estimated_download_changes AS + distribution.dbo.MSmerge_sessions.upload_updates + distribution.dbo.MSmerge_sessions.upload_deletes + distribution.dbo.MSmerge_sessions.download_inserts + distribution.dbo.MSmerge_sessions.download_updates + distribution.dbo.MSmerge_sessions.download_deletes AS actual_rows、ration.d.ms.m AS total_seconds、distribution.dbo.MSmerge_sessions.percent_complete、distribution.dbo.MSmerge_sessions.delivery_rate、CASE(runstatus)WHEN 1 THEN 'Start' WHEN 2 THEN 'Succeed' WHEN 3 THEN 'In Progress' WHEN 4 THEN 'Idle' WHEN 5その後、「retry」、次に「fail」で6、次に「fail」でステータスとしてdistribution.dbo.MSmerge_sessionsから内部結合dbo.LastSync ON dbo.LastSync.id = distribution.dbo.MSmerge sessions.agent_id AND distribution.dbo.MSmerge_sessions.start_time = dbo.LastSync.last_sync __

  • がんばろう