一般先查询并找到被锁定的表,解锁代码如下:
--释放SESSION?SQL:?
--alter?system?kill?session?'sid,?serial#';?
在对指定表做append操作,其他再做truncate时候,会产生锁表,如下验证步骤,
①.、创建测试表,
select b.object_name, t.*
from v$locked_object t, user_objects b
where t.object_id = b.object_id
① 先通过top命令查看产用资源较多的spid号
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
select sql_text
from v$sqltext_with_newlines
where hash_value = hash_value
order by piece;
也可直接使用:
select a.*,b.SQL_TEXT from (
) a,v$sql b
where a.sql_id? = b.SQL_ID(+)
Alter system kill session 'SID,SERIAL#'
解锁:
①查询哪些对象被锁:
? select object_name,machine,s.sid,s.serial#
? from v$locked_object l,dba_objects o ,v$session s
? where l.object_id = o.object_id and l.session_id=s.sid;
? select spid, osuser, s.program
? from v$session s,v$process p
查询锁表:SELECT l.session_id sid,
? ? s.serial#,
? ? l.locked_mode,
? ? l.oracle_username,
? ? l.os_user_name,
? ? s.machine,
? ? s.terminal,
? ? o.object_name,
? ? s.logon_time FROM? v$locked_object l,
? ? all_objects? ? ? o,
? ? v$session? ? ? ? s WHERE l.object_id = o.object_id ANd l.session_id = s.sid ORDER BY sid,
? ? s.serial#;
解锁:ALTER system KILL session 'sid,serial#';
查询锁住原因:SELECT b.sid oracleID,b.username 登录Oracle用户名,b.serial#,spid 操作系统ID,paddr,?
sql_text 正在执行的SQL,b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c?
以上就是土嘎嘎小编为大家整理的oracle锁表后怎么解相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!