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
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
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
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
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 $550Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.