Cómo configurar notificaciones de correo electrónico para trabajos de respaldo en SQL Server

Introducción

Para una DBA de SQL Server administrando múltiples bases de datos e cualquier momento, saber configurar programas de copias de seguridad regulares, copias de seguridad de nombres únicos diariamente, crear espejos de respaldo para redundancia, limpiar archivos antiguos de copias de seguridad es importante.

En este artículo, vamos a cubrir tres diferentes maneras de configurar notificaciones de correo electrónico para trabajos de respaldo en SQL Server:

  • Configurar notificaciones de correo electrónico con SQL Server Agent.
  • Configurar notificaciones de correo electrónico con planes de mantenimiento de SQL Server.

Para que el servicio de SQL Server Agent pueda mandar notificaciones por correo electrónico para trabajos de respaldo, así como para planes de Mantenimiento, hay un par de prerrequisitos que tiene que ser realizados primero, lo cual explicaremos.

Esos prerrequisitos son:

  1. Habilitar Database Mail.
  2. Configurar SQL Server Agent para usar Database Mail.
  3. Crear un Operador.
  1. Habilitar Database Mail
    Database Mail puede ser habilitado de dos maneras, vía el asistente de configuración de Base de Datos o usando plantillas, específicamente, el script Simple Database Mail Configuration.

    1. Configurando Database Mail usando el asistente de configuración de Base de Datos
      Primero, necesitamos abrir SSMS y conectarnos a nuestros servidores. Después de eso, expanda el nodo de la instancia para la cual estamos configurando Database Mail. Expanda el nodo Management, haga clic derecho en Database Mail y seleccione Configure Database Mail.

      El asistente de configuración de Base de Datos se abre con la página de bienvenida, donde hacemos clic en Next. Opcionalmente, podemos seleccionar la casilla Skip this page in the future (saltar esta página en el futuro) antes de hacer clic en Next.

      En la página Select Configuration Task, dado que estamos configurando Database Mail, seleccione la primera opción, Set up Database Mail by performing the following tasks, y haga clic en Next.

      Nota: Después de presionar Next, si Database ail no ha sido habilitado previamente, un mensaje saldrá diciendo: The Database Mail feature is not available. Would you like to enable this feature? (La característica Database Mail no está disponible. ¿Desearía habilitar esta característica?). Haga clic en Yes para habilitar esta característica.

      En la página New Profile, ingresamos el nombre del Perfil y, opcionalmente, una Descripción, y después hacemos clic en Add..

      En la página New Database Mail Account, vamos a crear una nueva cuenta de Database Mail conteniendo la información para enviar correo electrónico a un servidor SMTP.

      Debajo de Account name, ingresamos el nombre de la nueva cuenta, debajo de Desciption, opcionalmente, ingresamos la descripción de la cuenta.

      Debajo de E-mail address, ingresamos la dirección de correo electrónico desde la que se enviarán las notificaciones de correo electrónico. Debajo de Display name ingresamos el nombre que será mostrado en las notificaciones de correo electrónico enviadas. Debajo de Reply e-mail, opcionalmente podemos ingresar la dirección de correo electrónico a donde se enviarán las respuestas a mensajes enviados por esta cuenta. Puede ser el correo electrónico del administrador de la base de datos, o puede ser dejado en blanco. Debajo de Server name, ingresamos la dirección SMTP para nuestro servidor de correo electrónico, el cual está comúnmente en la forma smtp..com. Después de eso, ingresamos el número de puerto para el servidor debajo de Port number. En la mayoría de los casos, el número del puerto es 25; de todas maneras, se recomienda consultar con el administrador de correo electrónico para más información. Después, seleccionar la opción This server requires a secure connection (SSL) encriptará la comunicación usando Secure Sockets Layer.

      Debajo de SMTP authentication, somos presentados con tres opciones para la autenticación. El tipo de autenticación varía, en este caso vamos a elegir Basic authentication, lo cual requiere llenar las cajas de texto User name (nombre de usuario), Password (contraseña) y Confirm password (confirmar contraseña) con información usada para ingresar en el servidor de correo electrónico. Después de llenar todos los campos, hacemos clic en OK para finalizar la creación de una nueva cuenta de Database Mail.

      Después de que eso, habremos creado una nueva cuenta que puede ser vista debajo de las cuentas SMTP. En este punto, podemos crear más cuentas que pueden ser ordenadas por prioridad, como una medida de seguridad en caso de que algunas cuentas fallen en enviar la notificación de correo electrónico. Después de eso, hacemos clic en Next para ir a la siguiente página.

      En la página Manage Profile Security tenemos dos pestañas, Public Profiles y Private Profiles. En la pestaña Public Profiles, configuramos la cuenta que estará disponible para cualquier usuario o rol con acceso a la base de datos de correo electrónico (msdb) para enviar notificaciones usando ese perfil. En la pestaña Private Profiles, seleccionamos los usuarios y qué perfiles pueden usar, y después de eso hacemos clic en Next para continuar.

      En la página Configure System Parameters, podemos ajustar algunos de los parámetros para los correos electrónicos. Después de eso, hacemos clic en Next.

      En la página Complete the Wizard, podemos tener una vista general de las operaciones que serán completadas. Si todo está apropiadamente configurado, podemos hacer clic en Finish para completar el asistente, y si no, podemos volver a la parte con problemas y corregirla para después seleccionar Finish si todo está en orden.

      Después de presionar Finish, el asistente realizará todas las acciones y las mostrará en una ventana indicando si las acciones tuvieron éxito o no. Después de eso, hacemos clic en Close para cerrar el asistente.

    2. Configurar Database Mail usando la plantilla Simple Database Mail Configuration
      Abra SSMS, vaya a View y seleccione Template Explorer.

      Depués de que Template Explorer se abre, encuentre y expanda el nodo Database Mail, luego haga doble clic en Simple Database Mail Configuration, lo que abre una ventana de consultas.

      Vaya a Query y seleccione Specify Values for Template Parameters… o presione Ctrl + Shift + M en su teclado para abrir la ventana Replace Template Parameters.

      En la ventana Replace Template Parameters, inserte la información apropiada para los parámetros y presione OK.

      Ejecute el script presionando F5 en su teclado, después de lo cual usted debería obtener el mensaje: “Command(s) completed successfully”.

      Nota: Aunque este script habilita Database Mail y crea una nueva cuenta y perfil, no provee ningún acceso de usuario de base de datos a perfil y, por defecto, sólo los miembros del rol fijo de seguridad sysadmin pueden usar este perfil. Si desea dar aceso a los perfiles, por favor lea este documento

  2. Configure SQL Server Agent para usar Database Mail
    En Object Explorer, expanda una instancia de SQL Server, haga clic derecho en SQL Server Agent y haga clic en Properties.

    En la ventana SQL Server Agent Properties, seleccione Alert Systems desde la pestaña de navegación a la izquierda. A la derecha, seleccione la casilla cerca de Enable mail profile, para Mail system establezca Database Mail, para Mail profile seleccione el perfil que creamos y después haga clic en OK. Luego, reinicie el servicio de SQL Server Agent.

  3. Creando un operador
    Como habilitando Database Mail, crear un operador es un proceso que sólo puede ser logrado por un miembro del rol fijo sysadmin. Para crear un operador, expanda el nodo SQL Server Agent, haga clic derecho en la carpeta Operators y seleccione New Operator

    En la ventana New Operator, debajo de la pestaña General, ingrese el nombre (Name) para el operador y la dirección de correo electrónico del operador debajo de E-mail name debajo de Notifications options. También, asegúrese de que la casilla Enabled está seleccionada. Después, haga clic en OK para confirmar la creación del nuevo operador.

    Una manera alternativa de crear un operador es a través del script T-SQL provisto a continuación:

    USE msdb;
    GO
    
    EXEC dbo.sp_add_operator @name = N'ApexSQL',
    	@enabled = 1,
    	@email_address = N'john.doe@xmail.com';
    GO
    

    Para más información acerca de añadir operadores a través de Transact-SQL y acerca del procedimiento almacenado sp_add_operator, vea aqui

Configurando notificaciones de correo electrónico con SQL Server Agent

Las notificaciones de correo electrónico para trabajos de respaldo usando SQL Server Agent son usualmente configuradas cuando se crea el trabajo de respaldo. Para esto, usted tiene que tener al servicio de SQL Server Agent corriendo. Una manera de revisar eso es abrir los Servicios yendo a Inicio -> Todos los Programas -> Herramientas Administrativas de Windows -> Servicios. Note que esto puede diferir ligeramente de sistema operativo en sistema operativo. Otra forma es buscar los Servicios usando la característica de búsqueda de su sistema operativo. Cuando se abra, desplácese para encontrar SQL Server Agent (nombre_de_servidor), y revise si está corriendo. Si no, haga clic derecho en el servicio y haga clic en Start, o presione Start en la esquina superior izquierda de la ventana.

Una forma alternativa de iniciar SQL Server Agent es a través del Explorador de Objetos de SSMS. Para el servidor sobre el que se deberían configurar las notificaciones de correo electrónico, haga clic derecho en SQL Server Agent y haga clic en Start para iniciar el servicio. En la ventana que aparece, preguntando si estamos seguros de iniciar el agente, haga clic en Yes y el servicio procederá a iniciar.

Después de eso, proceda a crear un nuevo trabajo expandiendo SQL Server Agent, haciendo clic en la carpeta Jobs y en New Job…

Para mantener este artículo conciso, el proceso de crear trabajos de respaldo regulares es explicado a detalle en este artículo. Ahora, sólo trataremos los trabajos de notificación por correo electrónico.

En la ventana New Job, haga clic en la pestaña Notificaciones in el panel de navegación. Ahí, seleccione la casilla cerca de E-mail, desde el primer menú desplegable elija el operador, desde el segundo elija cuñando notificar: When the job succeeds notifica al operador vía notificación de correo electrónico si el trabajo de respaldo se ha completado exitosamente, When the job fails notifica al operador vía notificación de correo electrónico para trabajos de respaldo si el trabajo ha fallado, y When the job completes notifica al operador vía notificación de correo electrónico cuando el trabajo es completado, exitosamente o no. Después de seleccionar eso, presione OK para actualizar el trabajo ya creado, o continúe creando el trabajo seleccionado cualquiera de las pestañas en el panel de navegación.

Configurando las notificaciones de correo electrónico para trabajos de respaldo usando Planes de Mantenimiento

Los Planes de Mantenimiento son otra forma de configurar trabajos de respaldo con variados grados de personalización. En este artículo, vamos a ir a través de la creación de un trabajo de respaldo usando Planes de Mantenimiento. Un procedimiento más detallado acerca de crear trabajos usando Planes de Mantenimiento puede ser encontrado en este artículo

Primero abra SSMS. Expanda el nodo para el servidor que está usando, después expanda la carpeta Managenent, haga clic derecho en Maintenance Plans y seleccione Maintenance Plan Wizard.

En la página de bienvenida, presione Next y se abrirá la página Select Plan Properties, donde ingresamos el nombre del plan, opcionalmente una descripción, debajo de Run as elegimos corre el plan como una cuenta de servicio de SQL Server Agent. Luego, elegimos si cada tarea tendrá un programa separado o si correrán todos al mismo tiempo. En Change… podemos configurar el programa para el plan, después de eso hacemos clic en Next.

En la página Select Maintenance Tasks seleccionamos las tareas que deseamos realizar. En este caso, seleccionaremos Back Up Database (Full) y haremos clic en Next.

En la página Select Maintenance Task Order, dado que tenemos sólo una tarea, no hay un orden de tareas que hacer, así que hacemos clic en Next para proceder a la siguiente página.

En la página Define Back Up Database (Full) Task, debajo de las pestañas General, Destination y Options podemos configurar las tareas en más profundidad. Después de eso, haga clic en Next.

En la página Select Report Options, elegimos si deseamos tener un reporte en un archivo de texto de las acciones del plan de mantenimiento, así como configurar la notificación de correo electrónico para el trabajo de respaldo que estamos creando. En el menú desplegable To:, seleccionamos qué perfil usar para los reportes de correo electrónico. Dado que tenemos sólo un perfil creado, elegimos ese para los reportes. Después, haga clic en Next.

En la página Complete the Wizard, revisamos el plan, si algo no está como se espera, podemos volver para cambiarlo. En caso de que todo esté bien, presione Finish para crear el plan.

Después de presionar Finish, el plan será creado en vamos a ser presentados con una vista general de las tareas completadas. Haga clic en Close para finalizar el Asistente de Plan de Mantenimiento.

julio 25, 2017