Amazon Postgres RDS pg_stat_statements未加载

问题描述 投票:3回答:2

我配置了我的RDS Postgres 9.6.1实例,以便通过'shared_preload_libraries'参数加载pg_stat_activity

shared_preload_libraries=pg_stat_statements,pg_hint_plan

我重新启动了我的实例,然后检查是否可以加载pg_stat_statements。但我得到错误:

[55000] ERROR: pg_stat_statements must be loaded via shared_preload_libraries

命令

SHOW shared_preload_libraries;

不显示pg_stat_statements库。

因此上述错误仍然存​​在。

其他人有同样的问题吗?

谢谢,Detlef

postgresql amazon-web-services amazon rds
2个回答
0
投票

UPDATE

我试过自己。添加到Parameters-> shared_preload_libraries值:pg_stat_statements,pg_hint_plan。点击“保存更改”,同意“立即申请”。确实没有效果。当我检查数据库参数组时 - 它显示修改后的组,但pg_stat_statements无法使用。所以我认为JS不好并尝试aws cli

aws rds describe-db-instances --db-instance-identifier p5

它揭示了群体确实没有改变!:

"OptionGroupMemberships": [
    {
      "Status": "in-sync",
      "OptionGroupName": "default:postgres-9-5"
    }
  ],

所以我做了:

aws rds modify-db-instance --db-parameter-group-name with-contrib --apply-immediately --db-instance-identifier p5
aws rds reboot-db-instance --db-instance-identifier p5
aws rds describe-db-instances --db-instance-identifier p5

它改变了。所以我试着:

mon=> create extension pg_stat_statements ;
CREATE EXTENSION
mon=> select count(*) from pg_stat_statements;
 count
-------
    26
(1 row)

瞧。不确定它是Chrome(版本57.0.2987.133(64位))功能还是JS失败,或者我没有直观点击步骤,但我也没有应用更改。请尝试使用aws cli,看看你是否在那里取得了成功。

以前的String requires quotes I think.

字符串:通常,将值括在单引号中,使值中的任何单引号加倍。但是,如果值是简单的数字或标识符,则通常可以省略引号。

因此,以这种方式设置shared_preload_libraries将有助于:

shared_preload_libraries = 'pg_stat_statements,pg_hint_plan'

https://www.postgresql.org/docs/current/static/runtime-config-client.html

shared_preload_libraries(string)

此变量指定要在服务器启动时预加载的一个或多个共享库。此参数只能在服务器启动时设置。如果找不到指定的库,则服务器将无法启动。


0
投票

今天遇到同样的问题。

结果我只需要重启数据库(通过CLI或Web界面)。

AWS docs所述:

更改静态参数并保存数据库参数组时,参数更改将在手动重新引导数据库实例后生效。

© www.soinside.com 2019 - 2024. All rights reserved.