PostgreSQL 18 업그레이드 전 데이터베이스 정리: 로그/통계 테이블 권장 보존 기간은?

안녕하세요 여러분,

자체 호스팅 Discourse를 위한 PostgreSQL 18 업그레이드 가이드를 보았습니다:

가이드에는 업그레이드 과정에서 상당한 추가 디스크 공간이 필요하다고 언급되어 있어, 마이그레이션을 시도하기 전에 디스크 사용량과 데이터베이스 크기를 확인하기 시작했습니다.

현재 디스크 사용량:

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

제 Discourse 데이터베이스 크기는 약 21GB입니다. 대부분의 공간이 게시글(posts)이 아닌 여러 통계 및 로그 테이블에 의해 사용되고 있음을 발견했습니다.

가장 큰 테이블들은 다음과 같습니다:

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 인스턴스에 대해 어떤 보존 기간(retention period)이 합리적이라고 보는지 확실하지 않습니다.

질문드립니다:

  1. user_auth_token_logs의 경우 보통 기록을 얼마나 오래 유지하시나요?

    • 6개월?
    • 1년?
    • 보안 감사(Security Auditing)를 위해 더 오래?
  2. incoming_links, topic_views, post_timings와 같은 테이블의 경우, 모든 역사적 데이터를 유지하시나요, 아니면 주기적으로 오래된 기록을 삭제하시나요?

  3. PostgreSQL 주요 버전 업그레이드 전에 권장되는 정리 또는 유지보수 절차가 있나요?

아직까지 아무것도 삭제하지 않았습니다. 다음 명령만 실행했습니다:

vacuumdb --analyze discourse

PostgreSQL 18로 업그레이드하기 전에 불필요한 디스크 공간을 확보하되, Discourse의 정상적인 기능과 유용한 감사 정보는 유지하는 것이 제 목표입니다.

자체 호스팅 Discourse 사이트를 운영하시는 분들의 권장 사항이나 실제 경험을 공유해 주시면 감사하겠습니다.

감사합니다!

좋은 질문이라고 생각합니다. 다만, 링크된 주제가 업데이트되어 현재는 2배의 데이터베이스 크기의 여유 디스크 공간이 필요하다고 명시되어 있으며, 이는 이미 충족하고 있는 것으로 보입니다.

제 경우를 보면, 정리되지 않은 Docker 이미지, 큰 스왑 파일, 모든 백업 파일, 그리고 일부 경우 4GB의 저널 파일까지 있습니다.

따라서 디스크에 저장된 데이터베이스 크기를 줄이는 것 외에도, 디스크에서 용량을 줄일 수 있는 다른 항목들을 살펴볼 수 있습니다.

사이트 설정을 사용하여 이 항목의 보관 기간을 제어할 수 있습니다.

이들은 영구적으로 유지되도록 설계되어 있으며, 대부분의 인스턴스에서 가장 큰 테이블들이므로 걱정하지 않으셔도 됩니다.