过着简单,真实的生活,喜欢收藏变形金刚(TFE,G1,SL系列),研究金融股市,KOF98,篮球,学习研究Oracle技术,我并不是一个全职的Oracle DBA,但是对于Oracle技术的热爱和研究,是一个不争的事实,愿意结交广大Oracle技术爱好者!MSN:oracle_kof_tf@hotmail.com
kill session的测试
上一篇 /
下一篇 2007-12-26 16:36:00
/ 个人分类:Oracle数据库技术-数据库管理
按照目前的状态有两个登陆的session,username都是hujinpei.
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ------------------------------ --------
676440DC 9 19 67618FE8 SYS ACTIVE
67645D2C 12 26267618818HUJINPEI INACTIVE
6764669C 13 49 67618C00 HUJINPEI INACTIVE
我们尝试kill其中一个
SQL> alter system kill session '12,262';
系统已更改。
此时我们发现PADDR已经改成一个虚拟地址了
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ------------------------------ --------
676440DC 9 19 67618FE8 SYS ACTIVE
67645D2C 12 2626763AD64HUJINPEI KILLED
6764669C 13 49 67618C00 HUJINPEI INACTIVE
紧接着我们在kill第二个session
SQL> alter system kill session '13,49';
系统已更改。
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ------------------------------ --------
676440DC 9 19 67618FE8 SYS ACTIVE
67645D2C 12 2626763AD64HUJINPEI KILLED
6764669C 13 496763AD64HUJINPEI KILLED
我们看到了两个session拥有了同样的虚拟地址。
其实只要其中两个session,有一个touch了原来的会话,被killed的session就会被pmon回收,但是如果我们想按照原来的paddr来kill进程怎么办呢?因为先前session的PADDR已经被修改了。
可以这样:
SQL> select p.addr from v$process p where pid <> 1
2 minus
3 select s.paddr from v$session s;
ADDR
--------
67618818
根据这个addr我们就可以查spid了,来kill进程了。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: