2011-04-01 1 views
0

У нас есть несколько локальных подписей, которые поставщик использует для ежедневного ввода данных. Мы хотим получить дополнительную информацию о том, когда это произойдет, и, особенно, когда он завершит использование T-SQL.Как узнать, когда используется/выполняется локальная подписка с Push?

Я попытался это:

exec sp_replmonitorsubscriptionpendingcmds 'SQL03', 'RSSPA_Common', 'RSSPA_Common_ORA_Tran', 
    'FBHBGISSQL01', 'RSSPA_Fish', 0 

но получаю сообщение:

Msg 21482, Level 16, State 1, Procedure sp_replmonitorsubscriptionpendingcmds, Line 32 
sp_replmonitorsubscriptionpendingcmds can only be executed in the "distribution" database. 

Как я могу сказать, когда это Subscription используется?

ответ

0

Поскольку мониторинг осуществляется у дистрибьютора (к которому у вас нет доступа), вы можете попробовать обход. Первое делает предположение, что у вас есть право DDL на реплицированную базу данных.

Добавьте триггер в одну из реплицированных таблиц, например, последнюю, чтобы завершить обновление, которое, вероятно, является самым большим. Это повлечет за собой накладные расходы, поэтому пропустите триггер. Создайте триггер, чтобы обновить временную метку в простой таблице и использовать задание агента SQL для наблюдения за этой таблицей, и когда отметка времени устарела, как 1 час, затем отпустите другой процесс или отправьте уведомление.

create table Repl_Monitor (
    LastUpdate datetime not null 
    ); 
GO 
insert into Repl_Monitor(LastUpdate) 
select GETDATE(); --seed record 
GO 

create trigger trg_Repl_Monitor 
on dbo.[<replicated table to be montiored>] 
for update, insert, delete 
as 
update Repl_Monitor 
set LastUpdate = GETDATE() 
GO 

Если ежедневно Толчок состоят из большого количества вставленных/удаления записей другой работы вокруг будет следить за «строки» в sysindexes каждую минуту, а затем уведомлять один раз в «ряды» счетчик останавливается колеблющейся после Период времени.

select top 1 rows from sysindexes 
where id = OBJECT_ID('tableName') 
and rows > 0 

Это может привести к незначительным накладным расходам, но не так точно, как триггер.

Cheers!

+0

спасибо. Я собираюсь отложить это, так как мы скорректировали наши автоматические процессы, чтобы запустить их чуть позже, но нам может понадобиться сделать это снова. –

Смежные вопросы