next up previous contents index
Next: Interfases Up: Herramientas Previous: mpsql   Índice General   Índice de Materias


Respaldos

Las herramientas pg_dump y pg_dumpall nos ayudan tanto como para respaldar las tablas, como para copiarlas de un sistema a otro en un formato transportable. En algunos casos al actualizar la versión de PostgreSQL será necesario primero respaldarlas con estas herramientas y para posteriormente volverlas a cargar.

pg_dump se emplea para respaldar una base de datos o una tabla en particular, mientras que pg_dumpall respalda todas las bases de datos en el sistema.

La forma más general de emplear pg_dump para respaldar sólo una tabla, es la siguiente:

pg\_dump -t mitabla mibase > mibase.mitabla.dump

con lo cual en el archivo mibase.mitabla.dump tenemos un archivo con los datos y el esquema de la tabla para poder recuperar toda la información en caso de falla del medio físico13.2 o llevarlo a otro sistema.

Por ejemplo:

mancha@caserola:/Extras/Mancha/Musica$ pg_dump -t genero pruebas
\connect - mancha
CREATE TABLE "genero" (
        "genid" int4 DEFAULT nextval('"genero_genid_seq"') NOT NULL,
        "genero" character varying(32));
REVOKE ALL on "genero" from PUBLIC;
GRANT SELECT on "genero" to "nobody";
COPY "genero" FROM stdin;
1       Blues
2       Jazz
3       Reggae
4       Rock
5       Country
6       Folk
7       Newage
8       Soundtrack
9       Misc
10      Data
11      Sin Clasificar
12      Bazofia
\.
CREATE UNIQUE INDEX "genero_genid_key" on "genero" 
    using btree ( "genid" "int4_ops" );
mancha@caserola:/Extras/Mancha/Musica$

Produce la salida anterior, donde vemos que lo primero que hace es fijar (o tratar de fijar) al usuario creador de la tabla, luego crea la tabla --que en caso de existir no da problemas--, incluyendo el serie asociado a uno de los campos, fija los permisos existentes, y a continuación copia los datos y finalmente crea el índice que la tabla tenía asociado.

Por supuesto, es mejor comprimir los archivos para ocupar el mínimo espacio posible. Por ejemplo, podemos hacerlo así:

pg_dump -t mitabla mibase | gzip -9c > mibase.mitabla.dump.gz
pg_dump -t mitabla mibase | bzip2 -c > mibase.mitabla.dump.bz

Ambos programas tienen una serie grande de opciones y se recomienda revisarlas con detenimiento. Ambas pueden ser consultadas con el sistema man.

Para recuperar la información en la base de datos --o a otra base, como mencionábamos-- podemos emplear la siguiente instrucción en la línea de comandos:

gunzip -c mibase.mitabla.dump.gz | psql -e labase
bunzip2 -c mibase.mitabla.dump.bz | psql -e labase

y como vimos en el ejemplo, psql tiene toda la información requerida para restaurar la tabla o base completa.


next up previous contents index
Next: Interfases Up: Herramientas Previous: mpsql   Índice General   Índice de Materias
Ismael Olea 2001-04-21