PostgreSQL日志信息占用磁盘过大

当PostgreSQL启用日志时,若postgresql.conf日志的相关参数还使用默认值的话磁盘很容易被撑爆.因此在启用了logging_collector参数时,需要对其它相关的参数进行调整.
系统默认参数如下

#log_destination = 'stderr'		#日志格式,值为stderr, csvlog, syslog, and eventlog之一.
logging_collector = on			#启用日志
#log_directory = 'log'			#日志文件存储目录
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	#日志文件命名方,默认为每秒一个文件(postgresql-2017-10-18_231548.log)
#log_file_mode = 0600			#日志文件权限
#log_truncate_on_rotation = off	#是否截断日志文件

调整后的参数

log_destination = 'csvlog'		#日志格式,值为stderr, csvlog, syslog, and eventlog之一.
logging_collector = on			#启用日志
log_directory = 'log'			#日志文件存储目录
log_filename = 'postgresql-%j.log'	#日志文件命名方式,最多保存一年的日志.同时要打开log_truncate_on_rotation,否则日志以追加的方式显示在后面.
log_file_mode = 0600			#日志文件权限
log_truncate_on_rotation = on	#是否截断日志文件

重点内容

log_destination = 'csvlog'
log_filename = 'postgresql-%j.log'
log_truncate_on_rotation = on

log_destination:建议设置为csvlog,以便将日志链接到PostgreSQL中查看.参看Error Reporting and Logging 19.8.4. Using CSV-Format Log Output

log_filename :设置日志文件名,需结合log_truncate_on_rotation = on使用.可根据自己的需要调整, 例如:

log_filename = 'postgresql-%I.log'			#最多保存12小时的日志,每小时一个文件
log_filename = 'postgresql-%H.log'			#最多保存24小时的日志,每小时一个文件
log_filename = 'postgresql-%w.log'			#最多保存一周的日志,每天一个文件
log_filename = 'postgresql-%d.log'			#最多保存一个月的日志,每天一个文件
log_filename = 'postgresql-%j.log'			#最多保存一年的日志,每天一个文件

你可能感兴趣的:(postgresql,常用技巧)