清理数据库会话

一个窗口开启一个会话:
SQL> select distinct sid from v$mystat;

   SID

 1

另一个窗口
SYS@prod>select sid,serial#,process from v$session where sid=1;

   SID    SERIAL# PROCESS

 1	 1117 53635

SYS@prod>select spid,username,pid from v p r o c e s s w h e r e a d d r = ( s e l e c t p a d d r f r o m v process where addr=(select paddr from v session where sid=1 and serial#=1117);

SPID USERNAME PID


54301 oracle 25

$ kill -9 54301

一个窗口中可以发现会话没有了:
SQL> select distinct sid from v$mystat;

select distinct sid from v$mystat
*
ERROR at line 1:
ORA-03135: connection lost contact
Process ID: 54301
Session ID: 1 Serial number: 1117

#############################################
如果知道sid
select
‘kill -9’||’ ‘||spid HOST_COMMAND,
‘alter system kill session ‘’’||A.sid||’,’||A.SERIAL#||’’’’ SQL_COMMAND
from v s e s s i o n A , V session A,V PROCESS B where A.PADDR=B.ADDR AND SID=&sid;

Enter value for sid: 1
old 4: from v s e s s i o n A , V session A,V PROCESS B where A.PADDR=B.ADDR AND SID=&sid
new 4: from v s e s s i o n A , V session A,V PROCESS B where A.PADDR=B.ADDR AND SID=1

HOST_COMMAND SQL_COMMAND


kill -9 54506 alter system kill session ‘1,1127’

如果是通过监听连接的会话:
oracle 54430 1 0 13:11 ? 00:00:00 oracleprod (LOCAL=NO)
如果是本地连接的会话:
oracle 54506 54505 0 13:17 ? 00:00:00 oracleprod (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

猜你喜欢

转载自blog.csdn.net/weixin_44524950/article/details/86536737