六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 88|回复: 0

oracle中断session

[复制链接]

升级  28%

24

主题

24

主题

24

主题

秀才

Rank: 2

积分
92
 楼主| 发表于 2013-2-5 01:22:27 | 显示全部楼层 |阅读模式
一个用户进程偶尔会挂起或占用过多资源而拒绝其它会话。如果 DBA 依然能够访问数据库,通常可以发出以下查询
SELECT S.USERNAME,S.OSUSER,S.SID,S.SERIAL#,P.SPID FROM V$SESSION S,V$PROCESS P WHERE
S.PADDR=P.ADDR AND S.USERNAME IS NOT NULL;

通过 ALTER SYSTEM KILL SESSION 'SID,SERIAL#' 命令来杀SESSION

要杀掉已锁的SESSION,WINDOWS下可以通过下载诸如QUICK SLICE等命令行工具,在命令行中直接执行ORAKILL <SID><SPID>即可。不利用这些工具,则要为ORAKILL命令提供更多的的参数,诸如相应的WINDOWS线程等。

在网上也搜索到了一些相关的信息

===================================================================================================
处理方法一 :

1.SELECT saddr,sid,serial#,paddr,username,status FROM v$session WHERE username IS NOT NULL
example:saddr,sid,serial#,paddr,username,status FROM v$session WHERE username = 'XNJW0419' ;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ------------------------------ --------
542E0E6C 11 314 542B70E8 EYGLE INACTIVE 542E5044 18 662 542B6D38 SYS ACTIVE

2.ALTER SYSTEM KILL SESSION 'sid, serial#';
example:ALTER SYSTEM KILL SESSION '11,314';(注:在sqlplus中执行 )

结果: 提示标记要删去的会话 无法释放会话,未成功解锁

====================================================================================================
处理方法二 :

a、 找到你要杀掉的那个SESSION, 并记下paddr

SELECT sid, username, paddr, status FROM v$session WHERE username = '用户名' ;
example:SELECT sid, username, paddr, status FROM v$session WHERE username = 'XNJW0419' ;
       SID USERNAME                       PADDR    STATUS
---------- ------------------------------ -------- --------
        10 XNJW0419                       2B5E2E2C KILLED

b、 找到这个SESSION所对应的spid

SELECT * FROM v$process WHERE addr = '上面查寻的paddr';
example:SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = '2B5E2E2C';
ADDR            PID SPID         USERNAME           SERIAL# TERMINAL
-------- ---------- ------------ --------------- ---------- ----------------
2B5E2E2C         44 1204         SYSTEM                 -99 JWC

c、 杀掉spid所标识的那个进程

D:\>orakill sid  spid (注:cmd命令窗口中执行 只有oracle服务器端才有orakill命令)
example: D:\>orakill oemrep 1204

提示:KILL OF THREAD id 1204 IN INSTANCE oemrep successfully signalled.

结果:成功删除该SESSION,表也解锁
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表