miércoles, 4 de septiembre de 2013

Backup de una tabla en Postgres

Para hacer el backup de una tabla en Postgres basta con irnos al directorio que contiene el archivo pg_dump, normalmente está en /usr/local/pgsql/bin/, y lanzar lo siguiente:

root@db:~# pg_dump -i -h localhost -p 5432 -U usuario -t tabla -F p -b -v -f "/root/llamadas.sql" BaseDeDatos

Esto nos generará un archivo llamadas.sql en el directorio /root/ que contendrá todo el contenido para regenerar esa tabla (create table, add constraint,...etc ).
Para recargarlo solo tenemos que lanzar el siguiente comando:

root@db:~# ./psql -U usuario -d BaseDeDatos -f /root/llamadas.sql

Como nota adicional decir que hay que tener en cuenta que a la hora de recuperar exclusivamente los datos tendremos que editar el fichero y borrar todo lo que no sea el COPY con nuestros datos además de tener en cuenta que si lo que estamos recuperando en una tabla que tiene FOREIGN KEY el tiempo se puede disparar. Por esto siempre es mejor crearnos una tabla secundaria sin FOREIGN KEY para recuperar en ella los datos y posteriormente mediante un insert select volcarlos a la tabla original. Este tipo de sentencias que pueden tardar un tiempo es recomendable lanzarlas en la propia base de datos sin que intervenga la conexión de red a la misma. Para ello nos logamos con el usuario postgres entramos en la base de datos y lanzamos nuestra sentencia:

[root@db log]# su  postgres
[postgres@db01 log]$ psql baseDeDatos

BaseDeDatos=# select................ 


No hay comentarios:

Publicar un comentario