(1)查看当前活跃会话
select * from sys_stat_activity where state<>'idle';
select * from sys_locks where granted ='f';
可以看到哪个进程被锁住了,得到一个pid
select sys_blocking_pids();
能得到谁卡住了他们
select sys_terminate_backend(pid);
pid为select sys_blocking_pids();查出来的pid,释放锁。
1、Session A: 在事务A中执行insert
TEST=# begin ;
BEGIN
TEST=# insert into t1 values(111,'a');
INSERT 0 1
2、Session B:在事务B中执行drop table
TEST=# begin;
BEGIN
TEST=# drop table t1;
3、Session C:检测死锁
查看当前活跃会话
TEST=# select * from sys_stat_activity where state<>'idle';
4、查看到哪个进程被锁住了,得到一个pid.
TEST=# select * from sys_locks where granted ='f';
5、查看谁卡住了他
TEST=# select sys_blocking_pids(98212);
6、终止会话,释放锁。
TEST=# select sys_terminate_backend(100715);