Как очистить логи PostgreSQL | PGLens.

Как очистить логи PostgreSQL

Очистка логов в PostgreSQL решается не удалением файлов вручную, а настройкой ротации: сервер сам ограничивает срок хранения и перезаписывает старые файлы. Если сбор логов включен, удалять файлы вручную не стоит: PostgreSQL продолжит писать в уже удаленный файл, и место на диске не освободится до перезапуска сервера.

Как настроить автоматическую очистку

  1. Включите ротацию с перезаписью в postgresql.conf. Циклический шаблон имени плюс усечение при ротации дают ограниченный набор файлов, которые перезаписываются по кругу:
    log_filename = 'postgresql-%a.log'
    
    log_truncate_on_rotation = on
    
    log_rotation_age = 1d
    
    log_rotation_size = 0
  2. Примените изменения без перезапуска:
    SELECT pg_reload_conf();

Важные нюансы

Усечение при log_truncate_on_rotation = on срабатывает только при ротации по времени – при перезапуске сервера и ротации по размеру файл дописывается, а не обнуляется. Шаблон %a (день недели) хранит логи за 7 суток и перезаписывает их на следующей неделе; для другого срока меняется маска имени. Если logging_collector = off и вывод идет в syslog или systemd, очисткой управляет система (logrotate, journald), а не PostgreSQL.

Проверьте PGLens
на своих данных

Подключите PGLens к своим экземплярам и получите структурированную картину нагрузки вместо разрозненных данных из логов и системных представлений.

  • Картина нагрузки по подключенным экземплярам в динамике
  • Ранжированный список самых тяжелых запросов
  • Моделирование индексов с расчетом выигрыша в стоимости запроса

    * - обязательные поля

    Напишите нам
    Удобнее с телефона?
    Сканируйте QR