O formato interno de armazenamento dos dados muda com as novas versões do PostgreSQL. Portanto, se estiver sendo feita a atualização de uma instalação existente, que não possua um número de versão "7.4.x", é necessário fazer uma cópia de segurança e restaurar os dados conforme mostrado. Estas instruções assumem que a instalação existente se encontra sob o diretório /usr/local/pgsql, e que a área de dados está no diretório /usr/local/pgsql/data. Os caminhos devem ser modificados conforme seja apropriado.
pg_dumpall > arquivo_de_saídaSe for necessário preservar os OIDs (como quando são utilizados como chaves estrangeiras), então deve ser utilizada a opção -o ao se executar o pg_dumpall. O pg_dumpall não salva os objetos grandes. Se for necessário salvá-los, deve ser consultada a Seção 22.1.4 . Para fazer a cópia de segurança, pode ser utilizado o utilitário pg_dumpall da versão sendo usada atualmente. Entretanto, para obter melhores resultados, deve-se tentar utilizar o utilitário pg_dumpall do PostgreSQL 7.4.1, uma vez que esta versão contém correções de erros e melhorias com relação às versões mais antigas. Embora este conselho possa parecer sem sentido, uma vez que a nova versão ainda não foi instalada, é aconselhável segui-lo se estiver sendo planejado instalar a nova versão em paralelo com a versão antiga. Neste caso pode-se completar a instalação normalmente, e transferir os dados depois. Isto também pode diminuir o tempo de máquina parada.
kill -INT `cat /usr/local/pgsql/data/postmaster.pid | sed 1q`As versões anteriores a 7.0 não possuem o arquivo postmaster.pid. Se estiver sendo utilizada uma destas versões você deverá encontrar o ID de processo do servidor por si próprio digitando, por exemplo, ps ax | grep postmaster, e fornecer o PID para o comando kill. Nos sistemas onde o PostgreSQL é ativado quando a máquina é ligada, provavelmente existe um arquivo de inicialização para obter o mesmo resultado. Por exemplo, no sistema operacional Red Hat Linux pode-se verificar que
/etc/rc.d/init.d/postgresql stopfunciona. Outra possibilidade é utilizar pg_ctl stop.
mv /usr/local/pgsql /usr/local/pgsql.antigo
Após ter sido feita a instalação do PostgreSQL 7.4.1, deve ser criado o novo diretório de banco de dados e ativado o novo servidor. Lembre-se que é necessário executar estes comandos através de uma conta especial de usuário do banco de dados (que já existe se estiver sendo feita uma atualização).
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
Por fim, os dados são restaurados pelo comando
/usr/local/pgsql/bin/psql -d template1 -f arquivo_de_saída
usando o novo psql.
Estes tópicos são mostrados na Seção 22.3 , que incentivamos sua leitura em todos os casos.