ORACLE 查看锁的表和释放锁
ORACLE EBS 操作某一个 FORM 界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码 代码如下:
--锁表查询 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;
找到被锁定的表,解锁 复制代码 代码如下:
--释放SESSION SQL: --alter system kill session 'sid, serial#'; ALTER system kill session '23, 1647';
ORA-00054:资源正忙,要求指定 NOWAIT
问题回顾及原因:
创建索引的时候报错 ORA-00054: resource busy and acquire with NOWAIT specified
解决步骤:
1:等待其他会话释放资源 2:找出占用资源的会话,并删除 3:重启数据库
原理分析:
1:创建索引时会产生的锁 2:dml 语句会产生的锁 3:索引创建时加上关键字 online时产生的锁
找出占用资源的会话,并删除
1:找出所有被锁的对象,定位出哪个会话占用
select l.session_id,o.owner,o.object_name from v$locked_object l,dba_objects o where l.object_id=o.object_id
结果:
session_id owner object_name 158 SA TEST_1 146 SA TEST_1 131 SA TEST_3 136 SA TEST_2
对比想要创建的索引,定位哪些会话需要被删除
2:找出所有照成锁的会话
select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;
结果:
username sid serial# logon_time SA 158 15184 2014/12/4 14:55:59 SA 146 8229 2014/12/4 15:23:22 SA 136 14314 2014/12/4 16:09:59 SA 131 54 2014/12/4 16:10:06
3:kill 所有占用资源的会话
命令形式:
alter system kill session 'sid,serial#';
占用 test_1 的资源的会话:
alter system kill session '158,15184'; alter system kill session '146 ,8229';
Oracle 解锁,解决“ora00054:资源正忙”错误
一.处理步骤:
1.获取被锁对象的 session_id
SELECT session_id FROM v$locked_object;
2.通过 session_id 获取 v$session 的 sid 和 serial#
SELECT sid, serial#, username, osuser FROM v$session where sid = session_id;
3.终止相关进程。
ALTER SYSTEM KILL SESSION 'sid,serial';
二.示例:
SQL> select session_id from v$locked_object; SESSION_ID ---------- 141
SQL> SELECT sid, serial#, username, osuser FROM v$session where sid = 141; SID SERIAL# USERNAME OSUSER ---------- ---------- ------------------------------ ------------------------------ 141 41464 VC VC02\Admin
SQL> ALTER SYSTEM KILL SESSION '141,41464'; System altered
SQL> select session_id from v$locked_object; SESSION_ID ----------
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于