Datenbankbereinigung vor PostgreSQL 18-Upgrade: empfohlene Aufbewahrungsfrist für Protokoll- und Statistiktabellen?

Hallo zusammen,

ich habe den Upgrade-Leitfaden für PostgreSQL 18 für selbst gehostete Discourse-Instanzen gesehen:

Darin wird erwähnt, dass der Upgrade-Prozess eine erhebliche Menge an zusätzlichem Festplattenspeicher erfordert, also habe ich begonnen, meine Festplattennutzung und Datenbankgröße zu prüfen, bevor ich die Migration starte.

Meine aktuelle Festplattennutzung:

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

Meine Discourse-Datenbank ist etwa 21 GB groß. Ich habe festgestellt, dass der Großteil des Speichers nicht von Beiträgen belegt wird, sondern von mehreren Statistik- und Log-Tabellen.

Die größten Tabellen sind:

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

Zum Vergleich:

posts                    844 MB

Ich habe die Datumsbereiche geprüft:

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

Ich verstehe, dass diese Tabellen unterschiedliche Zwecke erfüllen, bin mir aber nicht sicher, welche Aufbewahrungsfristen für eine produktive Discourse-Instanz als angemessen gelten.

Meine Fragen:

  1. Wie lange behält man die Einträge in user_auth_token_logs normalerweise?

    • 6 Monate?
    • 1 Jahr?
    • Länger für Sicherheitsaudits?
  2. Behält man bei Tabellen wie incoming_links, topic_views und post_timings normalerweise alle historischen Daten bei, oder löscht man regelmäßig ältere Einträge?

  3. Gibt es ein empfohlenes Bereinigungs- oder Wartungsverfahren vor einem großen PostgreSQL-Versionssprung?

Bisher habe ich nichts gelöscht. Ich habe nur Folgendes ausgeführt:

vacuumdb --analyze discourse

Mein Ziel ist es, unnötigen Festplattenspeicher vor dem Upgrade auf PostgreSQL 18 zu freigeben, während die normale Discourse-Funktionalität und nützliche Audit-Informationen erhalten bleiben.

Ich würde mich über Empfehlungen oder praktische Erfahrungen von Menschen freuen, die selbst gehostete Discourse-Sites betreiben.

Danke!

Das ist meiner Meinung nach eine gute Frage. Beachte jedoch, dass das verlinkte Thema aktualisiert wurde und nun angibt, dass du 2x die Datenbankgröße an freiem Speicherplatz benötigst – was du scheinbar bereits hast.

In meinem eigenen Fall stelle ich fest, dass ich viele nicht bereinigte Docker-Images, eine große Swap-Datei, all meine Backups und in einem Fall sogar 4 GB an Journal-Dateien habe.

Als Ergänzung zur Verkleinerung der Datenbank auf der Festplatte kann man also auch andere Dinge auf der Festplatte betrachten, die reduziert werden können.

Du kannst die Aufbewahrungsfrist dafür über die Site-Einstellungen steuern.

Diese sollen dauerhaft aufbewahrt werden und sind in den meisten Installationen die größten Tabellen, also brauchst du dir dafür keine Sorgen zu machen.