Backup semanal/mensal/anual do PostgreSQL

Publicado por Thiago Henrique F. Margonar em 27/01/2014

[ Hits: 12.266 ]

 


Backup semanal/mensal/anual do PostgreSQL



Iae turma, tranquilo?

Ontem, tive que dar uma estudada para realizar backups através de script no PostgreSQL 8.3 automaticamente. Após concluir, achei que seria legal compartilhar com vocês.

Não vou abordar sobre como instalar o PostgreSQL, somente mesmo a geração do backup. Vamos lá.

Imaginando que já estamos com o PostgreSQL 8.3 instalado e funcionando. No meu caso, o PostgreSQL está instalado em:

# cd /opt/PostgreSQL/8.3/

Dentro desta pasta, eu criei uma chamada script:

# mkdir script

Dentro da pasta script, salve os arquivos:

# vim semanal.sh

##############################################################
#!/bin/bash

date +%A > "/postgres/script/data.txt" # Pega o nome do dia e salva no arquivo "data.txt"
data=$(cat /postgres/script/data.txt) # Pega o conteúdo gravado no "data.txt"
/opt/PostgreSQL/8.3/bin/pg_dump -h IP_D0_SERVIDOR -U postgres BANCO_PARA_BACKUP > /postgres/$data.sql& # Começa o backup
exit

# vim mensal.sh

##############################################################
#!/bin/bash

date +%B > "/postgres/script/data.txt" # Pega o nome do mes e salva no arquivo "data.txt"
data=$(cat /postgres/script/data.txt) # Pega o conteudo gravado no "data.txt"
/opt/PostgreSQL/8.3/bin/pg_dump -h IP_D0_SERVIDOR -U postgres BANCO_PARA_BACKUP > /postgres/$data.sql& # Começa o backup
exit

# vim anual.sh

##############################################################
#!/bin/bash

date +%Y > "/postgres/script/data.txt" # Pega o numero do ano e salva no arquivo "data.txt"
data=$(cat /postgres/script/data.txt) # Pega o conteudo gravado no "data.txt"
/opt/PostgreSQL/8.3/bin/pg_dump -h IP_D0_SERVIDOR -U postgres BANCO_PARA_BACKUP > /postgres/$data.sql& # Começa o backup
exit

Bom, feito estes scripts, vamos dar permissão:

# chmod +x *.sh

Agora, vamos agendar os scripts no crontab:

# vim /etc/crontab

#min hora dia mês ano usuário script

00 17 * * * root /postgres/semanal.sh
00 18 30 * * root /postgres/mensal.sh
00 19 30 12 * root /postgres/anual.sh


Pronto, agora você terá um backup semanal, mensal e anual do banco de dados PostgreSQL.

Espero ter ajudado.
Outras dicas deste autor

Compartilhamento simples de arquivos com Samba no CentOS 6.4

Funções em Shell Script

Acessando seu Ubuntu por um terminal Windows de outra rede

CentOS + xrdp - Acessando CentOS pelo Windows (Acesso remoto da área de trabalho com "Mstsc.exe")

Instalando Ruby on Rails no CentOS

Leitura recomendada

Sabayon 4.0-r1 (versão antiga) - Download e criação de ISO a partir do LiveCD/DVD

Backup incremental com rsync

Como evitar problemas ao usar o Bacula

Projeto Root - Realizando backup criptografado com Duplicity

Instalação Bacula 7.4.4 e Webmin - Ubuntu Server 16.04

  

Comentários
[1] Comentário enviado por thiagomargonar em 27/01/2014 - 16:03h

Desculpe gente, no crontab eu não tinha corrigido o caminho das pasta.

o caminho correto para cada script no caso acima é:
/postgres/script/script.sh

[2] Comentário enviado por thiagomargonar em 21/03/2014 - 14:14h

Restaurando um backup.sql
Na pasta bin onde o postgres foi instalado execute:
./psql -U usuario -d banco < banco.sql
ou
./pg_restore -d banco banco.sql
pg_restore -d banco banco.tar



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts