从订户监控SQL复制发布者

我有许多发布者(50+)和一个中央用户(数据收集)的事务复制。 有什么方法(SQL服务器,第三方工具的function)如何从一个中央用户理想地监控所有出版物?(像监控服务器与多个出版物与复制监视器)

谢谢

就在这里。 我这样做的方式是,我定期向发布者发送一个SQL Agent作业post跟踪令牌,然后从发行者(他们的历史存储位置)监视他们的进度。 我在分发数据库中创build了一个视图,可以帮助解决这个问题

USE [distribution] GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[tokens]')) DROP VIEW [dbo].[tokens] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create view [dbo].[tokens] as select ps.name as [publisher], p.publisher_db, p.publication, ss.name as [subscriber], da.subscriber_db, t.publisher_commit, t.distributor_commit, h.subscriber_commit, datediff(second, t.publisher_commit, t.distributor_commit) as [pub to dist (s)], datediff(second, t.distributor_commit ,h.subscriber_commit) as [dist to sub (s)], datediff(second, t.publisher_commit, h.subscriber_commit) as [total latency (s)] from mstracer_tokens t inner join MStracer_history h on t.tracer_id = h.parent_tracer_id inner join mspublications p on p.publication_id = t.publication_id inner join sys.servers ps on p.publisher_id = ps.server_id inner join msdistribution_agents da on h.agent_id = da.id inner join sys.servers ss on da.subscriber_id = ss.server_id 

我把它作为一个练习,让读者把它变成监控。 我会给你我所拥有的,但最近才意识到它有一个bug。 但是要记住的是:

  • 给定的发布者可能没有在您要查找的时间范围内发布任何令牌。 这应该被标记
  • 作为等待时间的量度,您希望将最近的令牌的publisher_commit时间提交给订户

祝你好运!