运行日志管理

最近更新时间:2025-09-29 10:43:01

我的收藏
本文为您介绍如何管理 pg_log 保留时长。

PG_LOG 介绍

pg_log 一般是记录数据库的状态信息,例如:错误信息、慢查询 SQL、数据库的启动关闭信息等。该日志会按大小和时间自动切割,当前云数据库 PostgreSQL 的 pg_log 默认保留30天。pg_log 会占用数据库实例的存储空间,您可以基于实际需要来修改保留时长。
说明:
数据库实例的慢日志和错误日志默认保留7天,修改 pg_log 保留时长不影响慢日志和错误日志保留时长。

修改 PG_LOG 保留时长

您可以基于实际需要修改 pg_log 保留时长,系统当前支持7天和30天两种。具体操作如下:
2. 在实例列表找到需要修改的实例,单击操作 > 管理,进入实例详情。
3. 在实例详情页找到参数设置,在右上方搜索框中搜索需要设置的参数 log_filename 并更新。

log_filename 参数说明如下:
参数值
说明
postgresql_%a_%H.log
选择该值,日志保留7天。
postgresql_%d_%H.log
选择该值,日志保留30天,系统默认保留30天。
当您修改了 log_filename 参数之后,您可以通过修改参数 tencentdb_max_logfile_num 来设置运行日志保留个数,进而清理历史的日志文件。系统默认每小时生成一个日志文件,因此如果 log_filename 参数值设置为 postgresql_%a_%H.log(7天),则 tencentdb_max_logfile_num 建议设置为168及以上数字。如果 log_filename 参数值设置为 postgresql_%d_%H.log(30天),则 tencentdb_max_logfile_num 建议设置为720及以上数字。您可以在实例详情页找到参数设置,在右上方搜索框中搜索需要设置的参数 tencentdb_max_logfile_num 并更新:

注意:
为了保存足够的运行日志,建议参数 tencentdb_max_logfile_num 设置不要低于100。
tencentdb_max_logfile_num 参数值为2147483647表示全部保留。
如您在控制台无法更改参数 tencentdb_max_logfile_num,请升级内核小版本

清理多余日志

对于多余的日志,您可在登录实例后,执行以下语句,立刻清理多余日志,或待内核发生日志轮转时自动清理。
SELECT pg_rotate_logfile();