【问题标题】:Pgbouncer graceful termination quits with dropped insertsPgbouncer 优雅终止退出并删除插入
【发布时间】:2021-05-14 18:05:15
【问题描述】:

我们有一个 Postgres 和 PgBouncer 设置,并根据 pgbouncer 文档使用 SIGINT 进行优雅终止:

信号 安全关机。与在控制台发出 PAUSE 和 SHUTDOWN 相同。

pre stop hook 脚本如下所示:

kill -INT 1; sleep 270;

但 pgbouncer 有时无法及时退出,并且一些插入和其他可能的命令被丢弃,从而导致数据完整性问题。

有人知道调试这个的好方法吗?我们是否能够记录挂起查询或类似的东西?

【问题讨论】:

    标签: ruby-on-rails postgresql postgresql-10 pgbouncer


    【解决方案1】:

    pg_stat_activity 中查找“事务中空闲”(如果您使用事务池模式)或“空闲”(如果您使用会话池模式)的会话。在最后一个此类会话自行消失之前,智能关闭不会停止 pgBouncer。

    如果终止客户端会话会导致数据完整性问题,则您的事务管理存在错误,并且在崩溃或网络中断的情况下您将面临同样的问题。

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多