Respaldo y recuperación de MySQL con Railway Aiven y GitHub Actions
Description and use
Automated recipe for MySQL backup and recovery using Railway, Aiven, and GitHub Actions, featuring encryption, integrity checks, and data validation.
Problem
Necesidad de conservar información fiable sobre inventarios y precios; al eliminar o modificar registros, se requiere una copia previa para recuperación.
Outcome
Implementado flujo diario de respaldo cifrado y restauración con verificación de integridad; permite recuperar estado de inventario tras eliminación o error.
Workflow
- 1. Configurar variables de entorno y Docker Compose para servicios locales.
- 2. Ejecutar backup.sh: verifica configuración, crea espacio temporal, exporta con mysqldump --single-transaction, comprime y cifra con AES-256-GCM.
- 3. Generar checksum SHA-256 y guardar con archivo .sql.gz.enc.
- 4. Subir artefacto a GitHub Actions como respaldo diario.
- 5. Para restaurar, ejecutar restore.sh: verifica destino vacío, checksum, descifra, descomprime y importa SQL a base de destino distinta.
- 6. Validar datos restaurados comparando con tabla original.
Evidence
El proceso de Actions accede a la base configurada y conserva la copia como artefacto cifrado.
backup.sh comprueba la configuración y crea un espacio temporal privado.
El archivo .sql.gz.enc contiene datos comprimidos y cifrados; requiere el procedimiento de descifrado antes de leer el SQL.
El script restore.sh recupera la información en otra base para proteger el inventario activo.
- Record date: 2026-10-04T06:41:01.601Z