Um guia passo a passo
-
Faça um backup . Certifique-se de que seu banco de dados não está sendo atualizado.
pg_dumpall > outputfile
-
Instale o Postgres 10 . Siga as instruções nesta página:https://www.postgresql.org/download/linux/ubuntu/
Em seguida, executesudo apt-get install postgresql-10
. Uma versão mais recente será instalada lado a lado com a versão anterior.
-
Executepg_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 clustermain
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 atualizar9.6/main
quando10/main
também existe. O procedimento recomendado é remover o cluster 10 compg_dropcluster
e, em seguida, atualize compg_upgradecluster
.
-
Pare o cluster 10 e solte-o:
sudo pg_dropcluster 10 main --stop
-
Pare todos os processos e serviços gravando no banco de dados. Pare o banco de dados:
sudo systemctl stop postgresql
-
Faça upgrade do cluster 9.6:
sudo pg_upgradecluster -m upgrade 9.6 main
-
Inicie o PostgreSQL novamente
sudo systemctl start postgresql
-
Executepg_lsclusters
. Seu cluster 9.6 agora deve estar "inativo" e o cluster 10 deve estar online em5432
:
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
-
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.