You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Current »

Должны быть:

logging_collector = on        # Включает сбор логов

log_rotation_age = 1d         # Создавать новый файл каждые сутки

log_rotation_size = 100MB     # ИЛИ создавать новый файл при достижении 100МБ

log_truncate_on_rotation = on # разрешает перезаписывать старые файлы

Настройки изменяются в файле postgresql.conf.

Узнать расположение файла можно запросом вида show config_file; к базе данных.

Большая часть параметров по умолчанию закомментирована (символ # в начале строки). Для указанных параметров помимо указания значения нужно убрать #.

После изменения настроек и сохранения файла нужно:

  1. Выполнить на любой БД запрос     SELECT pg_reload_conf();
  2. Выполнить на любой БД запрос     SHOW log_truncate_on_rotation;      Должен показать on.
  3. Удалить лишние файлы логов из папки data/log.
    Узнать расположение папки data можно запросом вида show data_directory; к базе данных

Как правило, удаляются все файлы старше 7 дней по дате изменения.

В Linux это можно сделать с помощью find.

Пример команды:

find . -name "postgresql-*.log" -mtime +7 -delete 

. - искать в текущей директории (в нашем случае мы должны находиться в папке с логами)

-name "postgresql-*.log" - выбирать только файлы по маске (не обязательно, в папке с логами других файлов не должно быть)

-mtime +7 - выбирать только файлы с датой изменения старше 7 дней от текущего момента

-delete - удалить выбранные файлы (вместо этого предварительно можно использовать -print для вывода списка файлов)

  • No labels