15

¿Cómo generar una backup de PostgreSQL y cómo restaurarla?

Hacer backups de nuestras bases de datos en PostgreSQL puede parecer difícil, pero no lo es. A continuación te voy a explicar con dos sencillos comandos como podemos automatizar nuestras backups de PostgreSQL.

Para hacer un dump completo (data y estructura) de una base de datos en PostgreSQL, podemos utilizar el siguiente comando desde nuestra consola:

pg_dump -U usuario -W -h host basename > basename.sql

Vamos a explicar el comando al completo:

  • -U => Se refiere al Usuario, en este caso puede ser el usuario propietario de la base de datos o el usuario postgres

  • -W => Con este parámetro conseguiremos que nos solicite el password del usuario antes especificado

  • -h => Con este indicamos cuál es el servidor PostgreSQL al que nos conectaremos para obtener nuestro dump, si estamos local podemos colocar localhost sino ponemos la IP del servidor PostgreSQL

  • basename => Este es el ultimo parámetro realmente en esta linea de comando, por esa razon no tiene alguna letra que indique que el siguiente parámetro es el nombre de la base de datos

  • > basename.sql => Esta parte en realidad solo indica que la salida de nuestro comando pg_dump la guarde en un archivo basename.sql

Cuando queramos restaurar la base de datos solo tenemos que ejecutar el siguiente comando:

psql -U username -W -h host basename < basename.sql

Y así de sencillo hacemos una backup y la restauramos de nuestro base de datos PostgreSQL.

Escribe tu comentario
+ 2
Ordenar por:
2
6894Puntos

En que carpeta se guarda mi backup?

3
6894Puntos
2 años

pg_dump -U postgres -W -h 127.0.0.1 basedata > basename.sql

basedata = Nombre de la base de datos creada en postgres
basename.sql = Nombre que va a tener tu backup
para saber donde tienes que ir con el comando cd a la carpeta donde quieres que se almacene tu base de datos y ejecutas el comando.
ejemplo
cd /var/www/html/proyecto
y una vez dentro corres el comando
pg_dump -U postgres -W -h 127.0.0.1 basedata > basename.sql

1
8562Puntos
2 años

psql -U postgres -W -h 127.0.0.1 basedata > basename.sql

También pueden usar psql y todo lo demás es igual

1
17384Puntos

Genial, me sirvio para pasar la data de produccion a desarrollo ambos entornos dockerizados xD

1
5154Puntos

Hola, tengo una duda… Donde se guarda el backup?

3
6894Puntos
2 años

pg_dump -U postgres -W -h 127.0.0.1 basedata > basename.sql

basedata = Nombre de la base de datos creada en postgres
basename.sql = Nombre que va a tener tu backup
para saber donde tienes que ir con el comando cd a la carpeta donde quieres que se almacene tu base de datos y ejecutas el comando.
ejemplo
cd /var/www/html/proyecto
y una vez dentro corres el comando
pg_dump -U postgres -W -h 127.0.0.1 basedata > basename.sql

1
14438Puntos

Hola nachogoomez, muchas gracias por el aporte. Estoy a punto de usarlo, no entendí lo de ‘basename’.
Tengo 2 dudas:

  1. ¿El parametro ‘basename’ lo reemplazo por el nombre de mi base de datos o es una constante?
  2. ¿En el host debo especificar el puerto?

Muchas gracias de antemano

1
3946Puntos
2 años

Asi es, “basename” tiene que ser reemplazado por el nombre de la db que quieres respaldar y en el host no es necesario incluir el puerto. Si quisieras conectarte por otro puerto usa la opcion “-p”

pg_dump -h 198.51.100.0 -p 5432 basename > basename.bak