一次解决session无法完全删除问题的全过程
来源:http://blog.csdn.net/hooyang/
开辟环境:win2000server+oracle9i+delphi
开辟人员陈诉:在程序中杀了JOB,但是被操作的表照旧锁表状态,
此中有一张日记表还在不断插入记载,直到执行完所有插入操作(一个漫长的等待过程)才气解锁
现场形貌:oem中被杀job起的SESSION状态为killed,此中有3张表被锁点击右键--》停止会话
提示: 标记要删去的会话
===================================================================================================
处理要领一 :
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,表也解锁
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|