Cómo automatizar pruebas de restauración de bases de datos PostgreSQL y MySQL
Programar un pg_dump o mysqldump diario no es suficiente para estar tranquilo. Para garantizar la continuidad de negocio, debes implementar una estrategia de copias de seguridad y Disaster Recovery en VPS que incluya pruebas de restauración automática.
En esta guía técnica aprenderás cómo montar un flujo de comprobación automatizado que certifique la integridad de tus bases de datos.
1. El flujo de un Restore Test automatizado
Un test de restauración robusto consta de 5 fases ejecutadas de forma aislada:
- Descarga: Obtener el archivo comprimido del backup desde el almacenamiento secundario (S3, Hetzner Storage Box, etc.).
- Despliegue de Sandbox: Iniciar un contenedor Docker limpio con el motor de base de datos exacto de producción.
- Importación: Cargar el volcado SQL o binario en el contenedor de prueba.
- Verificación de esquemas y datos: Ejecutar consultas SQL de comprobación (recuento de filas, integridad referencial).
- Limpieza y Notificación: Destruir el contenedor y emitir un heartbeat o alerta de estado.
2. Ejemplo práctico en Bash + Docker
#!/bin/bash
set -euo pipefail
# 1. Crear red y contenedor temporal de PostgreSQL
docker run --name pg-restore-test -e POSTGRES_PASSWORD=test_secret -d postgres:16-alpine
# Esperar a que la base de datos esté lista
sleep 10
# 2. Importar el último backup
docker exec -i pg-restore-test psql -U postgres < /path/to/latest_backup.sql
# 3. Validar número de registros en la tabla crítica de usuarios
COUNT=$(docker exec -i pg-restore-test psql -U postgres -d mi_app -t -c "SELECT COUNT(*) FROM users;")
if [ "$COUNT" -gt 0 ]; then
echo "✅ Restore test exitoso: $COUNT usuarios verificados."
# 4. Enviar Heartbeat de éxito a SecuryBlack
curl -fsS https://securyblack.com/api/heartbeat/TU_TOKEN_HEARTBEAT > /dev/null
else
echo "❌ Error: La base de datos restaurada está vacía."
exit 1
fi
# 5. Limpieza del contenedor temporal
docker rm -f pg-restore-test
3. Automatización nativa con SecuryBlack
Hacer este proceso manualmente requiere gestionar infraestructura temporal y scripts personalizados. SecuryBlack incluye verificación nativa de backups: nuestro panel cloud descarga periódicamente tus backups, ejecuta simulaciones de restauración aisladas y te muestra en el dashboard el informe detallado con sello de verificación.