Saltar al contenido
DBAExperts
PostgreSQL Respaldos y recuperación

Cómo hacer un respaldo en PostgreSQL con pg_dump

Un respaldo lógico consistente te permite recuperar una base o migrarla sin depender del estado físico del disco. pg_dump saca una base; pg_dumpall saca roles y tablespaces globales.

  1. 1

    Respalda una base en formato custom (recomendado)

    El formato custom (-Fc) es comprimido y permite restaurar selectivamente con pg_restore. Es el formato preferido para la mayoría de los casos.

    pg_dump -h localhost -U postgres -Fc -f ventas.dump ventas
  2. 2

    Respalda solo el esquema o solo los datos

    Usa --schema-only para estructura sin datos, o --data-only para datos sin estructura. Útil para versionar el DDL por separado.

    pg_dump -U postgres --schema-only -f esquema.sql ventas
  3. 3

    Respalda los objetos globales con pg_dumpall

    pg_dump NO incluye roles, contraseñas ni tablespaces. Sácalos aparte con pg_dumpall --globals-only para tener un respaldo completo del clúster.

    pg_dumpall -U postgres --globals-only -f globales.sql
  4. 4

    Verifica que el respaldo se pueda leer

    Un respaldo que nunca se prueba no es un respaldo. Lista el contenido del dump custom para confirmar que quedó íntegro.

    pg_restore --list ventas.dump

// el error común

El error más común es respaldar solo con pg_dump y creer que ya está todo: los roles y contraseñas viven fuera de la base y solo los captura pg_dumpall --globals-only. Sin ellos, la restauración fallará por permisos.

// cuándo conviene un experto

Si es una base de producción con datos que no puedes perder, no basta un pg_dump manual: conviene una estrategia con respaldos físicos (pg_basebackup + WAL), retención y pruebas de restauración periódicas. En dba.mx dejamos ese esquema montado y probado, con techo cerrado.

Agenda un Escaneo — desde USD $550

Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.