无法终止 Postgresql 数据库上的活动会话
Not able to terminate the active sessions on the Postgresql DB
我正在尝试使用生产数据刷新我们的一个暂存数据库。我创建了一个名为 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: Temporarily disable connections 了解如何执行此操作。
我正在尝试使用生产数据刷新我们的一个暂存数据库。我创建了一个名为 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: Temporarily disable connections 了解如何执行此操作。