在删除某个用户时,可能会因为某些用户正在连接但是又无法定位从哪里连接的


1、查询一下当前有哪些用户在连接,并且查询是从哪个操作系统连接的


select username,osuser,sid,serial# from v$session


2、kill掉相应的连接


alter system kill session ‘sid,serial#’


在执行kill的操作时,可能会报错,错误代码为ora-00031,这是因为相应连接的资源未释放,再通过步骤1中的语句进行查询,相应的连接还是存在的


这种情况下就需要从操作系统继续kill


3、查询一下操作系统进程号


select a.spid,b.sid,b.serial#,b.username 

from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED' 


查询结果:

oracle中kill某个用户的连接kill不掉_进程

结果中的spid就是操作系统进程号


然后登陆到oracle数据库所在的服务器,执行orakill db_name spid

然后登陆到oracle数据库所在的服务器,执行orakill db_name spid

oracle中kill某个用户的连接kill不掉_oracle_02

oracle中kill某个用户的连接kill不掉_不掉_03查询结果.jpg

oracle中kill某个用户的连接kill不掉_不掉_03os kill.jpg