Home > Database > Mysql Tutorial > body text

杀掉(kill)Oracle中会话或死锁

WBOY
Release: 2016-06-07 17:05:09
Original
983 people have browsed it

可以以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。用下面的语句查询被锁的对象,可以带上更多

-- 根据机器名称、SQL_HASH_VALUE过滤特殊的会话,并形成批量kill脚本

SELECT 'alter system kill session ''' || c.sid || '' || ',' || c.serial# ||''';'
FROM v$session c  
WHERE c.MACHINE='hffwbz1' and c.SQL_HASH_VALUE='2639167965'

--可以以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。用下面的语句查询被锁的对象,可以带上更多约束条件,,如schemaname等更精确的匹配。

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(+)   

--杀Seesion的SQL语句语法如下:

alter system kill session 'sid, serial#'   

--如上面查出来的一条记录的sid是53, serial#为663,就执行以下的语句

alter system kill session '53,663'  

--拼凑kill语句的方式如下,下面加了一个过滤条件和一个排序,杀除真正关心的表,并且着重注意超时时间过长的会话。

SELECT 'alter system kill session ''' || c.sid || '' || ',' || c.serial# ||''';',  
       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(+)  
   AND schemaname = 'Unmi'  
ORDER BY logon_time

linux

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!