postgresql 查询锁表并解锁


1、查询被锁的pid以及语句, state这列如果显示成 idle in transaction 就表示被锁了

select pid, state, usename, query, query_start
from pg_stat_activity
where pid in (
    select pid from pg_locks l
                        join pg_class t on l.relation = t.oid
        and t.relkind = 'r'

);

 

2、解锁: 拿着上面查询出的pid放入下面的语句中

// 温柔一点的(只kill掉select)
SELECT pg_cancel_backend(pid)

// 暴力一点的(kill掉 select、update、insert、delete)
SELECT pg_terminate_backend(pid)

 

 

最后附上老外的一个链接

https://jaketrent.com/post/find-kill-locks-postgres


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM