안녕하세요 여러분,
자체 호스팅 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)이 합리적이라고 보는지 확실하지 않습니다.
질문드립니다:
-
user_auth_token_logs의 경우 보통 기록을 얼마나 오래 유지하시나요?- 6개월?
- 1년?
- 보안 감사(Security Auditing)를 위해 더 오래?
-
incoming_links,topic_views,post_timings와 같은 테이블의 경우, 모든 역사적 데이터를 유지하시나요, 아니면 주기적으로 오래된 기록을 삭제하시나요? -
PostgreSQL 주요 버전 업그레이드 전에 권장되는 정리 또는 유지보수 절차가 있나요?
아직까지 아무것도 삭제하지 않았습니다. 다음 명령만 실행했습니다:
vacuumdb --analyze discourse
PostgreSQL 18로 업그레이드하기 전에 불필요한 디스크 공간을 확보하되, Discourse의 정상적인 기능과 유용한 감사 정보는 유지하는 것이 제 목표입니다.
자체 호스팅 Discourse 사이트를 운영하시는 분들의 권장 사항이나 실제 경험을 공유해 주시면 감사하겠습니다.
감사합니다!