PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Atualize o PostgreSQL de 9.6 para 10.0 no Ubuntu 16.10

Um guia passo a passo


  1. Faça um backup . Certifique-se de que seu banco de dados não está sendo atualizado.
     pg_dumpall > outputfile
    

  2. Instale o Postgres 10 . Siga as instruções nesta página:https://www.postgresql.org/download/linux/ubuntu/

    Em seguida, execute sudo apt-get install postgresql-10 . Uma versão mais recente será instalada lado a lado com a versão anterior.

  3. Execute pg_lsclusters :
     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5433 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    

    Já existe um cluster main para 10 (já que isso é criado por padrão na instalação do pacote). Isso é feito para que uma nova instalação funcione imediatamente sem a necessidade de criar um cluster primeiro, mas é claro que entra em conflito quando você tenta atualizar 9.6/main quando 10/main também existe. O procedimento recomendado é remover o cluster 10 com pg_dropcluster e, em seguida, atualize com pg_upgradecluster .

  4. Pare o cluster 10 e solte-o:
     sudo pg_dropcluster 10 main --stop
    

  5. Pare todos os processos e serviços gravando no banco de dados. Pare o banco de dados:
     sudo systemctl stop postgresql 
    

  6. Faça upgrade do cluster 9.6:
     sudo pg_upgradecluster -m upgrade 9.6 main
    

  7. Inicie o PostgreSQL novamente
     sudo systemctl start postgresql
    

  8. Execute pg_lsclusters . Seu cluster 9.6 agora deve estar "inativo" e o cluster 10 deve estar online em 5432 :
     Ver Cluster Port Status Owner    Data directory               Log file
     9.6 main    5433 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
     10  main    5432 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
    

  9. Primeiro, verifique se tudo está funcionando bem. Depois disso, remova o cluster 9.6:
      sudo pg_dropcluster 9.6 main --stop
    

Algumas notas sobre pg_upgradecluster


Este guia funciona bem para atualizar de 9.5 para 10.1. Ao atualizar de uma versão mais antiga, considere omitir -m upgrade no passo 6:
sudo pg_upgradecluster 9.6 main

Se você tem um cluster muito grande, você pode usar pg_upgradecluster com um --link opção, para que a atualização esteja no local. No entanto, isso é perigoso. Você pode perder o cluster em caso de falha. Apenas não use esta opção se não for necessário, pois -m upgrade já é rápido o suficiente.

Baseado em:
  • Documentos:Atualizando um cluster PostgreSQL
  • Gist #1:delameko/upgrade-postgres-9.5-to-9.6.md
  • Gist #2:johanndt/upgrade-postgres-9.3-to-9.5.md
  • O que acontece se eu interromper ou cancelar pg_upgradecluster ?
  • Página de manual do Ubuntu para pg_upgradecluster

Atualizar


Este guia funciona bem para atualizar de 9.6 para 11 e de 10 para 11, bem como de 10 para 13.