Atualizando PostgreSQL-9.1 para PostgreSQL 9.4 no Debian

image_pdfimage_print

Para aqueles que fizeram upgrade da versão Debian 7.0 Wheezy para a versão Debian 8.0 Jessie, assim como aqueles que precisam efetuar a atualização do PostgreSQL-9.1 para PostgreSQL-9.4 utilizando sistemas de pacote .deb, devem ter percebido que o atualizador mantém a antiga versão, assim como instala a nova, abre um nova porta não padrão para que a nova versão do PostgreSQL recebeba/escute por novas comunicação e da mesma forma, não efetua a migração dos dados da versão anterior para a nova conforme esperado e desejado na maioria dos casos.

O primeiro passo para fazer esta migração/atualização de forma completa, é infelizmente manualmente, pondo a mão na massa. Abaixo as principais etapas para que consiga efetuar com sucesso esta operação.

Inicialmente, como root, acesse o usuário postgres:

su - postgres

Em seguida, efetue o backup / exportação de todas as bases de dados existentes na antiga versão do PostgreSQL, no caso, a 9.1:

pg_dumpall > ~/dump.sql

Salve uma cópia dos arquivos de configuração do PostgreSQL que precisar para efetuar a comparação das configurações que precisam ser alteradas na próxima versão. Estes arquivos em geral ficam em /etc/postgresql/VERSAO/.

Faça um cópia de segurança do arquivo /etc/postgresql/9.1/main/pg_hba.conf e /etc/postgresql/9.1/main/postgresql.conf.

Saia do usuário postgres

exit

Agora que retornou ao usuário root, execute:

cp ~postgres/dump.sql /root/

Agora poderá remover com segurança o PostgreSQL9.1 e instalar a versão 9.4 do banco de dados.

aptitude purge postgresql-9.1
aptitude install postgresql-9.4

Efetue as alterações de configuração que precisar em /etc/postgresql/9.4/main. Caso tenha efetuado qualquer alteração, será necessário reinicializar o banco de dados PostgreSQL.

/etc/init.d/postgresql restart.

Caso a versão 9.1 e 9.4 tenham coexistido, ainda será necessário ir no arquivo /etc/postgresql/9.4/main/postgresql.conf e mudar a porta de 5433 para 5432 se for no Debian 8. Esta alteração da porta padrão foi efetuada pelos administradores do pacote para evitar incompatibilidade no upgrade de versão.

Será necessário reinicializar o banco novamente

/etc/init.d/postgresql restart.

Agora o Postgresql 9.4 deverá estar rodando. Vamos importar as bases de dados.

su - postgres
psql < dump.sql

Sobreescreva o arquivo /etc/postgresql/9.4/main/pg_hba.conf com a cópia de segurança que fez do arquivo /etc/postgresql/9.1/main/pg_hba.conf.

Verifique se os PostgreSQL e os sistema que fazem uso dele estão funcionando corretamente. Caso não, verifique as diferença entre o arquivo /etc/postgresql/9.1/main/postgresql.conf e /etc/postgresql/9.4/main/postgresql.conf que pode ser algum problema de configuração.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!