今天把DataStage导一个大表,一不小心把表给锁住了........
其实解锁并不复杂,用PL/SQL可以很方便解锁,可以用两种方式得到目前被锁住的表。第一种是,直接从,Tools->Session里面查看,里面有很多的Session和进程,下面有一个Lock的Tab,选中那个Tab,然后一条一条地去上面Session,如果Lock这一栏有数据,就说明被锁住了,在Objec_Name里面可以看到表名。
如果是自己的表,可以得到Sid和Serial#,接着执行以下语句就可以解锁:
alter system kill session 'sid,serial#';
第二种方法是用语句得到详细的被锁住的表的信息,语句如下:
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT Null
可以从object_name中看到表名,以及其它的信息,再用上面提到的解锁语句,就可以了!!!
分享到:
相关推荐
oracle表 解锁及其详细细节。
数据库死锁的概念, 所谓...Oracle对于“死锁”采取的策略是回滚其中一个事务,让另外一个事务顺利进行。 对于锁死的会话,我们可以直接删掉该会话,等事物回滚完成,也可以找出锁死进程的spid,从服务器中删掉该进程。
Oracle的锁表与解锁
B.ORACLE_USERNAME 锁表用户名, decode(D.type, 'XR', 'NULL', 'RS', 'SS(Row-S)', 'CF', 'SS(Row-S)', 'TM', 'TABLE LOCK', 'PW', 'TABLE LOCK', 'TO', 'TABLE LOCK', 'TS', 'TABLE LOCK', 'RT', ...
oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁
oracle 解锁表,可以用此字句,对表进行解锁,但是要有相应的权限
oracle用户解锁
oracle用户解锁
Oracle 数据库解锁session方式
oracle解锁语句,常用解锁语句,经过测试实用;oracle解锁语句,常用解锁语句,经过测试实用。
针对oracle数据库 解锁方法 ,个人使用 希望大家能够有所帮助
orale检查锁表,以及对表进行解锁的方式说明
oracle锁表和解锁语句示例。
select object_name,session_id,os_user_name,Oracle_username,process,locked_mode,status from v$locked_object l, all_objects a where l.object_id=a.object_id;
解锁oracle对象
oracle 如何 解锁 语句 执行SQL语句,强行清除oracle的该事务的session,需要注意的是在执行alert语句的时候需要修改sid和serial
ORACLE解锁方法的一点资料分享。
开发环境为xp下pb9.0.3 8836,初次运行需要配置数据库连接,本地库不用填服务器(网络服务名),填好登录名及口令即可
如果存储过程被锁住,可以使用这个存储过程解锁方法