1、搜索死锁
通过语句SELECT * FROM pg_stat_activity WHERE datname='databasename' and waiting='t';
即可搜索出有死锁的进程,其中databasename
为database的名称; 出来的结果中datid
即为此database的编号,pid
即为死锁的进程号,此部分可以在数据库服务器上的进程中可以看到,通过ps -ef|grep postgres
即可看到;
方法一:SELECT pg_cancel_backend(PID)
,缺点是这种方式只能kill select查询,对update、delete 及DML不生效; 方法二:SELECT pg_terminate_backend(PID)
,这种可以kill掉各种操作(select、update、delete、drop等)操作