本文为您介绍如何管理 pg_log 保留时长。
PG_LOG 介绍
pg_log 一般是记录数据库的状态信息,例如:错误信息、慢查询 SQL、数据库的启动关闭信息等。该日志会按大小和时间自动切割,当前云数据库 PostgreSQL 的 pg_log 默认保留30天。pg_log 会占用数据库实例的存储空间,您可以基于实际需要来修改保留时长。
说明:
数据库实例的慢日志和错误日志默认保留7天,修改 pg_log 保留时长不影响慢日志和错误日志保留时长。
修改 PG_LOG 保留时长
您可以基于实际需要修改 pg_log 保留时长,系统当前支持7天和30天两种。具体操作如下:
1. 登录 云数据库 PostgreSQL 控制台。
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();