oracle怎么删除会话,Oracle 删除用户会话_Oracle如何删除用户会话?
1、 以一个session做以示例,a、 找到你要杀掉的那个session, 并记下paddrselect sid, username, paddr, status from v$sessionwhere username = '用户名' andstatus = 'INACTIVE';b、 找到这个session所对应的spidselect * from v$process where addr
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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)