postgresql查看死锁及解决方法


 

  • 检索出死锁进程的ID

  SELECT * FROM pg_stat_activity WHERE datname='数据库名' and waiting='t';
  找到对用的pid列的值
  或
  select oid from pg_class where relname='可能锁表了的表' --oid是每个表隐藏的id
  select pid from pg_locks where relation='上面查出的oid'

  • 将进程杀掉

  select pg_cancel_backend("死锁那条数据的pid值");
  运行完后,再次刷新这个表,sql就可顺利执行。

 


免责声明!

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



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