Conceptos básicos de copia de seguridad
Las copias de seguridad lógicas (pg_dump) exportan objetos SQL o de archivo. Las copias de seguridad físicas (copia de seguridad base + WAL) capturan bloques de disco para una restauración rápida y PITR. La producción necesita ambas estrategias para diferentes escenarios de recuperación.
Receta
Volcado lógico nocturno para restauración de objetos; copia de seguridad física continua para PITR y recuperación completa del clúster.
# Lógico: esquema + datos para una base de datos
pg_dump -h localhost -U backup -Fc -f /backup/appdb_$(date +%F).dump appdb
# Físico: pgBackRest completo (ejemplo)
pgbackrest --stanza=prod backup --type=fullCuándo utilizar esto: El primer día de cualquier clúster de producción de PostgreSQL 18.4, antes de la primera migración de esquema.
Ejemplo práctico
Definir una postura de copia de seguridad 3-2-1 para un clúster gestionado por Patroni:
#!/usr/bin/env bash
# nightly-logical.sh
DUMP_DIR=/backup/logical
mkdir -p "$DUMP_DIR"
pg_dump -h pg-primary.internal -U backup_role -Fc \
-f "$DUMP_DIR/appdb_$(date +%Y%m%d).dump" appdb-- Verificar que el rol de copia de seguridad puede leer todas las tablas necesarias
GRANT pg_read_all_data TO backup_role;
-- Globales (roles, tablespaces) separados de pg_dump
-- pg_dumpall -g -h pg-primary.internal -U postgres > /backup/globals.sql# Verificación del archivo WAL físico
psql -h pg-primary.internal -c "SELECT archived_count, failed_count FROM pg_stat_archiver;"Lo que esto demuestra:
- El formato personalizado
pg_dump -Fcadmitepg_restoreen paralelo y la restauración selectiva de objetos. - Los globales (
pg_dumpall -g) están separados de los volcados por base de datos. - El archivado físico (
archive_mode) habilita PITR junto con los volcados lógicos.
Análisis en profundidad
Tipos de copia de seguridad
| Tipo | Herramienta | Mejor para | Limitaciones |
|---|---|---|---|
| Lógico | pg_dump, pg_dumpall | Restauración de objetos, bases de datos más pequeñas, entre versiones | Restauración lenta a escala de TB |
| Base física | pg_basebackup, pgBackRest | Restauración completa del clúster, réplicas | Necesita cadena WAL para PITR |
| Instantánea | Instantánea EBS/LVM | Imagen rápida | Consistente ante fallos; emparejar con archivo WAL |
| Réplica | Standby | Descarga de lectura, no solo copia de seguridad | No detiene la corrupción lógica |
Escenarios de recuperación
| Escenario | Copia de seguridad preferida |
|---|---|
| Eliminar una tabla | pg_restore desde volcado lógico |
| Base de datos corrupta | Restauración física + PITR |
| Pérdida de región | Copias físicas + lógicas fuera del sitio |
| Clonar a staging | Volcado lógico o instantánea de réplica |
Regla 3-2-1
- 3 copias de datos
- 2 tipos de medios diferentes
- 1 copia fuera del sitio (región/cuenta diferente)
Trampas comunes
- Réplica como única copia de seguridad - La replicación reproduce la corrupción y las eliminaciones. Solución: Copias de seguridad lógicas o físicas versionadas independientes de la réplica.
- Copias de seguridad no probadas - Existen archivos pero la restauración falla. Solución: Simulacro de restauración mensual en una instancia temporal.
- Volcado SQL plano para bases de datos grandes - Monohilo, archivos enormes. Solución: Formato de directorio o personalizado con paralelismo.
- Olvido de globales - Roles faltantes después de la restauración. Solución:
pg_dumpall -gprogramado. - Copia de seguridad solo de datos, no de WAL - Recuperación a un punto en el tiempo imposible. Solución: Habilitar
archive_modeo incrementales de pgBackRest.
Alternativas
| Alternativa | Usar cuándo | No usar cuándo |
|---|---|---|
| Solo pgBackRest | Grandes instalaciones autoalojadas, enfoque en PITR | Solo necesita restauración de objetos de bajo costo |
| Copia de seguridad automatizada en la nube | RDS/Aurora | Patroni personalizado en las instalaciones |
| Solo instantánea del sistema de archivos | Imagen rápida con archivo WAL | No se ha configurado archive_mode |
Preguntas frecuentes
¿Impacto de pg_dump en la carga principal?
Consume CPU y E/S; ejecutar fuera de horas pico o desde un standby con pg_dump -h standby (instantánea de los datos del standby).
¿Con qué frecuencia lógica frente a física?
Lógica diaria o semanal; física continua (WAL) con una copia de seguridad base completa semanal típica.
¿La copia de seguridad incluye extensiones?
Los volcados lógicos incluyen objetos de extensión en el esquema. La física incluye todo en el directorio de datos.
¿Patroni y las copias de seguridad?
Ejecutar pgBackRest desde cualquier nodo con acceso al repositorio; coordinar con patronictl pause solo si la herramienta lo requiere.
¿Cifrado?
Cifrar volcados en reposo (SSE de S3, gpg) y en tránsito (TLS). Ver Cifrado en Reposo.
Relacionado
- pg_dump & pg_restore - formatos y paralelismo
- Verificación de copias de seguridad - simulacros de restauración
- Conceptos básicos de PITR - línea de tiempo WAL
- pgBackRest - automatización física
Versiones de la pila: Esta página se escribió para PostgreSQL 18.4 (estable 18, mantenimiento 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x y PostGIS 3.5+.