如何杀死oracle会话 杀掉oracle会话

如何杀掉Oracle中的会话

1.查找:(注:若没有死锁的session,查询记录将为空。)

西夏网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

(1).查询v$locked_object表

select * from v$locked_object;

(2).以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象

SELECT a.object_id, a.session_id, b.object_name, c.*

FROM v$locked_object a, dba_objects b, v$session c

WHERE a.object_id = b.object_id

AND a.SESSION_ID = c.sid(+);

2.Kill Session:

alter system kill session 'sid, serial#';

注:

有时alter system kill session 'sid,serial#';并不能彻底的杀死会话。

如果有ora-00031错误,则在后面加immediate;

alter system kill session '29,5497' immediate;

例如:

上面查出来的一条记录的sid是149, serial#为4153,就执行以下的语句:

alter system kill session '149,4153' ;

如何快速的杀掉Oracle的Session

举个例子

通过session id (SID) 找到系统进程号 然后kill 进程

SQL select spid from v$process where addr=(select paddr from v$session where rownum=1 and sid=(select userenv('SID') from dual));

SPID

------------------------

12135

spid 系统进程号

SQL ho kill -9 12135

kill 掉这个进程 就完了

SQL select sysdate from dual;

select sysdate from dual

*

第 1 行出现错误:

ORA-03135: 连接失去联系

进程 ID: 12135

会话 ID: 65 序列号: 19533

如何杀掉(kill)Oracle中的会话(Session)

��匠�焙蟛呕岜唤饪��茄�蓟嵩斐捎τ貌僮鞅蛔枞�?梢砸設ralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配。

alter system kill session 'sid, serial#' 如上面查出来的一条记录的sid是53, serial#为663,就执行以下的语句alter system kill session '53,663' 如果要一次性杀死多个会话,一个一个填写sid和serial#十分的繁琐,应该在查询被锁对象的同时拼凑出多条的杀会话语句,以分号分隔,一起复制下来,然后就可以批量的执行了。 1.SELECT'alter system kill session '''|| c.sid ||''||','|| c.serial# ||''';',2. a.object_id, a.session_id, b.object_name, c.*3. FROMv$locked_object a, dba_objects b, v$session c4. WHEREa.object_id = b.object_id5. ANDa.SESSION_ID = c.sid(+)6. ANDschemaname ='Unmi'7. ORDERBYlogon_time


文章标题:如何杀死oracle会话 杀掉oracle会话
转载来于:http://pwwzsj.com/article/hhgdph.html