Postgres 抛出有关准备好的语句的错误

问题描述 投票:0回答:1

我在 Postgres 日志中看到许多与特定应用程序的准备语句相关的相同错误。有多个应用程序使用同一数据库实例,但这些应用程序都没有出现问题。我不知道为什么会发生这种情况,也不知道我是否应该担心。从功能上来说,PHP 应用程序运行良好。

我有 pgbouncer 在数据库前面运行。

< 2017-03-23 05:15:01.663 CDT >ERROR:  prepared statement "pdo_stmt_00000001" already exists
< 2017-03-23 05:15:01.663 CDT >STATEMENT:  SELECT DISTINCT a0_.company_id AS company_uuid0, a0_.sub_source AS sub_source1, a0_.notification_body AS notification_body2, a0_.system_id AS system_id3 FROM action_item_notification a0_ WHERE a0_.delivered = false
< 2017-03-23 05:15:01.664 CDT >ERROR:  prepared statement "pdo_stmt_00000001" does not exist
< 2017-03-23 05:15:01.664 CDT >STATEMENT:  DEALLOCATE pdo_stmt_00000001
php postgresql doctrine-orm
1个回答
0
投票

从 PgBouncer 1.21.0 开始,它现在支持名为准备好的语句的协议级别,这几乎肯定会解决此错误。您可以通过在 PgBouncer 的配置文件中将

max_prepared_statements
设置为非零值来打开此支持。有关详细信息,请查看文档:https://www.pgbouncer.org/config.html#max_prepared_statements

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