设置 GUC 参数或使用 PGOPTIONS 环境变量与 PgBouncer

Posted

技术标签:

【中文标题】设置 GUC 参数或使用 PGOPTIONS 环境变量与 PgBouncer【英文标题】:Set GUC parameter or use PGOPTIONS environment variable with PgBouncer 【发布时间】:2021-11-23 19:32:58 【问题描述】:

我可以让 PgBouncer 在事务池中保留 PGOPTIONS 环境变量来配置 GUC 参数吗?或者是否有其他方法可以在 PgBouncer 中配置这些参数,使其适用于所有连接?

我特别需要设置一些pg_trgm parameters

【问题讨论】:

您可以在postgresql.confALTER DATABASEALTER ROLE中设置参数。我认为这些是您唯一的选择。 您还可以使用 SET 在会话级别(或使用 SET LOCAL 的事务级别)设置 guc 变量,我想知道是否有办法让 PgBouncer 为每个新的连接到数据库服务器。 查看您的个人资料后,您可能知道这些选项,这意味着 PgBouncer 无法实现这些选项。谢谢你的回答:) 是的,我认为在 pgBouncer 中没有办法做到这一点。但我并不了解 pgBouncer 的每一个角落。 【参考方案1】:

您可以在数据库定义中使用connect_query 选项,例如

mydb = host=myhost dbname=mydb connect_query='set pg_trgm.similarity_threshold=0.5'

connect_query可以是任何SQL语句。

【讨论】:

以上是关于设置 GUC 参数或使用 PGOPTIONS 环境变量与 PgBouncer的主要内容,如果未能解决你的问题,请参考以下文章

GUC-1 模拟CAS算法

GUC-1 volatile

GUC-1 CopyOnWriteArrayList/CopyOnWriteArraySet

GUC-6 Callable 接口

GUC-8 小练习

GUC-1 原子性