今天应用部门报障碍说有一个应用慢,我发现这个用户的会话有很多锁,于是做如下操作想杀掉会话
SQL> select a.sid, a.serial#, a.program, a.logon_time, b.spid from v$session a, v$process b
2 where a.paddr = b.addr
3 and a.sid = 57
4;
SIDSERIAL# PROGRAM
LOGON_TIMESPID
---------- ---------- ------------------------------------------------ ----------- ---------
57 2003 AUTO_GDCL.EXE
2006-4-17 1 3904
SQL> alter system kill session '57,2003';
alter system kill session '57,2003'
ORA-00030: user session ID does not exist
发现通过KILL SESSION,不行,我就想通过杀操作系统进程
SQL> select a.sid, a.serial#, a.program, a.logon_time, b.spid from v$session a, v$process b
2 where a.paddr = b.addr
3 and a.sid = 57
4;
SIDSERIAL# PROGRAM
LOGON_TIMESPID
---------- ---------- ------------------------------------------------ ----------- ---------
57 2003 AUTO_GDCL.EXE
2006-4-17 1 3904
$ exit
logout
You have mail in /var/mail/root
hncz9701#[/]kill -9 3904
kill: 3904: The specified process does not exist.
还是不行!!!
我看到dba_2pc_spending有内容,就想通过释放这些资源来解锁
SQL> exec dbms_transaction.purge_lost_db_entry('11.1.402893');
begin dbms_transaction.purge_lost_db_entry('11.1.402893'); end;
ORA-01453: SET TRANSACTION must be first statement of transaction
ORA-06512: at "SYS.DBMS_TRANSACTION", line 65
ORA-06512: at "SYS.DBMS_TRANSACTION", line 85
ORA-06512: at line 1
一个郁闷的DBA求各位大侠帮忙!
|