Instalação e configuração do PostgreSQL no linux

No primeiro post de 2009 estou recuperando do meu antigo blog uma receita de bolo para instalação e configuração do PostgreSQL 8.2 no linux. A versão atual, nesse momento a 8.3, não suporta mais a codificação latin1 mais conhecida como ISO-8859-1.

1º Passo – Download

ftp.postgresql.org/pub/source/v8.2.11/postgresql-8.2.11.tar.gz

2º Passo – Descompacte o pacote

$ tar -zxvf postgresql-8.2.11.tar.gz

3º Passo – Acesse o diretório

$ cd postgresql-8.2.11

4º Passo – Configuração e compilação

$ ./configure –prefix=/usr/local/postgres –bindir=/usr/bin –sysconfdir=/etc/postgres
$ make

5º Passo – Instalação

$ su
$ make install

6º Passo – Criando grupo e usuário

$ groupadd postgres
$ adduser postgres -g postgres

7º Passo – Criando diretório para os dados

$ mkdir /usr/local/postgres/data
$ chown postgres.postgres /usr/local/postgres/data

8º Passo – Inicializando o banco

$ su – postgres
$ initdb -D /usr/local/postgres/data

9º Passo – Rodando o postgres em segundo plano, gravando logs

$ postmaster -D /usr/local/postgres/data >> /usr/local/postgres/data/logfile &

10º Passo – Testando

$ psql template1 postgres

Caso tenha conectado digite \q para sair.

11º Passo – Copiando arquivo de inicialização

Vá ao diretório onde o PostgeSQL foi descompactado e copie o arquivo chamado “linux” que esta na pasta ./contrib/start-scripts para /etc/init.d/ renomeando para postgresql dando permissão para execução.

$ su – root
$ mv ./contrib/start-scripts/linux /etc/init.d/postgresql
$ chmod +x /etc/init.d/postgresql

12º Passo – Configurando o arquivo

  • Abra o arquivo no editor de texto
  • Edite a linha 32 trocando seu conteúdo de prefix=/usr/local/pgsql para prefix=/usr/local/postgres
  • Edite a linha 35 trocando seu conteúdo de PGDATA=”/usr/local/pgsql/data” para PGDATA=”/usr/local/postgres/data”
  • Edite a linha 60 trocando seu conteúdo de DAEMON=”$prefix/bin/postmaster” para DAEMON=”/usr/bin/postmaster”
  • Edite a linha 63 trocando seu conteúdo de PGCTL=”$prefix/bin/pg_ctl” para PGCTL=”/usr/bin/pg_ctl”
  • Salve o arquivo

13º Passo – Testando o arquivo

Ainda como root digite os seguintes comando para verificar se o arquivo esta correto:

$ /etc/init.d/postgresql status
$ /etc/init.d/postgresql stop
$ /etc/init.d/postgresql start
$ /etc/init.d/postgresql restart

14º Passo – Iniciando automaticamente

Edite o aqrquivo /etc/rc.local adicionando a seguinte linha:
/etc/init.d/postgresql start

15º Passo – Testando novamente

Agora basta reinicar a sessão e repetir o 10º Passo.

Obs: Caso tenha problemas na instalação verifique se há um compilador C instalado corretamente.

Agendando Backup do PostgreSQL no Windows

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.