postgresql 死锁问题解决记录

--查询阻塞的sql( 死锁了,没有执行通过的sql )
select * from pg_stat_activity aa,
(
select a.locktype,a.database,a.pid,a.mode,a.relation,b.relname from pg_locks a join pg_class b on a.relation=b.oid
 where upper(b.relname)=‘FX_WDSJ_DSZH‘
) bb
where aa.pid=bb.pid
 and aa.waiting=‘t‘

--释放 死锁的sql
select pg_cancel_backend(上面查询到的pid)
--查询是否锁表了
select oid from pg_class where relname=‘可能锁表了的表‘ --oid是每个表隐藏的id
select pid from pg_locks where relation=‘上面查出的oid‘
--如果查询到了结果 则释放锁定
select pg_cancel_backend(上面查到的pid)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。