postgresql - 无法终止 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:临时禁用连接以了解如何执行此操作。
推荐阅读
- matlab - 使用逆变换采样在matlab中生成均匀分布在空心球体上的K个无人机的位置
- influxdb - 如何在 InfluxDB 中永久合并两个测量值
- c++ - 为可变模板的每个参数调用模板函数
- java - UCAExc:::5.0.0-SNAPSHOT 用户缺少权限或找不到对象:语句 [UPDATE PersonSET address = 'null' WHERE name = 'null'] 中的 PERSONSET
- video - Safari 多次下载 MP4
- r - 从 R 中的 JSON 文件中拆分数据的巨大问题
- azure - 如何使用 CLI 创建具有 enpoint 类型 Azure Function 的事件订阅?
- python - 覆盆子:没有名为 flask_api 的模块
- python - to_sql() 缺少 1 个必需的位置参数:'con'
- linux - 已解决:使用 RSA 令牌通过主机到网络上的服务器的 Docker 容器隧道