Saya berjalan Postgresql 9.1
di Ubuntu. Versi Postgresql yang tepat adalah 9.1+129ubuntu1
seperti yang ditunjukkan oleh manajer paket saya.
Saya memiliki 2 database yang aktif digunakan dan mereka digunakan dari server jauh.
Saya ingin mencatat pertanyaan yang memiliki waktu eksekusi yang lama. Jadi saya mengatur parameter berikut dalam /etc/postgresql/9.1/main/postgresql.conf
file
log_min_duration_statement = 10000
log_statement = 'mod'
jadi Postgresql akan mencatat pertanyaan yang membutuhkan waktu lebih dari 10 detik.
Tetapi ketika saya reload
konfigurasi postgres, Postgresql mulai mencatat setiap permintaan yang sesuai dengan log_statement
nilai. Bahwa saya mengatur durasi ke 100 detik untuk memastikan
log_min_duration_statement = 100000
Tapi Postgresql tetap mencatat setiap kueri yang sesuai dengan log_statement
nilai, apa pun log_min_duration_statement
nilainya.
Pengaturan log_statement
untuk none
tampak berhenti logging.
Apakah ada sesuatu yang saya lewatkan tentang konfigurasi?
sumber
log_statement
jadilog_min_duration_statement
harus bekerja?SELECT
,UPDATE
atau beberapa DDL), maka ya.Jawaban:
Anda sudah dekat. Ide terakhir Anda sebenarnya adalah cara untuk pergi:
Maka tidak ada pernyataan yang akan dicatat, kecuali yang berjalan lebih dari 10 detik - termasuk string kueri itu sendiri. Penebangan mungkin tampaknya berhenti karena 10 detik adalah ambang batas tinggi. Saya menggunakan 2 detik secara normal, tetapi YMMV.
Jawaban terkait ini di SO memiliki lebih:
Tidak bisa log_min_duration_statement berfungsi
sumber
log_statement
adalahnone
, jadi tidak mengaturnya atau pengaturan untuknone
memiliki efek yang sama.