Atualizando Banco de Dados PostgreSQL no Slackware

Procedimento para atualização do PostgreSQL em um servidor em produção. Este procedimento é necessário quando a versão do PostgreSQL for diferente na primeira ou na segunda casa, exemplo:

 de 7.2.x para 8.1.x
 de 8.1.x para 8.2.x
 de 8.2.x para 8.3.x

Neste modelo de documento iremos supor que a versão antiga é 8.2.1 e a nova é 8.3.1.

Instalando a nova versão

Baixe a versão desejada no site do PostgreSQL (http://www.postgresql.org)

 postgresql-8.3.1.tar.bz2

Copie o arquivo para o diretório /usr/local/src e descompacte-o

 cp postgresql-8.3.1.tar.bz2 /usr/local/src
 tar jxf postgresql-8.3.1.tar.bz2

Acesso o diretório do posgresql

 cd postgres-8.3.1

Compile e instale o programa

 ./configure --prefix=/usr/local/postgresql-8.3.1
 make
 make install

Exportando os dados

Para evitar que os dados sofram alterações, vamos bloquear acesso à porta do postgresql através do iptables, execute:

 iptables -I INPUT -p tcp --dport 5432 -j DROP

Para facilitar nosso trabalho, vamos alterar as configurações do arquivo pg_hba.conf, para que ele não solicite senha para acesso ao banco de dados a partir do próprio computador.

Entre no diretório /usr/local/postgresql-8.2.1/data e adicione a seguinte linha no arquivo pg_hba.conf

 local   all    postgres    trust

Salve o arquivo e reinicie o processo do PostgreSQL

 /etc/rc.d/rc.postgresql stop | start
 ou
 /etc/rc.d/rc.pgsql stop | start

Exporte agora os dados contidos no banco em produção:

 cd /root
 /usr/local/postgresql-8.3.1/bin/pq_dumpall -U postgres > pgdumpall.sql

Pare o serviço do PostgreSQL

 /etc/rc.d/rc.postgresql stop
 ou
 /etc/rc.d/rc.pgsql stop

Ativando a nova versão e importando os dados

Agora vamos ativar o novo programa e importar os dados, execute os seguintes comandos:

 cd /usr/local/postgresql-8.3.1
 mkdir data (diretório onde os dados serão armazenados)
 chwon postgres:postgres data
 cd ..
 rm pgsql (remove o link simbólico que apontava para a versão antiga do PostgreSQL)
 ln -s postgresql-8.3.1 pgsql (cria um link simbólico apontando para a versão nova do PostgreSQL)
 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data (inicializa o banco de dados padrão)
 cp postgresql-8.2.1/data/pg_hba.conf pgsql/data/
 cp postgresql-8.2.1/data/postgresql.conf pgsql/data/

Inicie o serviço do PostgreSQL

 /etc/rc.d/rc.postgresql start
 ou
 /etc/rc.d/rc.pgsql start

Importe os dados

 cd /root
 /usr/local/pgsql/bin/psql -U postgres -d postgres -f pgdumpall.sql

Remova a linha que incluímos anteriormente no pg_hba.conf

Restarte o serviço do PostgreSQL

 /etc/rc.d/rc.postgresql stop | start
 ou
 /etc/rc.d/rc.pgsql stop | start

Pronto, sua versão mais nova do PostgreSQL está pronta.

Sobre Rodrigo Tomazini 56 Artigos
Analista CNPI-P, Analista de Sistemas e Pós Graduado em Engenharia de Sistemas. Atua atualmente como Analista CNPI e Consultor de TI.