Limpieza de base de datos antes de actualizar a PostgreSQL 18: ¿período de retención recomendado para tablas de registros y estadísticas?

Hola a todos,

Vi la guía de actualización a PostgreSQL 18 para Discourse autoalojado:

Se menciona que el proceso de actualización requiere una cantidad significativa de espacio adicional en disco, así que comencé a revisar el uso de mi disco y el tamaño de la base de datos antes de intentar la migración.

Mi uso actual de disco:

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

El tamaño de mi base de datos de Discourse es de aproximadamente 21 GB. Descubrí que la mayor parte del espacio no está ocupado por publicaciones, sino por varias tablas de estadísticas y registros.

Las tablas más grandes son:

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 comparar:

posts                    844 MB

Verifiqué los rangos de datos:

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

Entiendo que estas tablas tienen propósitos diferentes, pero no estoy seguro de qué períodos de retención se consideran razonables para una instancia de Discourse en producción.

Mis preguntas:

  1. Para user_auth_token_logs, ¿cuánto tiempo suelen conservar los registros?

    • ¿6 meses?
    • ¿1 año?
    • ¿Más tiempo para auditorías de seguridad?
  2. Para tablas como incoming_links, topic_views y post_timings, ¿suelen conservar todos los datos históricos o eliminan periódicamente los registros más antiguos?

  3. ¿Existe algún procedimiento de limpieza o mantenimiento recomendado antes de una actualización mayor de PostgreSQL?

Hasta ahora, no he eliminado nada. Solo ejecuté:

vacuumdb --analyze discourse

Mi objetivo es liberar espacio en disco innecesario antes de actualizar a PostgreSQL 18, manteniendo la funcionalidad normal de Discourse y la información de auditoría útil.

Agradecería cualquier recomendación o experiencia práctica de personas que gestionan sitios de Discourse autoalojados.

¡Gracias!

Es una buena pregunta, creo. Pero ten en cuenta que el tema enlazado se ha actualizado y ahora indica que necesitas espacio libre en disco equivalente al doble del tamaño de la base de datos, lo cual, al parecer, ya tienes.

En mi caso particular, veo que tengo muchas imágenes de Docker sin limpiar, un archivo de intercambio grande, todas mis copias de seguridad y, en un caso, 4 GB de archivos de registro.

Así que, como complemento a reducir el tamaño de la base de datos en disco, puedes revisar otras cosas en el disco que se puedan reducir.

Puedes controlar el período de retención de esta tabla mediante la configuración del sitio.

Estas tablas están diseñadas para conservarse indefinidamente y suelen ser las más grandes en la mayoría de las instalaciones, así que no te preocupes por eso.