postgresql – Postgres数据库锁定:查询永远运行
发布时间:2020-12-13 16:32:51 所属栏目:百科 来源:网络整理
导读:我的一个 python脚本在Postgres数据库上运行了一些ALTER TABLE查询.发生了一些错误,桌子被锁定了.当我在任何这些表上运行任何查询时,它会告诉我Query Query并没有任何反应. 目前,我只能通过关闭我的系统并重新启动它来删除此锁.请告诉我一个更好的方法.这是
我的一个
python脚本在Postgres数据库上运行了一些ALTER TABLE查询.发生了一些错误,桌子被锁定了.当我在任何这些表上运行任何查询时,它会告诉我Query Query并没有任何反应.
目前,我只能通过关闭我的系统并重新启动它来删除此锁.请告诉我一个更好的方法.这是一个 Windows主机.
你应该检查锁:
SELECT l.*,a.* FROM pg_locks l JOIN pg_stat_activity a USING (pid) WHERE NOT granted; 您将看到等待会话的列表.以下内容: SELECT l.*,a.* FROM pg_locks l JOIN pg_stat_activity a USING (pid) WHERE granted AND (database,relation) IN (SELECT database,relation FROM pg_locks WHERE NOT granted); 将为您提供阻止会话列表.如果使用 我建议你也看看this wiki page和这个问题:Postgresql DROP TABLE doesn’t work 在您的情况下,我建议您确定阻止会话并尝试找出阻止他们的原因.根据我的经验,最典型的情况是 – 有人忘了在COMMIT之后按下输入并出去吃午饭.如果你确定这不会伤害你的系统,你可以杀死阻塞会话: SELECT pg_terminate_backend(pid); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |