Caution |
Deben realizarse copias de seguridad de las bases de datos regularmente. Dado que Postgres gestiona sus propios ficheros en el sistema, no se recomienda confiar en los sistemas de copia de seguridad del sistema para las copias de respaldo de las bases de datos; no hay garantía de que los ficheros estén en un estado consistente que permita su uso después de la restauración. |
Postgres proporciona dos utilidades para realizar las copias de seguridad de su sistema: pg_dump para copias de seguridad de bases de datos individuales y pg_dumpall para realizar copias de seguridad de toda la instalación de una sola vez.
La copia de seguridad de una sola base de datos puede realizarse usando la siguiente orden:
% pg_dump nombredb > nombredb.pgdumpy puede ser restaurada usando
cat nombredb.pgdump | psql nombredb
Esta técnica puede usarse para mover bases de datos a una nueva localización y para renombrar bases de datos existentes..
Autor: Escrito por Hannu Krosing on 1999-06-19.
Dado que Postgres permite tablas de mayor tamaño que el permitido por el sistema de ficheros, puede resultar problemático el volcado de una tabla a un fichero, ya que el fichero resultante seguramente superará el tamaño máximo permitido.
Como pg_dump escribe en stdout, puede usar las herramientas *nix para sortear estos posibles problemas:
Uso de volcados comprimidos:
% pg_dump nombredb | gzip > nombrefichero.dump.gzla recuperamos con:
% createdb nombredb % gunzip -c nombrefichero.dump.gz | psql nombredbo
% cat nombrefichero.dump.gz | gunzip | psql nombredb
Use split:
% pg_dump nombredb | split -b 1m - nombrefichero.dump.y lo recuperamos con:
% createdb nombredb % cat nombrefichero.dump.* | pgsql nombredb
Por supuesto, el nombre del fichero (nombrefichero) y el contenido de la salida de pg_dump no tiene por qué coincidir con el nombre de la base de datos. Además, la base de datos restaurada puede tener un nombre distinto, por lo que este mecanismo también es efectivo para renombrar bases de datos.