背景:我们的服务是一个带有部分批处理业务的服务,在跑历史数据入pg时会有大量日志产出,现场服务器出现过几次爆盘,询问DBA后制定了以下两个方案:
方案一:如果不关心或不会使用pg日志,通过参数控制减少日志的产生量
方案二:如果不得不开启详细日志记录,这种情况避免不了会产生大量日志,考虑将日志转移到其他磁盘的方法
一、控制日志生成
通过参数设置,控制日志生成的内容和格式,以下是一些参考的系统参数设置:
--设置日志最小级别
alter system set log_destination='stderr'; --日志记录类型,默认是stderr,只记录错误输出
alter system set log_duration='off'; --记录SQL执行时间
alter system set log_statement='none'; --None表示不记录,ddl记录所有数据定义命令,mod记录所有ddl语句,加上数据修改语句,all记录所有执行的语句
alter system set log_min_duration_statement='-1' --记录慢SQL,-1表示不记录
select pg_reload_conf(); --执行后即刻生效,慎用
二、日志移盘
1 、查看日志目录
进入psql,找到数据目录
2 、修改目录
新建目录并赋予权限:
进入psql,修改日志目录:
查看新目录下生成的日志: