Envío de notificaciones automáticas por correo electrónico de trabajos en SQL Server con SMTP
Cuando tiene tareas de copia de seguridad automatizadas ejecutándose en su servidor de base de datos, a veces olvida que incluso se están ejecutando. Luego se olvida de verificar si se están ejecutando correctamente y no se da cuenta hasta que su base de datos falla y no puede restaurarla porque no tiene una copia de seguridad actual.
Ahí es donde entran las notificaciones por correo electrónico, para que pueda ver el estado del trabajo todas las mañanas cuando toma su café y finge que está trabajando..
SQL Server proporciona un método integrado para enviar correos electrónicos, pero desafortunadamente requiere que tenga Outlook y un perfil instalado en el servidor, lo cual no es necesariamente la forma ideal de enviar un correo electrónico. Afortunadamente, hay otro método, que consiste en instalar un procedimiento almacenado en su servidor que le permitirá enviar correos electrónicos a través de SMTP..
Descargue el procedimiento almacenado sp_SQLNotify aquí.
Querrá editar una línea en el procedimiento almacenado para colocar la dirección IP de su servidor SMTP:
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") .Value', '10 .1.1.10 '
Instale el procedimiento almacenado en la base de datos maestra, para que se pueda usar fácilmente desde donde sea necesario.
Abra la lista \ Jobs / SQL Server Agent y seleccione las propiedades para el trabajo para el que está intentando crear una notificación para:
Haga clic en la pestaña Pasos, y debería ver una pantalla que se ve así:
Haga clic en el botón Nuevo para crear un nuevo paso de trabajo. Vamos a utilizar este paso para enviar la notificación por correo electrónico en caso de éxito.
Nombre del paso: Notificación de correo electrónico correcta
Ingrese este SQL en la ventana de Comando como se ve a continuación. Querrá personalizar las direcciones de correo electrónico y el asunto del mensaje para que coincida con su entorno:
exec master.dbo.sp_SQLNotifique '[email protected]', '[email protected]', 'Success Backup Backup', 'La tarea de respaldo se completó con éxito'
Haga clic en Aceptar y luego haga clic nuevamente en el botón Nuevo para crear otro paso. Este será el paso de notificación de falla.
Nombre del paso: Error de notificación por correo electrónico
SQL:
exec master.dbo.sp_SQLNotificar '[email protected]', '[email protected]', 'Error en la tarea de copia de seguridad,' Error en la tarea de copia de seguridad '
Ahora la idea es hacer que los elementos sigan un flujo de trabajo específico. Primero haga clic en Editar en el paso 1 y configure las propiedades como se muestra aquí:
Lo que estamos diciendo es que en caso de éxito, vaya al paso de éxito, y en caso de fracaso, vaya al paso de fallo. Cosas bastante simples.
Ahora edite el segundo paso, el uno etiquetado como "Éxito de notificación por correo electrónico", y configure las propiedades como se ve aquí:
Estamos diciendo que si el trabajo de notificación es exitoso, simplemente salga del trabajo sin ejecutar el paso 3. Si no especificamos esto, terminaremos recibiendo dos correos electrónicos, uno con éxito y otro con fallos.
Ahora edite el tercer paso, el uno etiquetado como "Error de notificación por correo electrónico", y configure las propiedades como se ve aquí:
Ahora los pasos de tu trabajo deberían verse así:
Ahora debería tener notificaciones por correo electrónico en su bandeja de entrada para el éxito o el fracaso.
Nota: el procedimiento almacenado utilizado en este artículo se encontró aquí, aunque puede que no sea la fuente original.
Descargue el procedimiento almacenado sp_SQLNotify aquí.