PostgreSQL 18 升级前的数据库清理:日志/统计表的推荐保留期?

大家好,

我看到了针对自托管 Discourse 的 PostgreSQL 18 升级指南:

指南中提到,升级过程需要大量的额外磁盘空间,因此我在尝试迁移之前开始检查我的磁盘使用情况和数据库大小。

我当前的磁盘使用情况:

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

我的 Discourse 数据库大小约为 21 GB。我发现大部分空间并非由帖子占用,而是由几个统计和日志表占用。

最大的表包括:

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

作为对比:

posts                    844 MB

我检查了数据范围:

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

我了解这些表有不同的用途,但我不确定对于生产环境的 Discourse 实例来说,合理的保留期是多少。

我的问题:

  1. 对于 user_auth_token_logs,您通常保留记录多久?

    • 6 个月?
    • 1 年?
    • 为了安全审计保留更久?
  2. 对于 incoming_linkstopic_viewspost_timings 这样的表,您通常保留所有历史数据,还是定期删除较旧的记录?

  3. 在进行 PostgreSQL 主要版本升级之前,是否有任何推荐的清理或维护流程?

到目前为止,我还没有删除任何内容。我只运行了:

vacuumdb --analyze discourse

我的目标是在升级到 PostgreSQL 18 之前释放不必要的磁盘空间,同时保持 Discourse 的正常功能和有用的审计信息。

我很感激任何来自运行自托管 Discourse 站点的用户的建议或实际经验。

谢谢!

1 个赞