Como atualizar o PostgreSQL
Atualize o PostgreSQL em Debian, Ubuntu e derivados
>
Atualize o PostgreSQL em Debian, Ubuntu e derivados
>
Esse guia mostra os passos para atualizar a versão 15 para 16 no Ubuntu (ou Debian e derivados) mas eventualmente, deverá funcionar ao fazer a atualização do 16 para 17 (quando essa sair).
Esse guia foi baseado na versão em Inglês deste outro guia que ensina o upgrade da versão 14 para a 15. Caso a página esteja indisponivel, veja pelo snapshot do guia no Internet Archive.
Instale a nova versão, no exemplo é a versão 16 do PostgreSQL:
sudo apt-get update
sudo apt-get install postgresql-16 postgresql-server-dev-16
Verifique se há alguma diferença entre os arquivos de configuração:
diff /etc/postgresql/15/main/postgresql.conf /etc/postgresql/16/main/postgresql.conf
diff /etc/postgresql/15/main/pg_hba.conf /etc/postgresql/16/main/pg_hba.conf
Pare o serviço PostgreSQL:
sudo systemctl stop postgresql.service
Conecte-se com o usuário postgres:
sudo su - postgres
Verifique os clusters (observe o argumento --check, isso não alterará nenhum dado):
/usr/lib/postgresql/16/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/15/main \
--new-datadir=/var/lib/postgresql/16/main \
--old-bindir=/usr/lib/postgresql/15/bin \
--new-bindir=/usr/lib/postgresql/16/bin \
--old-options '-c config_file=/etc/postgresql/15/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/16/main/postgresql.conf' \
--check
Migre os dados (sem o argumento --check):
/usr/lib/postgresql/16/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/15/main \
--new-datadir=/var/lib/postgresql/16/main \
--old-bindir=/usr/lib/postgresql/15/bin \
--new-bindir=/usr/lib/postgresql/16/bin \
--old-options '-c config_file=/etc/postgresql/15/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/16/main/postgresql.conf'
Desconecte-se do usuário postgres:
exit
Troque as portas pelas versões antiga e nova do PostgreSQL:
sudo vim /etc/postgresql/16/main/postgresql.conf
# ...e mude "port = 5433" para "port = 5432"
sudo vim /etc/postgresql/15/main/postgresql.conf
# ...e mude "port = 5432" para "port = 5433"
Inicie o serviço PostgreSQL:
sudo systemctl start postgresql.service
Faça login como usuário postgres novamente:
sudo su - postgres
Verifique a nova versão do PostgreSQL:
psql -c "SELECT version();"
Execute o comando vacuumdb:
/usr/lib/postgresql/16/bin/vacuumdb --all --analyze-in-stages
Desconecte-se novamente do usuário postgres:
exit
Verifique quais pacotes antigos do PostgreSQL estão instalados:
apt list --installed | grep postgresql
Remova os pacotes antigos do PostgreSQL (da listagem acima):
sudo apt-get remove postgresql-15 postgresql-server-dev-15
Remova a configuração antiga:
sudo rm -rf /etc/postgresql/15/
Faça login como usuário postgres mais uma vez:
sudo su - postgres
Por fim, elimine os dados antigos do cluster:
./delete_old_cluster.sh
Feito!
Este texto é orgânico,
criado de forma natural por um humano.
Pode ter passado por correções gramaticais,
com ou sem o auxílio de IA,
mas a essência original permanece intacta.
Blogues são conversas
Entre na conversa via e-mail