Respuestas:
Puedes usar pg_dump
así:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
Primero piense en configurar el .pgpass
archivo que contiene las contraseñas que se utilizarán si la conexión requiere una contraseña. Este archivo debe tener líneas del siguiente formato:
hostname:port:database:username:password
Y cada uno de los primeros cuatro campos puede ser un valor literal, o *, que coincide con cualquier cosa. Por ejemplo: *:*:*:postgres:pg_password
.
Este .pgpass
archivo debe residir en el directorio de inicio ~ / y los permisos en él deben prohibir cualquier acceso al mundo o grupo; lograr esto por el comando
chmod 0600 ~/.pgpass
.
Ejecute pg_dumpall desde cron.
Prueba AutoPostgreSQLBackup . Es un archivo de script único, se puede configurar fácilmente según sus necesidades, realiza una programación diaria, semanal y mensual, registros por correo electrónico, archivo de registro o stdout, etc.
Si se trata de una base de datos razonablemente pequeña, y requisitos tan bajos en la copia de seguridad como una sola vez al día, simplemente ejecute pg_dump desde cron para volcar a un archivo local, y luego use lo que tenga para hacer una copia de seguridad de los archivos en la máquina para archivar el volcado. .
pg_rman es una nueva herramienta, que ofrece copias de seguridad incrementales, que funciona para PostgreSQL 8.4 o posterior.
Prueba astrails-safe . Sabe cómo hacer una copia de seguridad de mysql (mysqldump), postgres (pg_dump) o simplemente archivos simples (tar) con cifrado (gnupg) y cargarlos en S3 / Sftp.
pg_dump es una buena solución, pero si está intentando hacer una copia de seguridad de una gran cantidad de datos, tal vez esto pueda ayudar:
http://www.postgresql.org/docs/8.1/static/backup-online.html
que de hecho es una especie de registro 'en bruto', pero que puede ser útil como método de copia de seguridad incremental ...
Este es un script que realizará una copia de seguridad de cada base de datos individualmente, así como la información de inicio de sesión de usuario y de PostgreSQL GLOBALS, a menudo olvidada pero importante.
La importancia de esto es aprovechar la compresión que pg_dumpall no proporciona y los datos olvidados que pg_dump ignora.
Esto requerirá una configuración pgpass o similar como se describe aquí http://wiki.postgresql.org/wiki/Pgpass
Esta es la configuración para OSX, pero simplemente cambie las rutas del programa y funcionará bien.
Realiza copias de seguridad de / sqlbackups El script devolverá el tamaño / directorio del directorio y tiene puntos de interrupción que devolverán un estado distinto de cero si falla. Lo usé en combinación con pgAgent para hacer copias de seguridad diarias.
Guión redactado, perdón por eso :(
¿Por qué establecerse con una copia de seguridad diaria cuando puede tener fácilmente una recuperación en un punto en el tiempo con barman ?
Como otros han dicho: pg_dumpall.
Además, eche un vistazo al envío de registros. Luego puede obtener más copias de seguridad en un punto en el tiempo que puede reproducir: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
O qué tal la sección de copias de seguridad en el manual: