·您的位置: 首页 » 资源教程 » 编程开发 » 数据库 » 一次解决SESSION无法完全删除问题的全过程

一次解决SESSION无法完全删除问题的全过程

类别: 数据库教程  评论数:0 总得分:0
开发环境:win2000server+oracle9i+delphi开发人员报告:在程序中杀了JOB,但是被操作的表还是锁表状态, 其中有一张日志表还在不断插入记录,直到执行完所有插入操作(一个漫长的等待过程)才能解锁现场描述:oem中被杀job起的SESSION状态为killed,其中有3张表被锁点击右键--》中断会话 提示: 标记要删去的会话

处理方法一 :

1.SELECT saddr,sid,serial#,paddr,username,status FROM v$session WHERE username IS NOT NULLexample: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,表也解锁
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1