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
Cargando...
[…] http://mfernandez.es/wordpress/2010/01/18/bbdd-ii-postgresql/ AKPC_IDS += “3204,”; […]
Gracias por el enlace DbRunas
Muy buen tutorial Manuel!, la verdad es que hacía tiempo que no pasaba por tu blog (de los mejores que he visto). ¿Cómo os va todo por ahí? Espero que bien. Dá recuerdos a la gente de mi parte (no sé los que seguirán por allí…)
Un saludo!
Vaya David, ya hacía tiempo que no sabía nada de ti… por aquí todo sigue más o menos igual, hay cambios y de los que conoces aquí ya no queda nadie (ni yo mismo).
Un abrazo !