分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
--***************************
-- Oracle 彻底 kill session
--***************************
kill session 是DBA经常碰到的事情之一。如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生。同时也应当注意,
如果kill 的session属于Oracle 后台进程,则容易导致数据库实例宕机。
通常情况下,并不需要从操作系统级别杀掉Oracle会话进程,但并非总是如此,下面的描述中给出了在Oracle级别杀掉会话以及操作系统级别杀掉进程。
一、获得需要kill session的信息(使用V$SESSION 和 GV$SESSION视图)
SET LINESIZE 180
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A40
SELECT s.inst_id,
s.sid,
s.serial#,
p.spid,
s.username,
s.program,
s.paddr,
s.STATUS
FROM gv$session s
JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE s.type != 'BACKGROUND';
INST_ID SID SERIAL# SPID USERNAME PROGRAM PADDR STATUS
---------- ---------- ---------- ---------- ---------- --------------------------------------------- -------- --------
1 146 23 27573 TEST sqlplus@oracle10g (TNS V1-V3) 4C621950 INACTIVE
1 160 17 27610 SYS sqlplus@oracle10g (TNS V1-V3) 4C624174 ACTIVE
1 144 42 27641 SCOTT sqlplus@oracle10g (TNS V1-V3) 4C624730 INACTIVE
二、使用ALTER SYSTEM KILL SESSION 命令实现
语法:
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;