4.4Guardar y restaurar los volúmenes
Lo esencial en 30 segundos
- Dump lógico + snapshot de volumen, complementarios : el dump (exportación portable) antes de migrar, el snapshot (archivo bruto de todo el estado) antes de cambiar — en práctica : dump regular + snapshot antes de cada operación.
- Se guarda sin parar : un contenedor desechable monta el volumen en solo lectura y escribe el archivo fuera del volumen — la producción continúa durante la copia.
- Reflejo de Idir : una copia no probada no existe — se restaura en un volumen nuevo, se inicia una base encima, se verifican los datos.
Mini-caso hilado — Idir prueba que la copia funciona antes de actualizar
Idir, devops junior en Argel, debe actualizar la base de producción : antes de tocar nada, vuelca la base hacia una carpeta fechada y snapshottea el volumen vía un contenedor desechable en solo lectura, sin parar la producción. Luego restaura en un volumen de prueba, inicia una base encima y verifica las tablas. Cuarto hito del hilo : los datos están guardados Y restaurables, prueba en mano.
Continuación de los casos 4.1-4.3 — Idir protege ahora los datos de los servicios expuestos.
1. Dos escuelas : dump o snapshot
El dump lógico (exportación vía exec) da un archivo portable, ideal antes de migrar. El snapshot del volumen (contenedor utilitario que archiva el volumen) captura todo el estado. En práctica : dump regular + snapshot antes de cambiar — como Idir antes de su actualización.
Ambos se complementan : el dump se relee y migra fácilmente, el snapshot restaura todo idéntico. Solo uno de los dos es media copia.
2. Guardar sin parar
No se para la base : se lanza un contenedor desechable que monta el mismo volumen en lectura y escribe el archivo fuera del volumen (carpeta local o almacenamiento remoto). La producción continúa durante la copia — Idir no interrumpe ningún servicio.
Automatizar y fechar : copia planificada, archivos fechados, duración de conservación definida (diarios + semanales). Archivar dentro del propio volumen es perder la copia con él.
3. Una copia no probada no existe
Ritual : restaurar en un volumen nuevo, iniciar una base encima, verificar los datos. Sin esta prueba, descubrirá el día D que el archivo está vacío o ilegible. Y nunca se restaura « para ver » en el volumen de producción.
Probar es probar : archivo reproducido, tablas verificadas, luego eliminación del volumen de prueba. La copia de Idir solo se valida tras este ritual.
🔎 Ejemplo concreto — 🔎 Ejemplo concreto — Backup Postgres sin parar
El ritual de Idir : dump + snapshot, restauración en volumen nuevo.
docker compose exec bdd pg_dump -U app appdb > backups/appdb-$(date +%F).sql
# snapshot du volume :
docker run --rm -v projet_pgdata:/data:ro -v ./backups:/backup ubuntu:24.04 tar czf /backup/pgdata-$(date +%F).tgz -C /data .
# restauration test :
docker volume create pgdata_test
docker run --rm -v pgdata_test:/data -v ./backups:/backup ubuntu:24.04 tar xzf /backup/pgdata-2026-09-22.tgz -C /data
Lectura : dump SQL + snapshot de volumen, restauración en volumen nuevo.
Lección : nunca se restaura « para ver » en el volumen de producción.
Vocabulario de la sección
- Dump
- Exportación LÓGICA portable (archivo reproducible) de la base, ideal antes de migrar.
Ejemplo sencillo: Idir exporta su base hacia un archivo fechado antes de actualizar.
Lo que no es: un archivo bruto del disco.
Reflejo: antes de migrar : pensar dump portable.
- Snapshot
- Archivo BRUTO de todo el estado del volumen, que restaura idéntico.
Ejemplo sencillo: Idir archiva todo el volumen antes del cambio arriesgado.
Lo que no es: una exportación parcial que se relee a mano.
Reflejo: antes de cambiar : snapshottear todo el estado.
- Montaje ro
- Volumen montado en SOLO LECTURA para la copia : se lee sin riesgo de escribir.
Ejemplo sencillo: El contenedor desechable de Idir lee el volumen sin poder modificarlo.
Lo que no es: un montaje escribible que expone el volumen.
Reflejo: guardar : montar siempre en solo lectura.
- Restauración prueba
- Reproducción del archivo en un VOLUMEN NUEVO + verificación de los datos : la única prueba.
Ejemplo sencillo: Idir inicia una base de prueba y verifica las tablas antes de validar.
Lo que no es: un archivo nunca reproducido.
Reflejo: copia terminada : restaurar y verificar antes de creerse protegido.
En la práctica — En práctica — Su primera copia probada
- Vuelque su base hacia ./backups con la fecha.
- Snapshottee el volumen vía un contenedor --rm en solo lectura.
- Restaure en pgdata_test e inicie una base de prueba.
- Verifique las tablas, luego elimine el volumen de prueba.
Guion listo para decir — anunciar la copia antes de actualizar (30 s)
« Soy Idir : antes de actualizar, he volcado la base y snapshotteado el volumen sin parar la producción, y he reproducido el archivo en un volumen de prueba con las tablas verificadas. Si la actualización falla, restauramos en unos minutos. »
Para decir antes de toda operación arriesgada : muestre la verificación en el volumen de prueba.
Modelo copiar-pegar — dump + snapshot + restauración prueba
docker compose exec bdd pg_dump -U app appdb > backups/appdb-$(date +%F).sql
docker run --rm -v projet_pgdata:/data:ro -v ./backups:/backup ubuntu:24.04 tar czf /backup/pgdata-$(date +%F).tgz -C /data .
docker volume create pgdata_test
docker run --rm -v pgdata_test:/data -v ./backups:/backup ubuntu:24.04 tar xzf /backup/pgdata-2026-09-22.tgz -C /data
Antes de cada actualización
Como Idir : dump + snapshot justo antes, restauración probada — la red de seguridad de la operación.
Rutina diaria
Dump planificado fechado cada día, semanales conservados : la frecuencia sigue el coste de una pérdida.
Archivos fuera de la máquina
Copia en disco externo o almacenamiento remoto cifrado : una copia en el mismo disco no es una copia.
Restauración que falla en prueba
Buena noticia descubierta pronto : corregir el procedimiento ahora en lugar del día del siniestro.
✓ Buenas prácticas
- Automatizar y fechar los archivos.
- Archivar fuera del volumen, en otro soporte.
- Probar cada restauración en volumen nuevo.
✗ Errores frecuentes
- Guardar dentro del volumen (perdido con él).
- Parar la producción para volcar (inútil).
- No restaurar nunca para probar.
Puntos clave
- Dump SQL + snapshot volumen : complementarios.
- Desechable --rm en solo lectura, prod no parada.
- Restauración prueba en volumen nuevo.
- Retención + automatización = rutina.
Reto 48h — aplique mañana
En su base real : vuelque + snapshottee sin parar, restaure en un volumen nuevo y verifique los datos.
- Sé volcar y snapshottear sin parar la producción.
- Sé archivar fuera del volumen con retención.
- Sé restaurar en volumen nuevo y verificar.
Preguntas frecuentes
¿Qué frecuencia?
Como mínimo diaria para una base viva, antes de cada migración o actualización, con retención (diarios + semanales). Ajuste al coste de una pérdida de datos.
¿Dónde guardar los archivos?
En otro lugar que la máquina : disco externo, almacenamiento remoto cifrado. Una copia en el mismo disco no es una copia.
¿Qué copia es válida?