Atualização PostgreSQL 12 para versão 17 - RHEL
Preparação
Este procedimento trata-se de atualização do sistema gerenciador de banco de dados (SGBD) PostgreSQL, repositório do MD2 QualityManager, da versão 12 para versão 17 em servidor RHEL/Rocky Linux 8. Atente-se aos requisitos e alertas deste tópico antes de iniciar a atualização.
- Faça backup da máquina virtual (VM) antes de iniciar o procedimento. Pode ser adotado outro procedimento de backup. A sugestão é backup por snapshot pois o RTO (Recovery Time Objective) é menor.
- Se programe para a indisponibilidade. O procedimento pode demorar pelo menos 60 minutos. Variará de acordo com o tamanho do banco de dados e capacidade dos recursos. Considere na estimativa o tempo de retorno em caso de incidente.
- Garanta que o banco de dados não está em uso, seja pela aplicação MD2 QualityManager ou outro.
- Garanta que a máquina virtual tenha acesso ao repositório oficial do PostgreSQL:
https://postgresql.org
Ao final do procedimento a aplicação MD2 QualityManager executará apontando para a nova versão de banco de dados de forma transparente.
Atualização
Para garantir que não há nenhuma conexão no banco de dados, desligue o Tomcat e reinicie o PostgreSQL:
sudo systemctl stop tomcat10.service
sudo systemctl restart postgresql-12.service
Para iniciar o upgrade, o usuário deverá estar logado com o usuário ROOT e executar os comandos abaixo:
sudo dnf install -y \
https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf clean all
sudo dnf makecache
Instalar o PostgreSQL versão 17:
sudo dnf install -y postgresql17 postgresql17-server
Criar um novo cluster:
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
Parar o serviço do PostgreSQL:
sudo systemctl stop postgresql-12
sudo systemctl stop postgresql-17
Acessar com o usuário postgres:
$ su - postgres
Executar a migração:
/usr/pgsql-17/bin/pg_upgrade \
-b /usr/pgsql-12/bin \
-B /usr/pgsql-17/bin \
-d /var/lib/pgsql/12/data \
-D /var/lib/pgsql/17/data
Voltar para o usuário com permissões administrativas executando o comando:
exit
Ajustar parâmetro "listen_addresses" no arquivo postgresql.conf da versão 17 conforme a imagem abaixo:
vim /var/lib/pgsql/17/data/postgresql.conf
Ajustar entradas no arquivo pg_hba.conf da versão 17 conforme a imagem abaixo:
vim /var/lib/pgsql/17/data/pg_hba.conf
Habilitar e iniciar o serviço do PostgreSQL 17:
sudo systemctl enable postgresql-17
sudo systemctl start postgresql-17
Instalar extensão unaccent:
sudo dnf install -y postgresql17-contrib
psql -q -h 127.0.0.1 -d qualitymanager -U md2net -c "create extension unaccent;"
Verificar acesso e versão do banco:
psql -q -h 127.0.0.1 -d qualitymanager -U md2net -c "select version();"
Remover PostgreSQL12 somente após verificação e execução do comando anterior:
sudo su - postgres
./delete_old_cluster.sh



No Comments