【问题标题】:How to access postgresql DB server that has "too many clients" and kill connections?如何访问具有“太多客户端”的 postgresql 数据库服务器并终止连接?
【发布时间】:2014-04-17 00:42:34
【问题描述】:

当我在我的工作中对访问 postgresql 数据库服务器的 C# Web 服务进行了一些更改时,我很粗心,我忘记关闭我建立的一些连接。在过去几天多次测试该服务后,我意识到我忘记关闭我的连接,现在我无法访问服务器为时已晚。

我搜索了其他解决方案,但它们都涉及我更改 postgres.conf 文件中的最大连接大小。问题是我自己的电脑上没有这样的文件。我假设 conf 文件位于托管数据库服务器的原始计算机上?

是否有任何解决方案,以便我可以再次访问服务器并终止旧连接,而无需转到数据库的原始主机?

【问题讨论】:

  • 唯一的其他选择是以数据库超级用户身份连接,其中superuser_reserved_connections其他用户无法使用。或者,如果可以的话,通过 ssh 连接到数据库服务器和 kill -TERM 单个 PostgreSQL 工作人员后端。将来,您可以通过对您的应用服务器连接的用户设置连接限制来防止这种情况发生。

标签: sql database postgresql service connection


【解决方案1】:

唯一的其他选项是:

  • 以数据库超级用户身份连接,其中有superuser_reserved_connections其他用户无法使用;或

  • 如果可以的话,通过 ssh 连接到数据库服务器和 kill -TERM 单个 PostgreSQL 工作人员后端。 (在 Windows 上,这将是 rdp'ing 并在后端 postgres.exe 进程上使用 End Process,但在 Windows 上选择一个安全的终止进程要困难得多,您需要使用 Process Explorer 来检查进程heirachy 和参数,以便您可以选择常规后端)。

以后您可以通过对您的应用服务器连接的用户设置连接限制来防止这种情况;见ALTER USER

【讨论】:

  • 谢谢。我最终只是一遍又一遍地尝试连接,它最终让我再次访问数据库。我猜也许一些连接被自动杀死了?我不确定发生了什么。
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 2013-05-24
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
相关资源
最近更新 更多