terça-feira, 23 de novembro de 2010

Backup no PostgreSQL por linha de comando

Rotinas que executam tarefas de backup de base de dados têm uma funcionalidade vital na garantia de manutenção das informações.
O problema é que em muitas ferramentas que são fornecidas junto com os bancos de dados, é necessária a interação do usuário com o “prompt” de comando ou com uma interface de administração.
Abaixo segue o exemplo de um script (Batch Script) para Windows (linha de comando), para que seja executado o backup de uma base de dados PostgreSQL para um arquivo.

:: ----------------------------------------
:: - Autor = Fabio J. Walter
:: - Versao = 1.0
:: ----------------------------------------
@echo off
title DUMP no PostgreSQL - Fabio J. Walter
color e0
rem Exportando as variaveis para que nao seja necessario a interacao do usuario
rem IP do servidor PostgreSQL
set PGHOST=localhost
rem Caminho para o executável do pg_dump
set PGBINDIR="%programfiles%\PostgreSQL\8.2\bin"
rem Porta de acesso ao PostgreSQL
set PGPORT=5432
rem Database que será feito backup
set PGDATABASE=postgres
rem Usuário da base de dados
set PGUSER=postgres
rem Senha da base de dados
set PGPASSWORD=postgres
rem Diretório de destino do arquivo de dump
set DESTDIR=D:\backups
rem Comando para gerar o DUMP da base de dados
%PGBINDIR%\pg_dump.exe -F c -b -v -f %destdir%\%PGDATABASE%.backup
Exit

         A utilização das variáveis de ambiente permite que possamos colocar esta rotina em uma tarefa agendada do sistema operacional. A rotina executará no horário determinado sem a necessidade de interação com o usuário.
      Esta é uma rotina que pode ser utilizada também em outros sistemas operacionais com a devida adaptação dos comandos da lógica, pois as variáveis de que o PostgreSQL necessita serão as mesmas.

Um comentário: