查看数据库死锁,并手动清理

完结

Posted by xujie on September 3, 2018

正所谓前人栽树,后人乘凉。 感谢Huxpro提供的博客模板,同时也感谢BY!

我的的博客

1.查看数据库的进程

  • SELECT * FROM pg_stat_activity WHERE datname=’死锁的数据库ID ‘;
  • 检索出来的字段中,【wating 】字段,数据为t的那条,就是死锁的进程,找到对应的【procpid 】列的值。

例如:SELECT procpid FROM pg_stat_activity WHERE datname='数据库ID' and waiting ='t';

2.杀掉进程

kill有两种方式

第一种是:

  • SELECT pg_cancel_backend(PID);
  • 这种方式只能kill select查询,对update、delete 及DML不生效)

第二种是:

  • SELECT pg_terminate_backend(PID);
  • 这种可以kill掉各种操作(select、update、delete、drop等)操作