Всем привет,
Я видел руководство по обновлению PostgreSQL 18 для самовыгруженных инстансов Discourse:
В нем упоминается, что процесс обновления требует значительного дополнительного дискового пространства, поэтому я начал проверять использование диска и размер базы данных перед попыткой миграции.
Мое текущее использование диска:
/dev/sda1 97G 44G 54G 45% /
Размер моей базы данных Discourse составляет около 21 ГБ. Я обнаружил, что большая часть пространства не используется постами, а несколькими таблицами статистики и журналов.
Самые крупные таблицы:
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.
Мои вопросы:
-
Для
user_auth_token_logs, как долго вы обычно храните записи?- 6 месяцев?
- 1 год?
- Дольше для аудита безопасности?
-
Для таблиц, таких как
incoming_links,topic_viewsиpost_timings, вы обычно храните все исторические данные или периодически удаляете более старые записи? -
Есть ли какие-либо рекомендуемые процедуры очистки или обслуживания перед крупным обновлением PostgreSQL?
До сих пор я ничего не удалял. Я только запустил:
vacuumdb --analyze discourse
Моя цель — освободить ненужное дисковое пространство перед обновлением до PostgreSQL 18, сохраняя при этом нормальную функциональность Discourse и полезную информацию для аудита.
Буду благодарен за любые рекомендации или реальный опыт людей, управляющих самовыгруженными сайтами Discourse.
Спасибо!