kill某个等待事件对应的spid:
setlinesize260pagesize10000select'kill -9 '||a.spidfromv$processa, v$sessionbwherea.addr=b.paddranda.backgroundisnullandb.type='USER'andb.eventlike'%'||'&eventname'||'%'andb.status='ACTIVE';
对应的alter system kill session的语法:
setlinesize260pagesize1000colmachinefora50colkill_sessionfora60; selectmachine, 'alter system kill session '||''''||sid|| ',' || serial# ||''''|| 'immediate;' kill_session,statusfrom v$sessionwhere type='USER' and event like '%event_name%' and status = 'ACTIVE';
kill某个sql_id对应的spid:
setlinesize260pagesize10000select'kill -9 '||a.spidfromv$processa, v$sessionbwherea.addr=b.paddranda.backgroundisnullandb.type='USER'andb.sql_id='&sql_id'andb.status='ACTIVE';
对应的alter system kill session的语法:
setlinesize260pagesize10000colmachinefora60selectmachine, 'alter system kill session '||''''||sid|| ',' || serial# ||''''|| 'immediate;',statusfrom v$sessionwhere sql_id = '&sql_id' and type='USER' and status='ACTIVE';
被kill会话的类型:
setlinesize260pagesize10000selectb.osuser,b.machine,b.program,b.sql_id,b.PREV_SQL_ID,a.spid,to_char(LAST_CALL_ET) asseconds,b.BLOCKING_SESSION,b.BLOCKING_INSTANCEfromv$processa, v$sessionbwherea.addr=b.paddranda.inst_id=b.inst_idanda.backgroundisnullandb.type='USER'andb.event='&event_name'andb.status='ACTIVE';
blocking会话类型和kill blocking会话:
setlinesize260pagesize10000colmachinefora50colkill_sessionfora60SELECTblocking_instance, blocking_session, BLOCKING_SESSION_STATUS, FINAL_BLOCKING_INSTANCE, FINAL_BLOCKING_SESSION, COUNT(*) FROMv$sessionWHEREupper(event) LIKE'%&cursor%'GROUPBYblocking_instance, blocking_session, BLOCKING_SESSION_STATUS, FINAL_BLOCKING_INSTANCE, FINAL_BLOCKING_SESSIONorderbyblocking_instance,count(*);
kill blocking会话:
selectinst_id, machine, 'alter system kill session '||''''||sid|| ',' || serial# ||''''|| 'immediate;' kill_session,statusfrom gv$sessionawhere a.type='USER' and (a.inst_id,a.sid) in (select BLOCKING_INSTANCE,BLOCKING_SESSION from v$sessionwhere upper(event) like '%&cursor%')order by inst_id;
所有含有关键字“LOCAL=NO”的进程是Oracle数据库中远程连接进程的共同特点,因此通过以下命令可以kill掉所有的进程
ps-ef|grep-vgrep|grepLOCAL=NO|awk'{print $2}'|xargskill-9