我有一个应用程序在Heroku上运行。 这个应用程序安装了Postgres 9.2.4(Dev)插件。 为了访问我的在线数据库,我使用Navicat Postgres。 有时,Navicat不能完全关闭与Postgres数据库建立的连接。 结果是,在一段时间后,有20多个打开的连接到Postgres数据库。 我的Postgres安装只允许20个同时连接。 因此,由于20多个打开的连接,我的Postgress数据库现在无法访问(连接太多)。
我知道这是Navicat的问题,我正在尝试在那方面解决这个问题。 但如果发生这种情况(连接太多),我该如何解决(例如关闭所有连接)。
我尝试了以下所有操作,但没有结果:
- 关闭Navicat并重新启动计算机(OS X 10.9)
- 重新启动Heroku应用程序(
heroku restart
) - 尝试重启在线数据库,但我发现没有这个选项
- 手动关闭从OS X到Postgres服务器IP的所有连接
- 重启我们的路由器
我认为在Postgres这边存在一些“死”连接是很明显的。 但是,我怎样才能关闭它们呢?
heroku pg
命令时,它告诉我有 21 个连接处于打开状态(20 是最大值),所以当我执行heroku pg:killall DATABASE_NAME
命令时,它报错说无法连接并执行命令,因为所有连接都被占用了。所以我必须等待其中一个连接超时。:( - Jasper Schulte