GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1600
Oracle Kill Session 终极篇
环境:
NLSRTL 10.2.0.2.0 Production
Oracle Database 10g Enterprise Edition 10.2.0.2.0 64bi
PL/SQL 10.2.0.2.0 Production
TNS for IBM/AIX RISC System/6000: 10.2.0.2.0 Productio
问题/解决:
在用Toad 使用sys as dba用户登录,kill oracle session时,发现有一些session并杀不掉于是用命令行进行杀。
用于查找有所有session的语句:
select sid,serial#,username,status from v$session where status!='KILLED' and username is not null;
kill session的语句:
Alter system kill session ‘sid,serial#’;
Kill session后,需要等待一段时间,执行以下语句,看看是否有还有没有杀掉的进程:
select sid,serial#,username,status from v$session where status ='KILLED';
发现过了1个小时,还有以下四个进程并没有被杀掉,于是就需要强行杀掉该进程了。
SID SERIAL# USERNAME STATUS
---------- ---------- ------------------------------ --------
1047 355 SYMBOLS KILLED
1059 1599 SYMBOLS KILLED
1103 1 SYS KILLED
1104 2 SYS KILLED
执行以下语句,此语句是为了获得进程地址:
select * from (select s.username,s.serial#,s.sid,s.status,x.addr,x.ksllapsc,x.ksllapsn,x.ksllaspo,x.ksllrtyp,decode(bitand(x.ksuprflg,2),0,null,1)
from x$ksupr x,v$session s where s.paddr(+)=x.addr and bitand(ksspaflg,1)!=0) a,(select p.addr from v$process p where pid <> 1
minus
select s.paddr from v$session s where s.status='KILLED') b where a.addr = b.addr;
结果如图所示:
可以看到如上图所示,此处username、serial#、sid、status均为空的则是我们需要的已经被Killed的,我们可以通过此处的地址,在v$process中找到spid也就是我们需要杀的进程,下面没行后面跟的数字就是我查到的spid。
select spid from v$process where addr ='070000004F7BDE78'; 2597048
select spid from v$process where addr ='070000004F7B9798'; 2609252
select spid from v$process where addr ='070000004F79C6F8'; 463032
select spid from v$process where addr ='070000004F79CED8'; 352444
select spid from v$process where addr ='070000004F7A0DD8'; 1142874
select spid from v$process where addr ='070000004F7BA758'; 1519700
select spid from v$process where addr ='070000004F7A05F8'; 1261676
这里有一个问题,就是我们上面在被killed的session只有4个,而这里却有7个,于是,我们需要在服务器上面查找相关的进程,如下图所示:
我发现在查找7个进程的时候,有4个后面明显带有f10001003ac24a0之类的地址,也就是f1000开头的,于是就kill掉这4个进程,在察看数据库中果然好了,哈哈。
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1600