Очистка базы данных перед обновлением до PostgreSQL 18: рекомендуемый срок хранения для таблиц логов и статистики?

Всем привет,

Я видел руководство по обновлению 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.

Мои вопросы:

  1. Для user_auth_token_logs, как долго вы обычно храните записи?

    • 6 месяцев?
    • 1 год?
    • Дольше для аудита безопасности?
  2. Для таблиц, таких как incoming_links, topic_views и post_timings, вы обычно храните все исторические данные или периодически удаляете более старые записи?

  3. Есть ли какие-либо рекомендуемые процедуры очистки или обслуживания перед крупным обновлением PostgreSQL?

До сих пор я ничего не удалял. Я только запустил:

vacuumdb --analyze discourse

Моя цель — освободить ненужное дисковое пространство перед обновлением до PostgreSQL 18, сохраняя при этом нормальную функциональность Discourse и полезную информацию для аудита.

Буду благодарен за любые рекомендации или реальный опыт людей, управляющих самовыгруженными сайтами Discourse.

Спасибо!

Кажется, это хороший вопрос. Но обратите внимание, что в связанной теме были внесены обновления, и теперь там указано, что вам нужно иметь свободное место на диске, равное удвоенному размеру базы данных, — что, судя по всему, у вас уже есть.

В моём случае я вижу, что у меня много неочищенных образов Docker, большой файл подкачки, все мои резервные копии и, в одном случае, ещё 4 ГБ файлов журналов.

Так что, в дополнение к уменьшению размера базы данных на диске, можно посмотреть на другие элементы на диске, которые можно сократить.

Срок хранения этих данных можно настроить в параметрах сайта.

Эти таблицы предназначены для бессрочного хранения, и в большинстве случаев они являются самыми крупными, поэтому беспокоиться по этому поводу не стоит.