如何使用pool_mode = session在pgBouncer中强制“暂停”?

时间:2018-10-04 16:50:22

标签: postgresql failover pgbouncer

我在会话池模式下使用pgBouncer,但是像大多数人一样,当我发出PAUSE进行数据库切换时遇到麻烦,因为任何发出 any SQL的会话都会导致此挂起。基本上,我正在寻找“强制”暂停,所有非空闲会话都将断开连接。

我尝试过的事情:

1)暂停 ...,但是如果您有任何阻止会话,则该会话不会被杀死,您需要在服务器上对其进行追踪。

2)先设置query_timeout = 1 ,然后暂停 ...,但是query_timeout不适用于暂停,因此会永久挂起。

3) SUSPEND ...,但这并不完全相同,当您断开连接时会自动 RESUME

4)杀死 ...,但是这会无差别地杀死所有内容,并且客户端会硬断开。

我意识到最好的解决方案是使用pool_mode=transaction,但像往常一样,我无法让开发人员参与其中。

在会话池模式下在应用程序服务器上使用pgBouncer时,是否有一些我缺少的最佳方法来执行切换/故障转移?

0 个答案:

没有答案