a2005147 发表于 2018-9-9 11:14:59

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

  在删除某个用户时,可能会因为某些用户正在连接但是又无法定位从哪里连接的
  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'
  查询结果:
http://blog.itpub.net/attachments/2013/08/28803801_201308161428151.jpg
  结果中的spid就是操作系统进程号
  然后登陆到oracle数据库所在的服务器,执行orakill db_name spid
  然后登陆到oracle数据库所在的服务器,执行orakill db_name spid
http://blog.itpub.net/attachments/2013/08/28803801_201308161430431.jpg
http://blog.itpub.net/image/default/fj.png查询结果.jpg
http://blog.itpub.net/image/default/fj.pngos kill.jpg

页: [1]
查看完整版本: oracle中kill某个用户的连接kill不掉