在Ubuntu下,PostgreSQL的日志管理主要包括配置日志参数、查看日志文件和清理日志文件。以下是具体的操作步骤:
配置日志参数:
PostgreSQL的日志配置文件位于/etc/postgresql/<版本号>/main/目录下,名为postgresql.conf。使用文本编辑器打开该文件,找到以下参数并进行配置:
logging_collector:设置为on以启用日志收集器。log_directory:设置日志文件的存储目录。log_filename:设置日志文件的命名格式,例如postgresql-%Y-%m-%d_%H%M%S.log。log_statement:设置记录哪些SQL语句,可选值有none(不记录)、ddl(只记录数据定义语言语句)、mod(记录数据修改语言语句)和all(记录所有SQL语句)。log_min_duration_statement:设置记录执行时间超过指定毫秒数的SQL语句。例如:
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'
log_min_duration_statement = 1000
修改完成后,保存文件并重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
查看日志文件:
根据log_directory和log_filename参数设置的路径和文件名,找到并查看日志文件。例如:
cat /var/log/postgresql/12-main/postgresql-2021-08-01_120000.log
若要实时查看日志文件的更新,可以使用tail命令:
tail -f /var/log/postgresql/12-main/postgresql-2021-08-01_120000.log
清理日志文件: PostgreSQL会自动覆盖旧的日志文件。但是,如果你想手动清理日志文件,可以删除或归档旧日志文件。例如,将旧日志文件移动到归档目录:
sudo mkdir /var/log/postgresql/archive
sudo mv /var/log/postgresql/12-main/postgresql-*.log /var/log/postgresql/archive/
如果你想限制日志文件的大小,可以在postgresql.conf中设置log_rotation_age(按天)和log_rotation_size(按大小)参数。设置完成后,重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
通过以上步骤,你可以在Ubuntu下进行PostgreSQL的日志管理。