Hace mucho tiempo (2 años) escribí una entrada sobre como realizar backup / restore de bases de datos MySQL y PostgreSQL muy escueta y básica (demasaido). Creo que sobre MySQL no hay mucho misterio y sí que, para todos los que nunca lo han usado o estén empezando, hay muchas dudas sobre como trabajar con PostgreSQL.
Veamos como hacer backup y restore de bases de datos PostgreSQL con pg_dump y psql, para ello vamos a crear el usuario ‘mfernandez’ y base de datos ‘mybbdd’
Ante todo, cuando empezamos a trabajar con un programa que no hemos usado antes, lo que debemos hacer es --help, -h, man o info (nunca como root).
Backup de una base de datos
mfernandez@paquito:~$ pg_dump --user=mfernandez mybbdd --file=backup20100110.sql
Se solicitará password, tras ello se creará el archivo backup20100110.sql con todo lo necesario para recrear lo que la base de datos tenía inicialmente.
Backup de todas las bases de datos
Primero veamos cuantas bases de datos tenemos con un psql -l (con el usuario postgres)
mfernandez@paquito:~$ su postgres
postgres@paquito:/home/mfernandez$ psql -l
Obtenemos algo como esto:
Listado de base de datos
Nombre | Dueño | Codificación | Collation | Ctype | Privilegios
————-+————+————–+————-+————-+———————–
alfresco203 | alfresco | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
mybbdd | mfernandez | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
postgres | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 |
template0 | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | es_ES.UTF-8 | es_ES.UTF-8 | =c/postgres
: postgres=CTc/postgres
(5 filas)
postgres@paquito:/home/mfernandez$ pq_dumpall > fullbackup20100110.sql
Backup de una tabla en concreto
Primero veamos cuantas bases de
mfernandez@paquito:~$ pg_dump –table tprueba -U mfernandez mybbdd -f backuptprueba20100110.sql
Restaurar una base de datos
mfernandez@paquito:~$ psql -U mfernandez -f backup20100110.sql
Hacer una copia e insertarla en otra máquina
mfernandez@paquito:~$ pg_dump mybbdd | psql -h acerito mybbdd
Restaurar todas las bases de datos (con el usuario postgres)
mfernandez@paquito:~$ su postgres
postgres@paquito:/home/mfernandez$ psql -f fullbackup20100110.sql
Restaurar una tabla en una base de datos
postgres@paquito:/home/mfernandez$ psql -f backuptprueba20100110.sql mybbdd









Gracias por el enlace DbRunas