高斯数据库Postgresql死锁和锁表解决方法
解决死锁进方法:
- 查询死锁进程列表
select * from pg_stat_activity where waiting=‘t’
发现有好几条挂起的记录,记录下所有或需要解锁的pid
- 解决死锁进程
select pg_cancel_backend(‘pid值’)
解决完后,刷新后测试,恢复正常。
注:如果pg_stat_activity没有记录,可以查询pg_locks这个表中是否有锁定的记录
可以使用pg_cancle_backend()或者pg_terminate_backend()结束锁定的进程。
解决锁表的方法:
–查询是否锁表了
select oid from pg_class where relname=‘可能锁表了的表’
select pid from pg_locks where relation=‘上面查出的oid’
–如果查询到了结果,表示该表被锁 则需要释放锁定
select pg_cancel_backend(上面查到的pid)