14.4. Se estiver atualizando

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.

  1. Certifique-se que o banco de dados não seja atualizado durante ou após a realização da cópia de segurança. Isto não afeta a integridade da cópia de segurança, mas os dados modificados, obviamente, não serão incluídos. Se for necessário, devem ser editadas as permissões no arquivo /usr/local/pgsql/data/pg_hba.conf, ou equivalente, para não permitir acesso pelos demais usuários.
  2. Para realizar a cópia de segurança da instalação de banco de dados deve-se executar:
    pg_dumpall > arquivo_de_saída
    
    Se 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.
  3. Se a nova versão estiver sendo instalada no mesmo local da versão antiga, então o servidor antigo deve ser parado antes de instalar os novos arquivos:
    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 stop
    
    funciona. Outra possibilidade é utilizar pg_ctl stop.
  4. Se estiver sendo feita a instalação no mesmo local da versão antiga, então também é uma boa idéia mudar de lugar a instalação antiga, para o caso de haver problema e ser necessário voltar atrás. Deve ser usado um comando como este:
    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.

SourceForge.net Logo