标签: pgbouncer

PgBouncer“不允许更多连接(max_client_conn)”

我将 PostgreSQL 与 PgBouncer 一起使用,并在我的应用程序中收到以下错误:

08P01:不允许更多连接(max_client_conn)

pgbouncer.ini 有以下配置:

max_client_conn = 100
default_pool_size = 20
pool_mode = session
Run Code Online (Sandbox Code Playgroud)

postgresql.conf 有:

max_connections = 100
Run Code Online (Sandbox Code Playgroud)

PostgreSQL 服务器有 5 个由单个用户访问的数据库。

我的理解是max_connections应该等于(default_pool_size * # databases),并且max_client_conn至少应该是这么多。我还看到 pgbouncer.ini 中的注释default_pool_size应该等于max_client_connif using session pooling。

所以要解决我遇到的这个错误,我应该简单地设置default_pool_size = 100吗?还是只增加max_client_conn?或者是其他东西?

postgresql pgbouncer postgresql-9.4

3
推荐指数
1
解决办法
6078
查看次数

PgBouncer 记录“query_wait_timeout”错误的详细信息

关于 PgBouncer 日志中的此类错误:

2020-03-10 03:46:01.730 EDT [25305] LOG C-0xa5cf00: testdb/testdb_user@127.0.0.1:49214 closing because: query_wait_timeout (age=120s)
2020-03-10 03:46:01.730 EDT [25305] WARNING C-0xa5cf00: testdb/testdb_user@127.0.0.1:49214 pooler error: query_wait_timeout
Run Code Online (Sandbox Code Playgroud)

是否有可能查看(或记录)触发错误的查询?导致此错误的最常见原因是什么?停止的服务器、繁忙的服务器?

更新:来自 PostgreSQL 的日志文件在 2020-03-10 03:46:01 没有显示任何错误

pgbouncer

3
推荐指数
1
解决办法
2万
查看次数

“server_lifetime”和“server_idle_timeout”有什么区别?

我正在尝试pgbouncer.ini在 Pgbouncer 中调整我的文件,并提出了我感觉相同的参数server_lifetimeserver_idle_timeout

官方配置文档中是这么说的:

服务器生命周期

池化器将关闭连接时间超过此时间的未使用的服务器连接。将其设置为 0 表示连接仅使用一次,然后关闭。[秒]

默认值:3600.0

服务器空闲超时

如果服务器连接空闲时间超过这么多秒,它将被丢弃。如果为 0,则禁用超时。[秒]

默认值:600.0

您能帮我简单地理解其中的区别吗?提前致谢!!!

postgresql pgbouncer

2
推荐指数
1
解决办法
3045
查看次数

使用实体化视图

我有一个物化视图,创建大约需要 57 秒,并且我使用的是 PostgreSQL 9.4。

当我插入表时,触发器将调用触发器函数,该函数将REFRESH MATERIALIZED VIEW CONCURRENTLY view触发触发器after each statement(插入、更新、删除)

发生的情况是,执行插入操作大约需要 57 秒。

如何解决此问题并仍然使用物化视图?

我已经实现了很长时间,从来没有出现过这个问题,最近我添加了pgbouncer,会不会是这个原因?

postgresql materialized-view pgbouncer postgresql-9.4

1
推荐指数
1
解决办法
1328
查看次数