1、 以一个session做以示例,
a、 找到你要杀掉的那个session, 并记下paddr
select sid, username, paddr, status from v$session
where username = '用户名' and
status = 'INACTIVE';
b、 找到这个session所对应的spid
select * from v$process where addr = '上面查寻的paddr';
c、 杀掉spid所标识的那个进程
如果你的Oracle是在Unix平台上的,可以用kill。
$kill spid
如果你的Oracle是在windown平台上的,有一些的不同,因为windown是以thead来代替process的,需要用到sid和spid两个值,所用的命令也由kill替换为Orakill,格式为rakill sid spid
C:\>orakill sid spid
d、 再查一下v$session,看会话在不在了。
SQL> select sid,serial#,username,program from v$session;
SID SERIAL# USERNAME PROGRAM
---------- ---------- ------------------------------ ----------------------------------------------------------------
1 1 ORACLE.EXE
2 1 ORACLE.EXE
3 1 ORACLE.EXE
4 1 ORACLE.EXE
5 1 ORACLE.EXE
6 1 ORACLE.EXE
7 325
8 311 ZLHIS
9 325
10 325
11 325
12 325
15 31 ZLHIS
16 29
17 3 SYS sqlplus.exe
20 98 SYS PLSQLDev.exe
23 284 ZLHIS
27 72 SYS PLSQLDev.exe
28 49
19 rows selected
SQL> alter system kill session '8,311';
alter system kill session '8,311'
ORA-00031: 标记要删去的会话
这个8,311确实是没有了,可能又产生了一个新的会话,见下面的记录.
SQL> select sid,serial#,username,program from v$session;
SID SERIAL# USERNAME PROGRAM
---------- ---------- ------------------------------ ----------------------------------------------------------------
1 1 ORACLE.EXE
2 1 ORACLE.EXE
3 1 ORACLE.EXE
4 1 ORACLE.EXE
5 1 ORACLE.EXE
6 1 ORACLE.EXE
7 337
8 315 ZLHIS
9 337
10 337
11 337
12 337
15 31 ZLHIS
16 41
17 3 SYS sqlplus.exe
20 98 SYS PLSQLDev.exe
23 284 ZLHIS
27 72 SYS PLSQLDev.exe
28 61
19 rows selected
oracle视频教程请关注: http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html