# Respaldo de Bases de Datos MSSQL

En este articulo detallaré los pasos para tener respaldos automáticos de un servidor MS SQL 2017 y almacenarlos en un bucket de [Backblaze](https://www.backblaze.com/).

## 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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672615388650/636d05fc-6402-4021-a120-ba4fe1e4ea16.png align="center")

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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672615717367/73051b04-c2e7-4f24-ab0f-343ac3c6493a.png align="center")

**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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672617001596/99c1e8a9-1dfa-44c8-a367-f1e6fb3197b9.png align="center")

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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672616778355/15450342-53fe-4391-8e2e-2c0f80b404d4.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672617236597/137efcbc-c5f5-4480-96b4-efa877f76f42.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672617279821/74e30528-78b1-45cd-ac05-730dbc3c949c.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672617340460/557c2c0e-037b-4235-873b-99a35b462e0f.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672617814901/8bb6ae77-893c-48c4-920b-6489ec137f08.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672617868176/0f811635-6fcd-46cf-b10c-61d645485dcc.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672618013325/721d241e-fb3e-4d23-b28d-db3fe19fec9a.png align="center")

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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672618856197/cba4c052-8a3a-478f-ad05-ad59a6db2660.png align="center")

### Cliente

Para este caso utilizaré [RClone](https://rclone.org/) 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](https://rclone.org/b2/)).

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672618349782/efab94d3-ef8f-4c76-aaec-464808a2bcc8.png align="center")

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.

```bash
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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672620891309/61b9c708-596e-4e48-8f98-029abe6a1f81.png align="center")

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