Abbonamento di replica di SQL Server 2005 Espulsione dell'avviso

Questa settimana una delle mie sottoscrizioni di replica è scaduta perché non ricevevo alcun allarme dicendo che c'era un errore di accesso (ho risolto questi avvisi e l'errore). Quello che vorrei ora è, nel caso in cui questo accada di nuovo, per essere in grado di submit un avviso dicendo che un abbonamento sta per scadere (cioè scadrà in 1 o 2 giorni). Ho un allarme impostato per quando un abbonamento scade, ma questo è dopo il fatto. Ho esaminato le sys.messages per qualsiasi text che ha "Expir" in esso, ma non ho ancora trovato un codice di errore appropriato. Qualcuno poteva indicarmi nella giusta direzione?

Grazie.

2 Solutions collect form web for “Abbonamento di replica di SQL Server 2005 Espulsione dell'avviso”

Qui si va … Questo è il modo in cui vado in giro … avnetworking bisogno di DB Mail abilitato e un profilo creato e modificato quelle sezioni in base al tuo ambiente in basso … anche cambiare la @ MaxOfflineInHours = variabile a qualsiasi importo di ore di inattività che si desidera avvisare su … Creare la stored procedure usp_GetExpiringSubscribersList quindi inserire lo script di posta elettronica sottostante in un process SQL e programmarlo. Lo script email è stato progettato per restituire un set di risultati via e-mail. Fathemes sapere se hai qualche problema con esso e posso lavorare con lei. Fammi sapere se hai bisogno di qualcos'altro. Grazie! -vm

– ================================================ ==============================

Create Procedure dbo.usp_GetExpiringSubscribersList AS declare @maxOffLineInHours int set @maxOffLineInHours = 72 -- <SET YOUR NUMBER OF HOURS TO ALERT ON HERE> SELECT srvname, Max_start_time, DATEDIFF(hh, Max_start_time, getdate()) FROM distribution.dbo.msmerge_sessions JOIN ( SELECT agent_id, Max_start_time = MAX(start_time) FROM distribution.dbo.msmerge_sessions GROUP BY agent_id ) AS k ON k.agent_id = distribution.dbo.msmerge_sessions.agent_id AND distribution.dbo.msmerge_sessions.start_time = max_Start_Time JOIN ( SELECT id AS agent_id, srvname FROM distribution.dbo.msmerge_agents JOIN sys.sysservers ON sys.sysservers.srvid = distribution.dbo.msmerge_agents.Subscriber_ID ) AS l ON l.agent_id = k.agent_id WHERE DATEDIFF(hh, max_start_time, GETDATE()) > @maxOffLineInHours ORDER BY DATEDIFF(hh, max_start_time, GETDATE()) DESC --==================================================================== -- Put this code in a SQL Job to run daily or whatever interval suits you EXEC msdb.dbo.sp_send_dbmail @profile_name = 'AdventureWorks2008R2 Administrator', @recipients = 'VinnyAdmin@Adventure-Works.com', @query = 'exec dbo.usp_GetExpiringSubscribersList' , @subject = 'usp_GetExpiringSubscribersList', @attach_query_result_as_file = 1 ; 

L'ID evento che credo di cercare è 14160. È ansible impostare un avviso di agente SQL Server al fuoco quando si verifica questo evento e è ansible configurare l'agente per submit e-mail o pagina.

Ecco le informazioni sull'evento: http://msdn.microsoft.com/en-us/library/aa337416.aspx

Ecco alcune istruzioni per impostare un avviso: http://technet.microsoft.com/en-us/library/ms175076.aspx

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.