Oracle 会话删不掉,一次解决session无法完全删除问题的全过程(原创)-数据库专栏,其他相关...

开发环境: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,表也解锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值