PostgreSQL不能同时使用CATUS和PG_STAT_语句

f45qwnt8  于 2022-10-15  发布在  PostgreSQL
关注(0)|答案(1)|浏览(198)

因此,我在docker中构建了带Citus扩展的PostgreSQL。我使用Citus中的官方文档,然后在终端中运行此命令。

docker run -d --network citus-network --name citus_coordinator -p 5500:5432 -e POSTGRES_PASSWORD=mypassword citusdata/citus:11.1

数据库建设成功。但我想创建pg_stat_statements扩展。我配置了postgresql.conf文件。

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000
track_activity_query_size = 2048

然后,我重新启动了PostgreSQL容器。编写了This查询

SELECT * FROM pg_stat_statements;

在终点站。我看到了这个错误

[55000] ERROR: pg_stat_statements must be loaded via shared_preload_libraries

我不明白,为什么配置文件没有看到这个扩展名,我犯了什么错误?

ahy6op9u

ahy6op9u1#

如果使用Citus,则Citus应该始终是您的第一个共享预加载库。因此,您的postgres.conf应该如下所示:

shared_preload_libraries = 'citus,pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000
track_activity_query_size = 2048

如果你有工人,你也需要更改他们的postgresql.conf。
然后,您需要重新启动数据库(协调程序和工作程序),这可以通过以下方式实现:

docker restart <container_name>

您可以确认此功能是否与以下各项配合使用:

SHOW shared_preload_libraries;

相关问题