使用管理员权限登陆数据库纸箱一下步骤:
--数据库用户被锁解锁方法
alter user 被锁用户名 account unlock
--数据库表被锁
方法一:
select * from v$locked_object ; --查询出sid和serial#执行下面语句
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; --查询出sid和serial#执行下面语句
--执行以下脚本解锁
alter system kill session 'sid,serial#';
--或者更具一下SQL查询那张表被锁
SELECT /*+ rule */
LPAD( ' ', DECODE(L.XIDUSN, 0, 3, 0)) || L.ORACLE_USERNAME USER_NAME,
O.OWNER,
O.OBJECT_NAME,
O.OBJECT_TYPE,
--DECODE(L.TYPE, 'TM ', 'TABLE LOCK ', 'TX ', 'ROW LOCK ', NULL) LOCK_LEVEL,
Decode(L.Locked_Mode,0, '[0] none ',
1, '[1] null 空 ',
2, '[2] Row-S 行共享(RS):共享表锁,sub share ',
3, '[3] Row-X 行独占(RX):用于行的修改,sub exclusive ',
4, '[4] Share 共享锁(S):阻止其他DML操作,share ',
5, '[5] S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive ',
6, '[6] exclusive 独占(X):独立访问使用,exclusive ',
'[ '||L.Locked_Mode|| '] Other Lock ') LockMode,
S.SID,
S.SERIAL#,
S.sql_address,
S.sql_hash_value
FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S
WHERE L.OBJECT_ID = O.OBJECT_ID
AND L.SESSION_ID = S.SID
ORDER BY O.OBJECT_ID, XIDUSN DESC;