Limpeza do banco de dados antes da atualização para PostgreSQL 18: período de retenção recomendado para tabelas de log/estatísticas?

Olá a todos,

Vi o guia de atualização do PostgreSQL 18 para Discourse auto-hospedado:

Ele menciona que o processo de atualização requer uma quantidade significativa de espaço adicional em disco, então comecei a verificar meu uso de disco e o tamanho do banco de dados antes de tentar a migração.

Meu uso atual de disco:

/dev/sda1        97G   44G   54G  45% /

O tamanho do meu banco de dados do Discourse é de cerca de 21 GB. Percebi que a maior parte do espaço não é usada por publicações, mas por várias tabelas de estatísticas e logs.

As maiores tabelas são:

topic_views              5,2 GB
post_timings             1,9 GB
browser_pageview_events  1,8 GB
ai_api_audit_logs        1,6 GB
incoming_links           1,5 GB
user_auth_token_logs     1,2 GB

Para comparação:

posts                    844 MB

Verifiquei os intervalos de dados:

topic_views:
2015-04-03 ~ 2026-08-03

incoming_links:
2015-04-09 ~ 2026-08-03

user_auth_token_logs:
2021-08-15 ~ 2026-08-03

ai_api_audit_logs:
2026-02-04 ~ 2026-08-03

browser_pageview_events:
2026-05-28 ~ 2026-08-03

Entendo que essas tabelas têm finalidades diferentes, mas não tenho certeza sobre quais períodos de retenção são considerados razoáveis para uma instância de produção do Discourse.

Minhas perguntas:

  1. Para user_auth_token_logs, por quanto tempo vocês geralmente mantêm os registros?

    • 6 meses?
    • 1 ano?
    • Mais tempo para auditoria de segurança?
  2. Para tabelas como incoming_links, topic_views e post_timings, vocês normalmente mantêm todos os dados históricos ou removem registros mais antigos periodicamente?

  3. Existe algum procedimento recomendado de limpeza ou manutenção antes de uma atualização de versão principal do PostgreSQL?

Até agora, não excluí nada. Executei apenas:

vacuumdb --analyze discourse

Meu objetivo é liberar espaço em disco desnecessário antes de atualizar para o PostgreSQL 18, mantendo a funcionalidade normal do Discourse e informações úteis de auditoria.

Agradeceria muito por quaisquer recomendações ou experiências reais de pessoas que administram sites Discourse auto-hospedados.

Obrigado!

É uma boa pergunta, acho. Mas observe que o tópico vinculado foi atualizado e agora diz que você precisa de espaço em disco livre equivalente a 2X o tamanho do banco de dados — o que, aparentemente, você já tem.

No meu caso, percebi que tenho muitas imagens do Docker não removidas, um arquivo de swap grande, todos os meus backups e, em um caso, 4 GB de arquivos de log do journal também.

Portanto, como complemento à redução do tamanho do banco de dados em disco, é possível verificar outros itens em disco que podem ser reduzidos.

Você pode controlar o período de retenção disso usando as configurações do site.

Essas devem ser mantidas para sempre e geralmente são as tabelas maiores na maioria das instâncias, então não se preocupe com isso.