【问题标题】:Not able to terminate the active sessions on the Postgresql DB无法终止 Postgresql DB 上的活动会话
【发布时间】:2019-09-13 20:02:21
【问题描述】:

我正在尝试使用生产数据刷新我们的一个暂存数据库。我创建了一个名为 pulse_temp 的数据库并从生产中导入数据。在此之后,我执行了以下命令来终止我想要删除的脉冲数据库上的所有活动连接。

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname= 'pulse';
pg_terminate_backend 
----------------------
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
 t
(90 rows)

然后我执行以下命令将当前数据库重命名为随机名称。

ALTER DATABASE pulse RENAME TO pulse_temp1;
ERROR:  database "pulse" is being accessed by other users
DETAIL:  There are 90 other sessions using the database.

即使在终止会话后,我也会收到上述错误。

我什至重新启动了数据库实例,但这个错误似乎仍然存在。

有什么想法以及为什么会发生以及解决问题的方法吗?

【问题讨论】:

    标签: postgresql google-cloud-platform postgresql-9.6


    【解决方案1】:

    最合理的解释是客户端或客户端池正在立即重新连接。

    就在终止会话之前,也许您应该禁用新连接。 请参阅PostgreSQL: Temporarily disable connections 了解如何执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2021-10-10
      • 2015-09-20
      • 2021-09-25
      • 1970-01-01
      • 2016-11-30
      • 2021-02-22
      相关资源
      最近更新 更多