Postgresql的日志配置教程詳解
背景
公司的項(xiàng)目中使用了postgresql(簡(jiǎn)稱pg)作為其數(shù)據(jù)庫(kù)管理系統(tǒng),前兩天環(huán)境突然崩潰了,頁(yè)面無(wú)法打開(kāi)。經(jīng)過(guò)排查,我發(fā)現(xiàn)是數(shù)據(jù)庫(kù)所在機(jī)器磁盤滿了,通過(guò)目錄和文件排序,原來(lái)是pg的日志太多(大約保留了大半年的日志在磁盤上沒(méi)有被清理)。
我看了下pg的日志配置,發(fā)現(xiàn)基本都是用的默認(rèn)配置,日志滾動(dòng)沒(méi)有開(kāi)啟,于是乎做了下相關(guān)配置優(yōu)化后對(duì)pg進(jìn)行重啟,最后看了pg的日志滾動(dòng),恢復(fù)正常了。以下是我梳理的關(guān)于pg的日志配置項(xiàng)。
配置詳解
配置文件:postgresql.conf
配置1:日志開(kāi)啟與關(guān)閉
默認(rèn)為off,設(shè)置為on則pg可以記錄相關(guān)日志,建議打開(kāi),否則在數(shù)據(jù)庫(kù)出現(xiàn)異常時(shí)候,沒(méi)有日志來(lái)定位具體問(wèn)題
# This is used when logging to stderr: logging_collector =on# Enable capturing of stderr and csvlog # into log files. Required to be on for # csvlogs. # (change requires restart)
配置2:日志滾動(dòng)策略
# These are only used if logging_collector is on: #配置日志目錄,默認(rèn)為pg_log即可 log_directory = 'pg_log' # directory where log files are written, # can be absolute or relative to PGDATA #pg日志文件名及其擴(kuò)展名,默認(rèn)即可 log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, # can include strftime() escapes #pg日志文件的權(quán)限,默認(rèn)即可 log_file_mode = 0600 # creation mode for log files, #開(kāi)啟日志滾動(dòng)階段,這里需要設(shè)置為on log_truncate_on_rotation =on# If on, an existing log file with the #日志保留天數(shù),這里看實(shí)際環(huán)境,如果是測(cè)試建議1d,如果是生產(chǎn)環(huán)境建議7d log_rotation_age = 1d # Automatic rotation of logfiles will #單個(gè)日志大小,默認(rèn)100MB即可,比較標(biāo)準(zhǔn)的配置
配置3:日志打印時(shí)機(jī)
#發(fā)送給客戶端的消息級(jí)別,建議warning即可,日志等級(jí)越低,打印的內(nèi)容越多,性能上越有損耗 client_min_messages = warning # values in order of decreasing detail: # debug5 # debug4 # debug3 # debug2 # debug1 # log # notice # warning # error #寫到數(shù)據(jù)庫(kù)日志文件中的消息的級(jí)別,建議warning即可,日志等級(jí)越低,打印的內(nèi)容越多,性能上越有損耗 log_min_messages = warning # values in order of decreasing detail: # debug5 # debug4 # debug3 # debug2 # debug1 # info # notice # warning # error # log # fatal # panic #是否記錄導(dǎo)致數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤的SQL語(yǔ)句,建議warning即可,日志等級(jí)越低,打印的內(nèi)容越多,性能上越有損耗 log_min_error_statement = error # values in order of decreasing detail: # debug5 # debug4 # debug3 # debug2 # debug1 # info # notice # warning # error # log # fatal # panic (effectively off)
配置4:數(shù)據(jù)庫(kù)統(tǒng)計(jì)監(jiān)控
#log_statement_stats為on則會(huì)開(kāi)啟log_parser_stats,log_planner_stats,log_executor_stats這三個(gè)選項(xiàng),生產(chǎn)環(huán)境不建議開(kāi)啟,建議測(cè)試環(huán)境開(kāi)啟,用于定位問(wèn)題。 #log_parser_stats = off #log_planner_stats = off #log_executor_stats = off #log_statement_stats = off
配置5:慢sql記錄配置
#執(zhí)行sql時(shí)間為2s以上的sql都會(huì)被記錄下來(lái) log_min_duration_statement = 2s
以上配置再修改完之后,均需要重啟pg生效。
到此這篇關(guān)于Postgresql的日志配置的文章就介紹到這了,更多相關(guān)Postgresql日志配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL如何查詢表結(jié)構(gòu)和索引信息
文章介紹了在PostgreSQL中查詢表結(jié)構(gòu)和索引信息的幾種方法,包括使用`\d`元命令、系統(tǒng)數(shù)據(jù)字典查詢以及使用可視化工具DBeaver2024-12-12postgresql行轉(zhuǎn)列與列轉(zhuǎn)行圖文教程
PostgreSQL是一種開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù),它提供了多種管理工具來(lái)操作數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于postgresql行轉(zhuǎn)列與列轉(zhuǎn)行的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06PostgreSQL更新表時(shí)時(shí)間戳不會(huì)自動(dòng)更新的解決方法
這篇文章主要為大家詳細(xì)介紹了PostgreSQL更新表時(shí)時(shí)間戳不會(huì)自動(dòng)更新的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10PostgreSQL數(shù)據(jù)庫(kù)字符串拼接、大小寫轉(zhuǎn)換以及substring詳解
在日常工作中會(huì)遇到將多行的值拼接為一個(gè)值展現(xiàn),下面這篇文章主要給大家介紹了關(guān)于PostgreSQL數(shù)據(jù)庫(kù)字符串拼接、大小寫轉(zhuǎn)換以及substring的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04PostgreSQL的日期時(shí)間差DATEDIFF實(shí)例詳解
PostgreSQL是一款簡(jiǎn)介而又性能強(qiáng)大的數(shù)據(jù)庫(kù)應(yīng)用程序,其在日期時(shí)間數(shù)據(jù)方面所支持的功能也都非常給力,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL的日期時(shí)間差DATEDIFF的相關(guān)資料,需要的朋友可以參考下2023-04-04PostgreSQL教程(四):數(shù)據(jù)類型詳解
這篇文章主要介紹了PostgreSQL教程(四):數(shù)據(jù)類型詳解,本文講解了數(shù)值類型、字符類型、布爾類型、位串類型、數(shù)組、復(fù)合類型等數(shù)據(jù)類型,需要的朋友可以參考下2015-05-05深入解讀PostgreSQL中的序列及其相關(guān)函數(shù)的用法
這篇文章主要介紹了PostgreSQL中的序列及其相關(guān)函數(shù)的用法,包括序列的更新和刪除等重要知識(shí),需要的朋友可以參考下2016-01-01PostgreSql觸發(fā)器創(chuàng)建、使用以及刪除示例詳解
在PostgreSQL中觸發(fā)器函數(shù)是一個(gè)沒(méi)有參數(shù)并且返回trigger類型的函數(shù),這篇文章主要給大家介紹了關(guān)于PostgreSql觸發(fā)器創(chuàng)建、使用以及刪除的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03