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