You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku Postgres连接过多:如何为团队/组织终止这些连接?

解决Heroku Postgres "Too many connections" 问题

1. 先查看当前连接详情

首先通过Heroku CLI进入你的Postgres数据库:

heroku pg:psql -a <你的应用名称>

进入后执行SQL查询所有连接状态:

SELECT pid, usename, client_addr, application_name, state FROM pg_stat_activity;
  • pid:连接的进程ID,后续终止连接需要用到它
  • usename:发起连接的数据库用户
  • client_addr:客户端IP地址
  • application_name:发起连接的应用标识
  • state:连接状态(idle代表空闲连接,这类是优先清理的对象)

2. 终止多余连接

终止单个连接

找到要清理的连接对应的pid,执行:

SELECT pg_terminate_backend(<目标pid>);

比如要终止pid为1234的连接,就写SELECT pg_terminate_backend(1234);

批量终止空闲连接

如果有大量空闲连接,直接批量清理(注意排除当前自己的连接):

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND pid <> pg_backend_pid();

如果需要更精准筛选(比如只清理某个应用或用户的空闲连接),可以加额外条件:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity 
WHERE usename = '你的数据库用户名' 
AND application_name = '目标应用名' 
AND state = 'idle';

3. 长期预防方案

  • 使用连接池:配置PGBouncer来管理连接,避免应用创建过多直接连接
  • 优化应用连接逻辑:确保应用在使用完数据库连接后及时关闭,避免长期占用
  • 升级Heroku Postgres套餐:如果业务确实需要更多连接,可以考虑升级套餐来提升连接上限

内容的提问来源于stack exchange,提问作者Xaxage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:42:28