Мониторинг издателей репликации SQL от подписчика
У меня есть репликация транзакций со многими издателями (50+) и одним центральным подписчиком (сбор данных). Есть ли способ (функция сервера SQL, сторонний инструмент), как в идеале контролировать все публикации из одной точки от центрального подписчика (что-то вроде сервера мониторинга с несколькими публикациями с монитором репликации)
Спасибо
1 ответ
Да, есть. То, как я это делаю, это то, что я регулярно отправляю издателям маркеры трассировки заданий агента SQL и затем отслеживаю их продвижение от дистрибьютора (где хранится их история). Я создал представление в базе данных распространения, которое помогает с этим.
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
Я оставляю это в качестве упражнения для читателя, чтобы превратить это в мониторинг. Я бы дал вам то, что у меня есть, но недавно понял, что в нем есть ошибка. Но стоит иметь в виду:
- У данного издателя, возможно, не было ни одного токена, размещенного в тот период времени, который вы ищете. Это должно быть помечено
- В качестве меры задержки вы хотите, чтобы время publisher_commit для последнего токена было зафиксировано для подписчика.
Удачи!