Параметр log_min_duration_statement игнорируется


15

Я бегу Postgresql 9.1на Ubuntu. Точная версия Postgresql, 9.1+129ubuntu1как показывает мой менеджер пакетов.

У меня есть 2 базы данных, которые активно используются, и они используются с удаленного сервера.

Я хочу регистрировать запросы, которые имеют длительное время выполнения. Поэтому я установил следующие параметры в /etc/postgresql/9.1/main/postgresql.confфайле

log_min_duration_statement = 10000
log_statement = 'mod'

поэтому Postgresql будет регистрировать запросы, которые занимают более 10 секунд.

Но когда я reloadнастраиваю postgres, Postgresql начинает регистрировать каждый запрос, который соответствует log_statementзначению. Чтобы я установил длительность 100 секунд, чтобы быть уверенным

log_min_duration_statement = 100000

Но Postgresql продолжает регистрировать каждый запрос, который соответствует log_statementзначению, независимо от log_min_duration_statementзначения.

Установка log_statementдля , noneказалось , чтобы остановить регистрацию.

Есть что-то, что я пропустил в конфигурации?


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

Итак, я должен отключить (закомментировать) log_statementтак log_min_duration_statementдолжно работать?
FallenAngel

Если вы просто хотите , чтобы регистрировать все долго выполняющихся операторов (будь это SELECT, UPDATEили какой - либо DDL), то да.
Дезсо,

Ответы:


21

Вы были близки Ваша последняя идея на самом деле путь:

log_statement = none
log_min_duration_statement = 10000

Тогда никакие операторы не будут регистрироваться, кроме тех, которые выполняются дольше 10 секунд, включая саму строку запроса. Регистрация, возможно, остановилась, потому что 10 секунд - это высокий порог. Я использую 2 секунды нормально, но YMMV.

Этот связанный ответ на SO имеет больше:
Не удается заставить log_min_duration_statement работать


3
Позвольте мне добавить, что значение по умолчанию для log_statementis none, поэтому не установка его или установка noneимеет тот же эффект.
Дезсо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.