log_min_duration_statement ayarı yok sayıldı


15

Postgresql 9.1Ubuntu üzerinde koşuyorum . Tam Postgresql sürümü 9.1+129ubuntu1paket yöneticimin gösterdiği gibi.

Aktif olarak kullanılan 2 veritabanım var ve bunlar uzak bir sunucudan kullanılıyor.

Yürütme süresi uzun olan sorguları günlüğe kaydetmek istiyorum. Bu yüzden /etc/postgresql/9.1/main/postgresql.confdosyada aşağıdaki parametreleri ayarladım

log_min_duration_statement = 10000
log_statement = 'mod'

Postgresql, 10 saniyeden uzun süren sorguları günlüğe kaydeder.

Ama reloadpostgres yapılandırmasını yaptığımda , Postgresql log_statementdeğere uyan her sorguyu günlüğe kaydetmeye başlar . Emin olmak için süreyi 100 saniyeye ayarladığımı

log_min_duration_statement = 100000

Ancak Postgresql log_statement, log_min_duration_statementdeğere bakılmaksızın, değere uyan her sorguyu günlüğe kaydetmeye devam eder .

Ayar log_statementiçin nonegünlüğü durdurmak gibiydi.

Yapılandırma hakkında kaçırdığım bir şey var mı?


Mesele şu ki, iki kümenin birleşimini günlüğe kaydediyorsunuz, kesişimini değil. İstediğin gibi yapıp yapamayacağının farkında değilim.
dezso

Peki, devre dışı bırakmalı mıyım (yorum yapmam) log_statementbu yüzden log_min_duration_statementçalışmalı mı?
FallenAngel

Sadece tüm uzun süren ifadeleri log istiyorsanız (o bir olmak SELECT, UPDATEo zaman evet, ya da bazı DDL).
dezso

Yanıtlar:


21

Yakındın. Son fikriniz aslında gitmenin yolu:

log_statement = none
log_min_duration_statement = 10000

Ardından, sorgu dizesinin kendisi de dahil olmak üzere 10 saniyeden uzun çalışanlar dışında hiçbir ifade günlüğe kaydedilmez. 10 saniye yüksek bir eşik olduğu için günlük kaydı durmuş gibi görünebilir. Normalde 2 saniye kullanıyorum ama YMMV.

SO ile ilgili bu cevapta daha fazlası var:
log_min_duration_statement çalıştırılamıyor


3
Bana varsayılan olduğunu ekleyelim log_statementolduğunu nonebu yüzden ayarlama veya ayarı değil, noneaynı etkiye sahiptir.
dezso
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.