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

相关文章:

  • 2021-11-29
  • 2022-02-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-11-29
猜你喜欢
  • 2022-01-11
  • 2022-12-23
  • 2021-06-12
  • 2021-11-29
  • 2021-12-25
  • 2022-12-23
相关资源
相似解决方案