Acho tedioso ter que fazer backup de bancos de dados toda semana. E também acho que os backups semanais devem ser transformados em backups diários. Se eu tivesse que fazer isso, não quero fazer manualmente. Qual é a melhor maneira de automatizar o backup dos bancos de dados PostgreSQL diariamente?
backup
postgresql
database-administration
Randell
fonte
fonte
Respostas:
o mesmo que para qualquer outra tarefa repetitiva que possa ser automatizada - você escreve um script para fazer o backup e, em seguida, configura um trabalho cron para executá-lo.
um script como o seguinte, por exemplo:
(Nota: ele deve ser executado como usuário do postgres ou qualquer outro usuário com os mesmos privilégios)
EDIT:
pg_dumpall -D
switch (linha 27) está obsoleto, agora substituído por--column-inserts
https://wiki.postgresql.org/wiki/Deprecated_Features
fonte
DBS=$($PSQL -l -t | egrep -v 'template[01]' | awk '{print $1}' | egrep -v '^\|' | egrep -v '^$')
Recarregar com
ou
Use
split
. Osplit
comando permite dividir a saída em partes aceitáveis em tamanho para o sistema de arquivos subjacente. Por exemplo, para criar blocos de 1 megabyte:Recarregar com
Você pode jogar um daqueles
/etc/cron.hourly
Originário de http://www.postgresql.org/docs/8.1/interactive/backup.html#BACKUP-DUMP-ALL
fonte
split -C
, para que uma linha nunca seja dividida. A depuração de uma restauração com falha é mais fácil.Quaisquer comandos que você emitir "manualmente", - escreva-os no script e chame esse script no cron ou em qualquer programa que você use.
É claro que você pode tornar o script mais sofisticado, mas geralmente penso que você chegará lá - comece simples e depois refine.
Script mais simples possível:
Salve-o como /home/randell/bin/backup.sh, adicione ao cron:
fonte
Se você deseja fazer backup de um cluster inteiro com carga mínima do sistema, basta tar o diretório raiz do cluster postgresql. por exemplo:
essa é a maior parte do meu script de backup.
fonte
caso alguém precise fazer backup de seus postgres em uma máquina Windows sem a ajuda do cygwin etc, eu tenho um arquivo em lotes que faz o trabalho muito bem.
isso fará o backup dos bancos de dados em arquivos individuais em seu próprio diretório todos os dias
fonte