Oracle数据库中怎么查询锁表进程以及杀掉进程

作者: bea, black 分类: Oracle数据库 发布时间: 2019-03-28 21:19  阅读: 556 views

在操作数据库的相关过程中,可能经常会碰到一些锁表的情况,这种情况下也许需要查出并杀掉

–(1)锁表查询的代码有以下的形式:

select count(*) from v$locked_object;
select * from v$locked_object;

–(2)查看哪个表被锁:

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

–(3)查看是哪个session引起的:

SELECT B.USERNAME, 'alter system kill session' || ' ' || '''' || B.SID ||',' || B.SERIAL# || '''' || ';' /*,logon_time*/
FROM   V$LOCKED_OBJECT A, V$SESSION B
WHERE  A.SESSION_ID = B.SID
GROUP  BY B.USERNAME, B.SID, B.SERIAL#
--ORDER  BY B.LOGON_TIME;

–(4)杀掉对应进程执行命令:

alter system kill session '100,12453';
alter system kill session '212,5913';
alter system kill session '247,859';
alter system kill session '256,34447';

-其中后边是为sid,前边为serial#.

 

其他的后续再补充


   原创文章,转载请标明本文链接: Oracle数据库中怎么查询锁表进程以及杀掉进程

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读