Enviando Notificações de Email de Trabalho Automatizadas no SQL Server com SMTP
Quando você tem tarefas de backup automatizadas em execução no seu servidor de banco de dados, às vezes você esquece que elas estão mesmo em execução. Em seguida, você se esquece de verificar se eles estão sendo executados com êxito e não percebe até que o banco de dados falhe e não seja possível restaurá-lo, pois você não tem um backup atual.
É aí que entram as notificações de e-mail, para que você possa ver o status do trabalho todas as manhãs quando estiver tomando seu café e fingindo que está trabalhando.
O SQL Server fornece um método interno de envio de emails, mas, infelizmente, exige que você tenha o Outlook e um perfil instalados no servidor, o que não é necessariamente a maneira ideal de enviar um email. Felizmente, há outro método, que envolve a instalação de um procedimento armazenado no seu servidor que permitirá que você envie e-mail via SMTP.
Baixe o procedimento armazenado sp_SQLNotify aqui.
Você desejará editar uma linha no procedimento armazenado para colocar o endereço IP do seu servidor SMTP:
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields (“http://schemas.microsoft.com/cdo/configuration/smtpserver”) .Value', '10 .1.1.10 '
Instale o procedimento armazenado no banco de dados mestre, para que ele possa ser usado facilmente de onde for necessário.
Abra a lista do SQL Server Agent \ Jobs e selecione as propriedades para a tarefa para a qual você está tentando criar uma notificação:
Clique na guia Steps e você verá uma tela como esta:
Clique no botão Novo para criar uma nova etapa de trabalho. Vamos usar esta etapa para enviar a notificação por e-mail sobre o sucesso.
Nome da etapa: sucesso da notificação por email
Digite este SQL na janela de comando, como visto abaixo. Você desejará personalizar os endereços de e-mail e o assunto da mensagem para corresponder ao seu ambiente:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Sucesso do trabalho de backup', 'O trabalho de backup foi concluído com êxito'
Clique em OK e, em seguida, clique no botão Novo novamente para criar outra etapa. Esta será a etapa de notificação de falha.
Nome da etapa: falha na notificação por email
SQL:
exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Falha na tarefa de backup,' Falha na tarefa de backup '
Agora a ideia é fazer com que os itens sigam um fluxo de trabalho específico. Primeiro clique em Editar na etapa 1 e defina as propriedades conforme mostrado aqui:
O que estamos dizendo é que no sucesso, vá para o passo do sucesso e, no fracasso, vá para a etapa do fracasso. Coisas muito simples.
Agora edite o segundo passo, o que está escrito como "E-mail de notificação de sucesso", e defina as propriedades como visto aqui:
Estamos dizendo que, se o trabalho de notificação for bem-sucedido, basta sair do trabalho sem executar a etapa 3. Se não especificarmos isso, acabaremos recebendo dois e-mails, um com sucesso e outro com falha.
Agora edite a terceira etapa, a que está marcada como "Falha na notificação por e-mail", e defina as propriedades conforme visto aqui:
Agora seus passos de trabalho devem ser assim:
Agora você deve ter notificações por e-mail em sua caixa de entrada para sucesso ou falha.
Nota: O procedimento armazenado usado neste artigo foi encontrado aqui, embora possa não ser a fonte original.
Baixe o procedimento armazenado sp_SQLNotify aqui.