PostgreSQL 慢查詢SQL語句跟蹤

2021-08-10 14:21:05 字數 1298 閱讀 7795

示例:啟用 sql 跟蹤

postgresql 日誌支援的輸出格式有 stderr(預設), csvlog , syslog

一般的錯誤跟蹤,只需在配置檔案 【postgresql.conf】簡單設定幾個引數,當然還有錯誤級別等要設定。

logging_collector = on

log_destination = 'stderr'

log_directory = 'log'

log_filename = 'postgresql-%y-%m-%d_%h%m%s.log'

select name,setting,vartype,boot_val,reset_val from pg_settings 

where name in('logging_collector','log_destination','log_directory','log_filename');

預設的跟蹤日誌記錄在 pgdate/log 中,如 /usr/local/pgsql/data/log 。

其他幾個重要引數說明:

log_rotation_age = 1440				#minute,多長時間建立新的檔案記錄日誌。0 表示禁擴充套件。

log_rotation_size = 10240 #kb,檔案多大後建立新的檔案記錄日誌。0 表示禁擴充套件。

log_truncate_on_rotation = on #可重用同名日誌檔案

當需要跟蹤sql語句或者慢語句,得需要設定以下引數:

log_statement = all	 #需設定跟蹤所有語句,否則只能跟蹤出錯資訊

log_min_duration_statement = 5000 #milliseconds,記錄執行5秒及以上的語句

log_statement:

設定跟蹤的語句型別,有4種型別:none(預設), ddl, mod, all。跟蹤所有語句時可設定為 "all"。

log_min_duration_statement:

跟蹤慢查詢語句,單位為毫秒。如設定 5000,表示日誌將記錄執行5秒以上的sql語句。

當 log_statement=all 和 log_min_duration_statement 同時設定時,將跟蹤所有語句,忽略log_min_duration_statement 設定。所以需按情況設定其中乙個或兩個值。

PostgreSQL 慢查詢SQL 追蹤配置

postgresql 日誌支援的輸出格式有 stderr 預設 csvlog syslog 一般的錯誤跟蹤,只需在配置檔案 postgresql.conf 簡單設定幾個引數,當然還有錯誤級別等要設定。logging collector on log destination stderr log di...

PostgreSQL 慢查詢SQL跟蹤操作

postgresql 開啟慢sql捕獲在排查問題時是個很有效的手段。根據慢sql讓我在工作中真正解決了實際問題,很有幫助。postgresql 日誌支援的輸出格式有 stderr 預設 csvlog syslog 一般的錯誤跟蹤,只需在配置檔案 postgresql.conf 簡單設定幾個引數,當然...

定時傳送MySQL的TOP 10慢查詢SQL

幫乙個開發朋友實現乙個功能 他希望 每天能定時傳送前一天的top 10 的慢查詢sql 給研發的負責人。因為不太懂資料庫,所以最好不要安裝第三方的工具。因此用shell 寫了乙個指令碼,把這個指令碼加入到crontab裡,即可實現每天傳送前一天的top 10 慢查詢。bin bash mysql w...