Atualização do PostgreSQL 15

Então, em algum lugar você mudou a porta do postgres para 50432 em vez de 5432? (OU talvez o código de migração faça isso e eu nunca tenha notado).

Talvez mudar para o template postgres13 como sugerido no OP? E se isso funcionar, o que eu faria é mudar para um novo servidor e evitar todo o problema de transição para uma nova versão do postgres e apenas restaurar o banco de dados para o novo servidor.

2 curtidas

Eu não mudei, e esse socket existe, então… :person_shrugging:

Eu fiz isso por enquanto, mas presumo que seja uma má ideia a longo prazo

Vou avisar quem gerencia o servidor, acho

2 curtidas

Então talvez ele execute dois postgres para fazer a mudança.

Verdade, mas estou aliviado que você voltou!

1 curtida

Eu não tenho espaço suficiente para realizar esta atualização na minha partição Discourse. No entanto, tenho muito espaço em outra unidade. Existe uma maneira de usar isso para o armazenamento temporário?

1 curtida

Provavelmente está na hora de atualizar o sistema operacional de qualquer forma, e migrar para uma VM nova é muito mais fácil, requer pouco tempo de inatividade e, se algo der errado, você ainda tem um servidor funcionando.

Se você tiver um contêiner de dados separado, pode tentar mover todo o /var/discourse/shared/data para a outra partição e ajustar os volumes no seu YML de acordo.

E se você não tiver um contêiner separado, você pode fazer algo parecido, só é mais complicado.

2 curtidas

Tenho um problema semelhante (o mesmo?) . Você verificou o log mencionado?

No meu caso: Ao atualizar, primeiro tive um problema em que o contêiner do aplicativo (no meu caso, apenas web) não foi reconstruído porque eu havia adicionado o rss-polling como um plugin personalizado e isso parece entrar em conflito com os padrões novos. Após removê-lo, funcionou.

Mas então tive problemas com a extensão de vetor ausente. Isso ocorreu porque eu não reconstruía o contêiner de dados há algum tempo. Consegui fazer isso até a versão 13, mas agora estou preso com a versão 13 em execução. Quando altero meu data.yaml para postgres.template ou postgres.15.template, a migração falha.

Primeiro falhou com “unclean shutdown” e, com as dicas acima, consegui resolver isso. Mas agora a migração falha, pois parece estar faltando a instalação da versão 13? Talvez isso esteja relacionado a alguns resíduos no diretório /shared? (Já tentei limpar o diretório postgres_new).


-----------------------------------------------------------------
  pg_upgrade executado em Sex 17 Out 09:54:37 2025
-----------------------------------------------------------------

comando: \"/usr/lib/postgresql/13/bin/pg_ctl\" -w -l \"/shared/postgres_data_new/pg_upgrade_output.d/20251017T095437.518/log/pg_upgrade_server.log\" -D \"/shared/postgres_data\" -o \"-p 50432 -b  -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directories='/var/lib/postgresql'\" start \u003e\u003e \"/shared/postgres_data_new/pg_upgrade_output.d/20251017T095437.518/log/pg_upgrade_server.log\" 2\u003e\u00261
aguardando o servidor iniciar....2025-10-17 09:54:37.744 UTC [1900] LOG:  iniciando PostgreSQL 13.22 (Debian 13.22-1.pgdg12+1) em x86_64-pc-linux-gnu, compilado por gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit
2025-10-17 09:54:37.749 UTC [1900] LOG:  escutando no soquete Unix \"/var/lib/postgresql/.s.PGSQL.50432\"
2025-10-17 09:54:37.760 UTC [1900] LOG:  não foi possível abrir o arquivo de configuração \"/etc/postgresql/13/main/pg_hba.conf\": Arquivo ou diretório inexistente
2025-10-17 09:54:37.760 UTC [1900] FATAL:  não foi possível carregar pg_hba.conf
2025-10-17 09:54:37.762 UTC [1900] LOG:  sistema de banco de dados está desligado
 parado de esperar
pg_ctl: não foi possível iniciar o servidor
Examine a saída do log.

O que eu provavelmente faria é voltar para o PG13 com o contêiner antigo (se você conseguir descobrir como) e então fazer um backup e mover para um novo servidor (você provavelmente precisa de um novo SO de qualquer maneira).

Parece que o contêiner que você tem está em algum estado quebrado. Ele está tentando reconstruir com o template do PG13? Você pode precisar mover a pasta de backup do postgres para postgres_data e voltar para a versão 13 para que as coisas voltem a funcionar.

Sim, estou rodando atualmente com o Contêiner PG13. Eu o reconstruí várias vezes. Eu até limpei o diretório _new pendente. Apenas toda vez que tento ir para 15 ou para o template oficial sem versão, falha. Vou migrá-lo manualmente em breve se isso não se resolver. Não vejo como o sistema operacional é relevante aqui.

Eu reestruturaria seu volume Mount para que todo o diretório Shared ou shared/postgres esteja no mesmo volume, então as renomeações de diretório (que são frequentemente necessárias) não serão mais um problema.

Pode não estar relacionado ao problema imediato. É comum que, se você estiver executando o Discourse por tempo suficiente para precisar de uma atualização do postgres, provavelmente também precisará de uma atualização do sistema operacional.

Mover para um novo servidor permite que você se mova com virtualmente nenhum tempo de inatividade e nenhum risco de acabar em algum estado quebrado.

Por outro lado, a maioria das atualizações que executei com meu script (que apenas faz o que é descrito aqui) ocorreram sem problemas.

Eu acho que você mudaria para o não versionado, então faria as duas reconstruções.

Eu fiz, também não funciona, ambos falham. Então farei manualmente

8 publicações foram movidas para um novo tópico: Problemas com a atualização do postgres 15