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

本文介绍如何使用SQL语句搜索PostgreSQL中的死锁进程,并提供两种处理死锁的方法:取消查询或终止进程。
1078

被折叠的 条评论
为什么被折叠?



