数据库服务器持续输出的运行日志对于排查线上故障和慢查询审计极为关键。但如果不加管控,长期累积的日志文件会缓慢侵蚀磁盘空间直至磁盘爆满打死数据库。
推荐开启系统内置的后台日志收集器(logging_collector = on),并结合时间滚动或文件大小滚动策略进行自动轮替覆盖:
log_destination = 'stderr' logging_collector = on log_directory = 'log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_rotation_age = 1d log_rotation_size = 100MB
配合外部的日志收集代理(如 Filebeat、Fluentd)或操作系统的 logrotate 工具,定期将历史日志自动压缩归档并在超出保留天数后安全删除。