Backup semanal/mensal/anual do PostgreSQL

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

[ Hits: 16.100 ]

 


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

Funções em Shell Script

Compartilhamento simples de arquivos com Samba no CentOS 6.4

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

Fazendo backup do MBR com dd (setor de boot)

Backup incremental com cp

Projeto Root - Realizando backup criptografado com Duplicity

Montar partição VMFS 5 ou VMFS 6 no CentOS 8

Copiando arquivos e diretórios ocultos com rsync

  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts