Cómo restaurar un backup realizado con pg_dump en PostgreSQL

Antes de restaurar una copia de seguridad creada con pg_dump tendras que crear una base de datos de destino, si aún no la tienes.

# createdb -T template0 base_datos_vacia

También tienes que asegurarte de crear cualquier usuario que posea o tenga permisos concedidos sobre objetos dentro de la base dicha datos.

# createuser usuario_con_privilegios

Finalmente, ya estaríamos preparados para realizar la restauración con el siguiente comando

# psql base_datos_vacia < mibackup
Manejo de errores durante la restauración

Por defecto, PostgreSQL intentará restaurar una base de datos, incluso cuando encuentre errores en el proceso.

Si encuentra múltiples errores, puede resultarte complicado a posteriori determinar como reparar estos fallos para restaurar la base de datos correctamente.

Afortunadamente, con el siguiente comando podemos detenernos ante cualquier error durante la restauración:

# psql --set ON_ERROR_STOP = base_datos_vacia <mibackup


Esto hará que PostgreSQL se detenga inmediatamente cuando encuentre un error. El inconveniente es que la base de datos no se restaurará por completo, quedando igualmente inutilizada.

Otra opción, es utilizar el siguiente comando, para obligar a que se realice la restauración en una sola transacción:

# psql -1 base_datos_vacia <mibackup


La diferencia entre esta opción y la configuración «ON_ERROR_STOP» es que ahora se realizará la restauración correctamente o no importará nada.

En función del contexto en que nos encontremos puede ser más interesante elegir una opción u otra.

Deja un comentario