Respaldo de Bases de Datos MSSQL

Plan de mantenimiento y backup en la nube

En este articulo detallaré los pasos para tener respaldos automáticos de un servidor MS SQL 2017 y almacenarlos en un bucket de Backblaze.

Plan de Mantenimiento

Con esta funcionalidad disponible desde el Management Studio se puede configurar el respaldo de bases de datos, así como otras tareas útiles.

La forma más sencilla de configurar el plan es seguir el Wizard e ir completando la información necesaria en cada paso.

Propiedades: Nombre, descripción y la periodicidad de ejecución. En este caso se ejecutará todos los días a las 2am.

Tareas de Mantenimiento: Se selecciona todas las tareas que se necesitan en el plan. En este caso será la revisión la limpieza de respaldos antiguos y el respaldo total.

Una vez seleccionadas las tareas se puede definir el orden de ejecución, quedando de la siguiente forma:

  1. Limpieza de backups

  2. Respaldo total

Luego se presentan las pantallas específicas para cada tarea.

Tarea de Limpieza: Se configura el directorio en el que se buscarán los respaldos y la antigüedad a considerar para eliminarlos.

Respaldo Total: Se seleccionan las bases de datos requeridas, el destino del respaldo y el tipo de compresión.

Si no existen errores con alguna de las tareas, el plan se crea exitosamente.

Lo podemos probar ejecutándolo manualmente desde el menú contextual del plan.

Con esto tenemos lista la primera parte, pero los respaldos siguen estando en el mismo equipo, lo que no es la mejor opción en caso de fallas.

Respaldo en la nube

Proveedor

Como servicio de almacenamiento utilizaré Backblaze, ya que el manejo es sencillo y los costos asociados muy bajos. Luego de iniciar sesión en la cuenta, se crea un bucket con las características deseadas, en esta caso son:

  • Privado

  • Sin encriptación

  • Y con retención de archivos de 5 días

En la sección App Keys se crea una nueva con acceso al bucket y con acceso de lectura/escritura.

Cliente

Para este caso utilizaré RClone ya que tiene soporte para Backblaze (y más de 40 destinos). Luego de descarga el zip, simplemente se copia el contenido a una carpeta del sistema y se ejecuta la utilidad desde linea de comandos (página oficial).

Los pasos son:

  1. New remote (n)

  2. Backblaze (6)

  3. Account: aquí se debe introducir el keyID generado desde la web de Backblaze

  4. Key: aquí se debe introducir el aplicationKey generado desde la web de Backblaze

  5. hard_delete: false

  6. Advance config: false

Para probar la configuración, se puede ejecutar la sincronización desde línea de comandos.

rclone sync C:\BasesBackup\B2 b2-sql:Bases-EncDia

Los parámetros del comando son:

  • El directorio a sincronizar (C:\BasesBackup\B2)

  • El nombre del remoto configurado en rclone (b2-sql)

  • El nombre del bucket (bases-encdia)

Tarea programada

Con la ayuda de una tarea de windows, se configura la ejecución de la sincronización todos los días a las 3am.

Para eso se crea un .bat y el contenido será el comando de rclone

Y con esto queda lista la generación de respaldos diarios y su almacenamiento en la nube.