Backup automático do postgres


20

Qual é a melhor maneira de fazer backup automaticamente de um banco de dados Postgres no Linux todos os dias?

Respostas:


11

Você pode usar pg_dumpassim:

$ pg_dump -h db_host -U user_name db_name > dump_file.sql

Pense primeiro em definir o .pgpassarquivo, 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 .pgpassarquivo 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.


faz backup automaticamente todos os dias?
Anuj Patel

@indyaah: não, você precisaria executar isso diariamente a partir do cron (ou similar).
Bill Weiss

12

Execute pg_dumpall a partir do cron.


7
O pg_dumpall é melhor que as outras respostas, pois isso faz backup dos objetos de banco de dados global. (Ex: usuários, etc.) Você precisará deles para recuperar completamente seu banco de dados e, se tiver um grande número deles, pode ser não-trivial recriá-los. No entanto, o pg_dumpall pode ser um exagero para você, se você simplesmente deseja fazer backup de uma única instância de banco de dados em um cluster de vários bancos de dados, porque o pg_dumpall fará backup de todas as instâncias. Então ... como na maioria das perguntas e respostas sobre tecnologia, isso depende.
KevinRae

11
Eu costumo conflitar "banco de dados" e "servidor de banco de dados", sendo este um bom exemplo. Presumi que o pôster desejaria fazer o backup da coisa toda.
23909 Bill Weiss

6

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.


Eu também uso AutoPostgreSQLBackup e está funcionando muito bem para mim ;-)
Matthieu

4

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 .


4

O pg_rman é uma nova ferramenta, que oferece backups incrementais, que funcionam no PostgreSQL 8.4 ou mais recente.


2

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.



1

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 :(


1

Por que se acalmar com um backup diário quando você pode facilmente ter uma recuperação pontual com o barman ?


Vou deixar os moderadores decidirem, mas acredito que ressuscitar perguntas de 5 anos para conectar produtos comerciais é uma má forma aqui.
gparent


Você está certo, eu pesquisei a coisa errada. Minha principal preocupação não era que, de qualquer maneira, tratasse de sugerir uma resposta que não é realmente o que o usuário pediu cinco anos depois. No entanto, depois de ler as outras respostas, elas também parecem sugerir soluções de backup semelhantes, então acho que não é tão ruim assim. Minha bandeira provavelmente será recusada e chamaremos de dia: D
gparent

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.