目錄
- 背景
- 配置詳解
- 配置1:日志開啟與關(guān)閉
- 配置2:日志滾動策略
- 配置3:日志打印時機
- 配置4:數(shù)據(jù)庫統(tǒng)計監(jiān)控
- 配置5:慢sql記錄配置
背景
公司的項目中使用了postgresql(簡稱pg)作為其數(shù)據(jù)庫管理系統(tǒng),前兩天環(huán)境突然崩潰了,頁面無法打開。經(jīng)過排查,我發(fā)現(xiàn)是數(shù)據(jù)庫所在機器磁盤滿了,通過目錄和文件排序,原來是pg的日志太多(大約保留了大半年的日志在磁盤上沒有被清理)。
我看了下pg的日志配置,發(fā)現(xiàn)基本都是用的默認(rèn)配置,日志滾動沒有開啟,于是乎做了下相關(guān)配置優(yōu)化后對pg進(jìn)行重啟,最后看了pg的日志滾動,恢復(fù)正常了。以下是我梳理的關(guān)于pg的日志配置項。
配置詳解
配置文件:postgresql.conf
配置1:日志開啟與關(guān)閉
默認(rèn)為off,設(shè)置為on則pg可以記錄相關(guān)日志,建議打開,否則在數(shù)據(jù)庫出現(xià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:日志滾動策略
# 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日志文件名及其擴展名,默認(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,
#開啟日志滾動階段,這里需要設(shè)置為on
log_truncate_on_rotation =on# If on, an existing log file with the
#日志保留天數(shù),這里看實際環(huán)境,如果是測試建議1d,如果是生產(chǎn)環(huán)境建議7d
log_rotation_age = 1d # Automatic rotation of logfiles will
#單個日志大小,默認(rèn)100MB即可,比較標(biāo)準(zhǔn)的配置
配置3:日志打印時機
#發(fā)送給客戶端的消息級別,建議warning即可,日志等級越低,打印的內(nèi)容越多,性能上越有損耗
client_min_messages = warning # values in order of decreasing detail:
# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
#寫到數(shù)據(jù)庫日志文件中的消息的級別,建議warning即可,日志等級越低,打印的內(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ù)庫出現(xiàn)錯誤的SQL語句,建議warning即可,日志等級越低,打印的內(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ù)庫統(tǒng)計監(jiān)控
#log_statement_stats為on則會開啟log_parser_stats,log_planner_stats,log_executor_stats這三個選項,生產(chǎn)環(huán)境不建議開啟,建議測試環(huán)境開啟,用于定位問題。
#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off
配置5:慢sql記錄配置
#執(zhí)行sql時間為2s以上的sql都會被記錄下來
log_min_duration_statement = 2s
以上配置再修改完之后,均需要重啟pg生效。
到此這篇關(guān)于Postgresql的日志配置的文章就介紹到這了,更多相關(guān)Postgresql日志配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- PostgreSQL 性能優(yōu)化之服務(wù)器參數(shù)配置操作
- postgresql 性能參數(shù)配置方式
- PostgreSQL歸檔配置及自動清理歸檔日志的操作
- postgresql安裝及配置超詳細(xì)教程
- PostgreSQL 邏輯復(fù)制 配置操作
- 基于PostgreSQL pg_hba.conf 配置參數(shù)的使用說明
- PostgreSQL 自動Vacuum配置方式