如何配置RDS for PostgreSQL 日志相关参数

问题描述

如何配置RDS for PostgreSQL 日志相关参数,需要注意什么?

问题分析

在PostgreSQL中,最重要的日志相关的参数有两个,分别为

  1. log_statement[1]
  2. log_min_duration_statement

其中 log_statement 决定了您要记录什么类型的SQL语句,log_min_duration_statement 控制了记录时间的阈值。

解决方案

1.log_statement

log_statement 控制需要记录的SQL语句类型,如DDL,mod, 以及all, 具体解释如下:

  • ddl 记录所有数据定义语言 (DDL) 语句,例如 CREATE、ALTER 和 DROP。

  • mod 记录所有 DDL 和数据修改语言 (DML) 语句,例如 INSERT、UPDATE 和 DELETE。

  • all 记录所有查询,这个参数会忽略log_min_duration_statement的设定。

test=# show log_statement;
 log_statement 
---------------
 ddl
(1 row)

:如果您使用all,在业务繁忙的场景下,日志量可能是巨大的,建议您谨慎评估业务上是否需要使用all,同时监控磁盘占用空间

2.log_min_duration_statement

log_min_duration_statement 可以以ms为单位去设置语句执行时间的记录阈值,如果该值设置为500,则以为这执行时间超过0.5s的SQL语句会被记录到PostgreSQL 日志中,如果设置为0,会默认记录所有的SQL语句。同log_min_duration_statement 参数与log_statement 不会相互干扰,也不会互相依赖。

test=# show log_min_duration_statement;
 log_min_duration_statement 
----------------------------
 1s
(1 row)

注: 如果您将此参数设置为0,可能消耗大量的存储空间,建议您监控磁盘存储空间。避免存储空间被占满导致业务受损

参考文档

[1] https://www.postgresql.org/docs/11/runtime-config-logging.html

99
1
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论