Home > Database > Mysql Tutorial > 当Oracle Session被锁死的时候

当Oracle Session被锁死的时候

WBOY
Release: 2016-06-07 16:45:59
Original
1377 people have browsed it

经常出现一个问题,oracle的某张表突然无法更新了,无论是通过pl/sql Developer 还是通过sqlplus都无法更新,执行update语句或者执行

经常出现一个问题,Oracle的某张表突然无法更新了,无论是通过pl/sql Developer 还是通过sqlplus都无法更新,执行update语句或者执行select * from table_name for update 都一样,一直处于执行状态,无法完成,这时候我就猜想是不是session被锁死了呢?带着这个问题,我们写一条SQL语句:

--锁表查询SQL

SELECT object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid;

执行结果如下:

当Oracle Session被锁死的时候

可以看到这一条数据,也就是说,存在那么一个表被锁死了,这时候呢,我们也确认了,之前无法执行update的这张表确实是因为被锁死了所以无法完成更新操作.

如何释放呢?继续执行一条SQl 语句:

ALTER system kill session '601, 802';

当Oracle Session被锁死的时候

可以看到601 和802是查询到SID 和Serial ,格式为:alter system kill session 'sid, serial#'; 执行完成之后:

当Oracle Session被锁死的时候

没有了被锁死的session了,这时候再去执行我们的表更新操作,可以看到,更新已经没有问题了.

本文永久更新链接地址:

linux

Related labels:
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