psql:致命错误:对不起,已经有太多客户了,HEROKU

时间:2019-01-24 14:21:22

标签: ruby-on-rails postgresql heroku

两年以来,我已经在Heroku上部署了Rails应用,没有任何麻烦 今天的应用程序崩溃了。

轨道日志为:

/app/vendor/bundle/ruby/2.3.0/gems/pg-0.21.0/lib/pg.rb:56:in `initialize': FATAL:  sorry, too many clients already (PG::ConnectionBad)
FATAL:  sorry, too many clients already

我的Rails应用是v5.2.0

我将Heroku与2 dyno一起使用 该数据库是带有“ Hobby Dev”的postgres。 我尝试:

  • 要升级数据库,但出现相同的错误

    heroku addons:create heroku-postgresql:standard-0 --follow DATABASE_URL --app locabri
    Creating heroku-postgresql:standard-0 on ⬢ xxxx... !
    ▸    An error was encountered when contacting the add-on partner to create heroku-postgresql:standard-0: The database you are attempting to follow was not found.
    
  • 更改环境变量中的DB_POOL

  • heroku pg:info

    === DATABASE_URL
    Plan:                  Hobby-dev
    Status:                Available
    Connections:           0/20
    PG Version:            10.6
    Created:               2017-05-29 07:40 UTC
    Data Size:             138.8 MB
    Tables:                12
    Rows:                  5748/10000 (In compliance)
    Fork/Follow:           Unsupported
    Rollback:              Unsupported
    Continuous Protection: Off
    Region:                Europe
    Add-on:                postgresql-regular-79163
    

但是没有任何效果。 我无法在数据库上执行任何操作,因为无法连接数据库并且不知道如何重新启动它。 感谢您的帮助或问题

编辑

  • heroku pg:killall 不起作用

解决方案

我终于通过更改可用的dyno来找到解决方案!

  heroku ps:scale web=0
  heroku ps:scale web=2
  heroku restart

现在我可以检查“连接泄漏”

1 个答案:

答案 0 :(得分:1)

最近,我的一个Python应用程序遇到了相同的错误消息。我已经联系了Heroku,他们承认了这个错误:

致命:对不起,已经有太多客户了

“通常会触发此事件,因为爱好层数据库是共享资源,这意味着多个数据库将共享来自主机的计算和存储。我们会定期监视这些数据,并始终以备用容量运行它们,但偶尔会出现偶然的使用高峰相邻数据库中的数据可能会导致主机出现问题。这是我们不赞成将兴趣爱好层用于生产应用程序的原因之一。”

他们建议尝试以下选项之一:

  1. 在同一计划上提供一个新的爱好数据库,然后迁移数据。这将在新的数据库主机上启动,这意味着您不再具有相同的嘈杂邻居。
  2. 升级到专业计划之一

我没有尝试过第一种选择,但是第二种解决了我的问题。 answer展示了如何逐步进行迁移。