Agendando Backup do PostgreSQL no Windows
Jan 26
Dicas, PostgreSQL, Windows 9 Comments
Estava precisando agendar uma rotina de backup para o PostgreSQL no Windows. Depois de algum tempo pesquisando em forums e alguns blogs, vou postar aqui um passo a passo para uma solução bem rápida e simples.
Criando o arquivo:
Crie um arquivo de lote chamado “rotina_backup.bat” e insira os seguintes comandos:
@echo off
for /f “tokens=1,2,3,4 delims=/ ” %%a in (‘DATE /T’) do set hoje=%%b%%c%%d
CD “C:\Arquivos de programas\PostgreSQL\8.1\bin\”
pg_dump -U postgres meu_database > C:\bck_%hoje%.backup
exit
Você deve ter algumas preocupações com o arquivo de lote. A primeira delas é informar onde o arquivo de backup será salvo. Se você deixar o arquivo de lote como está ele criará o backup com seu nome sendo composto pela data atual no diretório “C:” ficando como o seguinte exemplo: “C:\bck_26012008.backup”.
A segunda preocupação é garantir que o arquivo de lote acesse o diretório correto do executável de dump. Se você durante a instalação usou o diretório padrão ele é o seguinte: “C:\Arquivos de programas\PostgreSQL\8.1\bin\”.
Criando a tarefa agendada:
Clique no botão Iniciar – Programas – Acessórios – Ferramentas do sistema – Tarefas agendadas e crie um agendamento para este arquivo de lote.
Caso tenha alguma dúvida de como criar uma tarefa agendada, Clique aqui.
RSS







Jun 06, 2008 @ 19:03:04
Olá,
Eu segui o seu tutorial, porém ele pediu a senha quando eu executo o comando:
pg_dump -U postgres meu_database > C:\bck_%hoje%.backup
você tem alguma idéia de como resolver?
Jun 08, 2008 @ 00:33:18
Olá Marcos,
você pode editar o arquivo pg_hba.conf e edite a linha abaixo:
host all all 127.0.0.1/32 md5
Mude o md5 por trust e a senha não sera solicitada novamente.
Aug 13, 2008 @ 16:45:08
Boa tarde, por acaso voce sabe como eu coloco a hora do backup no arquivo gerado pelo backup?
Faço 2 backups por dia e dessa forma vai sobrepor, não é?
Sep 21, 2009 @ 09:32:43
Ola Marco, muito legal, funcionou, agora vc poderia mostrar o inverso, para quando ocorrer um erro (espero que nao) e eu poder restaurar o backup
Dec 17, 2009 @ 13:54:20
Parceiro o seguinte…
o laço for da data esta finalizando o meu .bat …
oq faço?
Nov 01, 2010 @ 17:53:23
AQUI ESTA UMA COPIA QUE USO PARA FAZER BACKUP EM MEUS CLIENTES.
-OS ARQUIVOS QUE ESTIVEREM NA PASTA BIN DO POSTGRES DEVEM SER COLOCADOS NA PASTA SYSTEM32 PARA QUE O MESMO SEJA EXECUTADO.
-O FORMATO DE DATA NO WINDOWS TEM DE SER DD/MM/AAAA
-FAÇA UM ARQUIVO .BAT, DAI AO USUÁRIO CLICAR O MESMO SERA FEITO.
-CRIE UMA PASTA PARA ONDE O BACKUP SERA FEITO.
——————————————————————————
pg_dump.exe -i -h NOME_DO_SERVIDOR -p 5432 -U postgres -F c -b -v -f “D:\PASTA_DE_BACKUP\NOME_DO_BANCO%date:~0,2%%date:~3,2%%date:~6,4%%time:~0,2%%time:~3,2%.backup” “NOME_DO_BANCO”
cd\
copy D:\PASTA_DE_BACKUP\NOME_DO_BANCO%date:~0,2%%date:~3,2%%date:~6,4%*.backup E:\PASTA_DE_BACKUP\
PAUSE
——————————————————————————
FAZENDO DESTE JEITO, O MESMO SERA CRIADO NA PASTA QUE VC CLIAR, MUDANDO NO ARQUIVO BAT O DESTINO.
O COMANDO TAMBEM COPIA PARA UM PENDRIVE OU ENTAO UM COMPUTADOR DE REDE QUE VC DESEJAR, BASTA FAZER O DIRECIONAMENTO PARA ONDE A PASTA VAI FICAR.
NO MEU CASO EU SEMPRE DEIXO CONECTADO UM PENDRIVE E TAMBEM SEMPRE DIRECIONO PARA UM OUTRO COMPUTADOR DA REDE.
NESTE BACKUP QUE FIZ SEMPRE VAI APARECER O NOME DO BANCO, A DATA, A HORA.
O COMANDO PARA FAZER A COPIA PARA OUTRO LUGAR SEMPRE COPIARÁ TUDO QUE FOR FEITO NO DIA E NUNCA IRÁ SOBREPOR O ARQUIVO DE BACKUP.
Nov 09, 2010 @ 17:28:58
Muito bom, parabéns.
May 24, 2011 @ 20:58:37
LEANDRO MOREIRA
Muito bom o script que postou!
Vlw.
Aug 30, 2011 @ 20:50:11
Leandro Moreira… parabéns…
Seu script é sensacional….
Espero não ter problemas em divulga-lo…