关于数据库中表被锁定时如何操作表

来源:互联网 发布:好玩的配音软件 编辑:程序博客网 时间:2024/06/06 01:49

在对表进行操作时无法完成出现了‘假死’   状态,由于自己也不是很懂,于是查看了资料,总结如下:

--首先查询被锁表

  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;

---通过上面的查询语句会查询到被锁的表,然后进行解锁

   --释放session sql

   --alter system kill session'sid,serial#';

例如:

     alter system kill session'888,5096';

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

--查询锁表
select sess.sid, 
    sess.serial#, 
    lo.oracle_username, 
    lo.os_user_name, 
    ao.object_name, 
    lo.locked_mode 
    from v$locked_object lo, 
    dba_objects ao, 
    v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 
--select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;


--解锁语句
select distinct 'alter system kill session '||''''||sess.sid||','||sess.serial#||''''||';'
    from v$locked_object lo, 
    dba_objects ao, 
    v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 




alter system kill session '2002,7867';
alter system kill session '1923,52030';
alter system kill session '2033,52721';
alter system kill session '1148,49763';
alter system kill session '858,3300';
alter system kill session '2316,22953';
alter system kill session '1259,46393';




原创粉丝点击