当前位置: 首页 > 知识库问答 >
问题:

Postgresql|剩余的连接槽保留给非复制超级用户连接

西门洛城
2023-03-14

我在一个PostgreSQL实例上收到一个错误“剩余的连接插槽保留给非复制超级用户连接”。

然而,当我从超级用户运行下面的查询来检查可用的连接时,我发现有足够的连接可用。但仍然得到同样的错误。

select max_conn,used,res_for_super,max_conn-used-res_for_super 
res_for_normal 
from 
  (select count(*) used from pg_stat_activity) t1,
  (select setting::int res_for_super from pg_settings where 
name='superuser_reserved_connections') t2,
  (select setting::int max_conn from pg_settings where name='max_connections') t3

输出

我搜索了这个错误,每个人都建议增加最大连接数,如下面的链接。Heroku“psql:FATAL:剩余的连接插槽保留给非复制超级用户连接”

编辑

我重新启动了服务器,一段时间后使用的连接数接近210,但我能够从普通用户连接到服务器。

共有1个答案

那昊
2023-03-14

可能不是您问题的直接解决方案,但我建议使用pgbouncer之类的中间件。它有助于保持到db服务器的较低、固定数量的开放连接。您的客户端将连接到pgbouncer,pgbouncer将在内部选择一个已打开的连接,用于客户端的查询。如果客户机的数量超过了可能的连接数量,则客户机将排队等待,直到有一个可用,因此在高流量情况下允许一些喘息空间,同时使db服务器保持在可承受的负载下。

 类似资料:
  • 我正在使用带有PostgreSQL数据库服务器的桌面应用程序。当我连续10到20分钟不使用应用程序时,数据库连接会断开。我正在使用PostgresqlJDBC进行数据库连接。 请帮我在这个数据库连接超时。 谢谢

  • 我在google cloud中创建了一个google cloud函数,它将连接到我在google cloud中创建的postgresql实例。 我正在使用'pg'节点模块。 我已经为此创建了一个私有IP。 我收到以下错误: 错误:由于在timeout.ConnectionTimeouthAndle.SetTimeout(/workspace/node_modules/pg/lib/client.j

  • kafka jdbc接收器连接器是否支持将其使用的内容写入不同的主题。我正在寻找一种传递机制,如下图所示。如果没有,我可以链接一个接收器和源(从接收器写的地方读取),但我认为这不会有那么好的性能。也许我可以修改现有的接收器连接器来实现这一点?

  • 限制用户账户的同时使用 Isaac是一家无线互联网服务提供商(WISP),他的收入取决于拥有尽可能多的用户,因为他每月收费。 爱丽丝是他的客户。 她给住在隔壁的鲍勃提供了她的证书(账户密码),所以他们都在同一时间连接无线网络。 Isaac需要结束这一点,否则他将不得不关闭他的WISP并编写HTML代码作为食物! 行动时刻 - 限制用户账户的同时使用 在sites-enabled/default文件

  • 我正在尝试创建一个任何用户都可以调用的函数,以便将数据从/复制到文件。。。我的想法是设置一个充当超级用户的函数,或者一个作为“postgres”执行的函数,但我不知道从何开始。 谁能给我指出正确的方向?

  • 问题内容: 我在代码中使用了RMI: 这些是4个.java文件。 接下来,我编译所有这些文件。然后创建一个using 。之后,我使用来在服务器端启动rmi注册表。然后,我开始使用服务器,最后使用客户端。 但是什么也没发生 客户端抛出的异常是 原因是什么,我该如何解决? 在客户端计算机上,这些是以下.class文件,在服务器端 问题答案: 错误消息说明了一切:您的连接超时。这意味着您的请求在某个(默