PostgreSQL 错误日志配置

1 背景知识

本文介绍如何配置 PostgreSQL 数据库日志参数。分为两个方面,一种配置用于测试和配置,另外一种配置用于生产压力测试。

2 通常配置

2.1 生产环境的日志配置

#postgres>
 cat >> $PGDATA/err_log.conf << EOF
log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%d'
log_line_prefix ='%m %u %d [%p]'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 1GB
log_error_verbosity = default
log_statement = None
EOF

cat >> $PGDATA/postgresql.conf << EOF
include_if_exists='err_log.conf'
EOF

2.2 调试与分析的日志配置

配置ERROR LOG 的相关参数。能够更详细的查看数据库运行时内部原理和机制。

#postgres>
 cat >> $PGDATA/err_log.conf << EOF
log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%d'
log_line_prefix ='%m %u %d [%p]'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 1GB
log_error_verbosity = debug
log_statement = all
EOF

cat >> $PGDATA/postgresql.conf << EOF
include_if_exists='err_log.conf'
EOF

3 参数生效

重启数据库让参数生效。

#postgres>
pg_ctl restart -D $PGDATA