Cómo restaurar un respaldo en PostgreSQL con pg_restore y psql
Restaurar bien depende del formato del respaldo. Los dumps custom o directory se restauran con pg_restore; los dumps en texto plano (.sql) se cargan con psql.
- 1
Crea la base destino vacía
pg_restore no crea la base por sí solo salvo que uses -C. Lo más predecible es crearla antes y restaurar dentro de ella.
createdb -U postgres ventas_restore - 2
Restaura un dump custom con pg_restore
Para formato -Fc usa pg_restore. La opción -j paraleliza la carga y acelera bases grandes; --no-owner evita fallar por roles que no existen en el destino.
pg_restore -U postgres -d ventas_restore -j 4 --no-owner ventas.dump - 3
Restaura un dump en SQL plano con psql
Si el respaldo es un .sql generado con formato plain, pg_restore no aplica: cárgalo con psql.
psql -U postgres -d ventas_restore -f respaldo.sql - 4
Restaura solo una tabla del dump
El formato custom permite restauración selectiva. Usa -t para traer una sola tabla sin cargar todo el respaldo.
pg_restore -U postgres -d ventas_restore -t clientes ventas.dump
// el error común
Restaurar sobre una base con datos usando --clean elimina objetos existentes antes de recrearlos: si apuntas a la base equivocada, borras producción. Verifica siempre el -d destino antes de ejecutar.
// cuándo conviene un experto
Cuando la restauración es parte de una recuperación real ante un incidente, el tiempo importa y los errores se pagan caro. Si necesitas un RTO/RPO definidos y probados, en dba.mx diseñamos y ensayamos el procedimiento de recuperación antes de que lo necesites.
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.