Plano de manutenção do SQL - Enviar e-mail em caso de falha

2

Eu tenho um plano de manutenção na minha caixa do SQL 2008 - Eu gostaria de enviar um endereço de e-mail quando (ou se) ele falhar. Eu configurei o e-mail do banco de dados e posso enviar um e-mail de teste.

Como posso fazer isso?

    
por alex 15.01.2010 / 22:18

3 respostas

5
  1. Configurar o SQL Server Agent para usar o email do banco de dados
  2. Crie o (s) operador (es) e-mail, pager, horas, etc.
  3. Configure o plano de manutenção para enviar o (s) operador (es) apropriado (s) com base na condição de saída.

link

link

    
por 15.01.2010 / 22:24
1

Adicione uma tarefa Execute SQL ao seu plano de manutenção que faz a chamada para sp_send_dbmail e conecte as rotas de falha de qualquer uma das suas outras tarefas a essa tarefa.

    
por 15.01.2010 / 22:22
0

Adicionamos am "Execute T-SQL Statement Task", que chama um procedimento armazenado, com o nome do plano de manutenção como um parâmetro:

EXEC server.schema.SP_SENDALERT 'plan.subplan';

Nesse procedimento armazenado, consultamos o SYSJOBS e o SYSJOBHISTORY para obter o plano para obter a última 'falha', que enviamos para 'IT Support' como parte de um send_dbmail (que é orientado por um procedimento que loop através de mensagens não enviadas na tabela MESSAGING), algo ao longo das linhas deste:

CREATE PROCEDURE SP_SENDALERT (@plan VARCHAR(MAX))
AS
BEGIN

    DECLARE @error VARCHAR(MAX)

    SELECT TOP 1 @error = SJH.[MESSAGE]FROM MSDB.DBO.SYSJOBS SJ
    LEFT JOIN MSDB.DBO.SYSJOBHISTORY SJH ON SJ.JOB_ID = SJH.JOB_ID
    WHERE SJ.ENABLED = 1
    AND SJH.RUN_STATUS = 0
    AND SJ.[NAME] = @plan
    ORDER BY SJH.RUN_DATE, RUN_TIME DESC

    INSERT INTO database.schema.MESSAGING
    (MESSAGE_TYPE, MESSAGE_SUBJECT, MESSAGE_BODY, RECIPIENTS, RECORD_ADDED)
    VALUES  (1, 'ERROR: ' + @plan, @error, '[email protected]', GETDATE())

END
    
por 16.05.2016 / 16:44