Oracle kill locked sessions

select * from v$locked_object;
select * from v$session where sid in (select session_id from v$locked_objects);
 
-- kill locked session
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where sid in (select session_id from v$locked_object);
 
-- kill active session
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where sid in (select sid from gv$session where status = 'ACTIVE' and osuser = 'oracle' and username = 'SAS_WKF');
 
-- disconnect session (works better than kill session)
select 'alter system disconnect session '''||sid||','||serial#||''' immediate;'
from v$session where sid in (
select sid from gv$session where --status = 'ACTIVE' and osuser = 'oracle' and
username = 'SAS_WKF');
 
-- alter system disconnect session 'sid, serial#' post_transaction;
-- alter system disconnect session 'sid, serial#' immediate;
 
-- for sessions not responding to kill
select 'kill -9 '||p.spid from gv$session s, gv$process p where s.username in ('TRKU','AVKU') and p.addr = s.paddr;
 
select 'alter system kill session '''||s.sid||','||s.serial#||''';' from gv$session s, gv$process p where s.username in ('TRKU','AVKU') and p.addr = s.paddr;
 
select spid, osuser, s.program from v$session s, v$process p where s.paddr = p.addr and s.sid = 843;
 
 
-- check lock type
select s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine, s.terminal, s.logon_time, l.type
from v$session s, v$lock l where s.sid = l.sid and s.username is not null order by sid;
 
 
/*
-- for Linux:
kill -9 spid
 
-- for Windows:
orakill sid spid
 
*/
 
 
 
 
 
 
 
 
 
 
 


posted @ 2021-02-22 20:48  Orchidelle  阅读(112)  评论(0编辑  收藏  举报