Postgresql

log_min_duration_statement 設置被忽略

  • February 10, 2022

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_statementnone似乎停止記錄。

關於配置,我有什麼遺漏的嗎?

你很親密。您的最後一個想法實際上是要走的路:

log_statement = none
log_min_duration_statement = 10000

然後不會記錄任何語句,除了那些執行時間超過 10 秒的語句 - 包括查詢字元串本身。日誌記錄似乎已經停止,因為 10 秒是一個高門檻值。我通常使用 2 秒,但是 YMMV。

這個關於 SO 的相關答案有更多:

引用自:https://dba.stackexchange.com/questions/62842