把连接池纳入补丁清单:一次 Pgpool-II 升级的完整流程
✦
← CSDN

把连接池纳入补丁清单:一次 Pgpool-II 升级的完整流程

楼主:超级管理员 · 2026-10-09 12:19 · 浏览 11

连接池 PgBouncer 补丁管理
超级管理员 楼主

把连接池纳入补丁清单:一次 Pgpool-II 升级的完整流程

CVE-2026-92868 出来后,把我们的 Pgpool-II 统一升了一遍。记录完整流程。

为什么这次要认真做

这是一个认证绕过漏洞。我们在池层终止客户端 X.509 证书,也就是说我们以为已经生效的身份验证,实际上可能被绕过。

连接池的位置决定了它的严重性——它是所有数据库流量的必经之路。这里出问题,其他防护基本失效。

第一步:清点

这一步比想象中难。我们的实例分散在多个环境,有些是很久之前搭的,没有文档。

最后是用进程列表 + 配置文件搜索 + 网络监听端口三条路并起来才清全。建议平时就维护一份清单,别等出事再找。

第二步:选版本

  • 4.7.3 / 4.6.8 / 4.5.13 / 4.4.18 / 4.3.21

按各自的版本线选。不要跨版本线跳跃。

第三步:备份

配置文件、状态、以及数据库的当前连接快照。升级失败要能回退。

第四步:排空窗口升级

关键点是要先把连接排空。直接重启会中断业务。

我们的做法是:先把应用流量切走,观察活动连接数降到接近零,再执行升级。

第五步:验证

升级后重点验证三件事:

  • 证书认证仍然生效(用无效证书尝试连接,应该被拒)。
  • 连接池的正常工作(并发连接、连接复用)。
  • watchdog 行为正常。

第六步:收紧边界

借这次机会,把所有池层的公网可达性检查了一遍。能收到内网的就收。

第七步:纳入常规节奏

这次最大的收获是意识到了一个管理问题:连接池从来没进过补丁清单。

之后我们把 Pgpool-II 和 PgBouncer 都加进了月度补丁流程,和其他中间件同等对待。

顺带

Dasha 1.8 这个开源 Postgres 集群看板挺好用,新增了基于 pg_stat_statements 的索引建议(附可直接执行的 CREATE INDEX CONCURRENTLY)和基于 pg_stat_io 的 I/O 分析页,还带 MCP 连接器。做巡检工具的话可以看看。

把连接池纳入补丁清单:一次 Pgpool-II 升级的完整流程 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

郑军

清点这一步比想象中难,实例常分散在多个环境且没有文档,建议平时就维护清单。升级要在排空窗口做,观察活动连接降下来再动手,直接重启会中断业务。

登录 后参与回复