Respostas:
Você pode usar pg_dump
assim:
$ pg_dump -h db_host -U user_name db_name > dump_file.sql
Pense primeiro em definir o .pgpass
arquivo, que contém senhas a serem usadas se a conexão exigir uma senha. Este arquivo deve ter linhas do seguinte formato:
hostname:port:database:username:password
E cada um dos quatro primeiros campos pode ser um valor literal ou *, que corresponde a qualquer coisa. Por exemplo: *:*:*:postgres:pg_password
.
Esse .pgpass
arquivo deve residir no diretório inicial ~ / e as permissões nele devem proibir qualquer acesso ao mundo ou grupo; consiga isso pelo comando
chmod 0600 ~/.pgpass
.
Execute pg_dumpall a partir do cron.
Tente o AutoPostgreSQLBackup . É um arquivo de script único, pode ser facilmente configurado de acordo com suas necessidades, faz agendamento diário, semanal e mensal, logs por email, arquivo de log ou stdout, etc.
Se for um banco de dados razoavelmente pequeno e requisitos tão baixos no backup como apenas uma vez por dia, execute pg_dump do cron para fazer o dump para um arquivo local e use o que for necessário para fazer backup dos arquivos na máquina para arquivar o dump .
O pg_rman é uma nova ferramenta, que oferece backups incrementais, que funcionam no PostgreSQL 8.4 ou mais recente.
Tente astrails-safe . Ele sabe como fazer backup do mysql (mysqldump), postgres (pg_dump) ou apenas arquivos simples (tar) com criptografia (gnupg) e fazer upload para o S3 / Sftp.
O pg_dump é uma boa solução, mas se você estiver tentando fazer backup de muitos dados, talvez isso ajude:
http://www.postgresql.org/docs/8.1/static/backup-online.html
que na verdade é uma espécie de log 'bruto', mas que pode ser útil como método de backup incremental ...
Este é um script que fará backup de cada banco de dados individualmente, bem como das informações frequentemente esquecidas, mas importantes, do PostgreSQL GLOBALS e de login do usuário.
A importância disso é aproveitar a compactação que o pg_dumpall não fornece e os dados esquecidos que o pg_dump ignora.
Isso exigirá uma configuração pgpass ou similar, conforme descrito aqui http://wiki.postgresql.org/wiki/Pgpass
Isso está configurado para OSX, mas simplesmente altere os caminhos do programa e funcionará bem.
Faz backup em / sqlbackups O script retornará o tamanho / diretório do diretório e terá pontos de interrupção que retornarão um status diferente de zero se falhar. Usei-o em combinação com o pgAgent para fazer backups diários.
Script redigido, desculpe por isso :(
Por que se acalmar com um backup diário quando você pode facilmente ter uma recuperação pontual com o barman ?
Como outros já disseram: pg_dumpall.
Além disso, dê uma olhada no envio de logs. Então você pode obter mais backups point-in-time que podem ser reproduzidos: http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
Ou que tal a seção sobre backups no manual: