第一步:查询被锁表的所关联的session信息
SELECT A.OWNER,
A.OBJECT_NAME,
B.XIDUSN,
B.XIDSLOT,
B.XIDSQN,
B.SESSION_ID,
B.ORACLE_USERNAME,
B.OS_USER_NAME,
B.PROCESS,
B.LOCKED_MODE,
C.MACHINE,
C.STATUS,
C.SERVER,
C.SID,
C.SERIAL#,
C.PROGRAM
FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C
WHERE (A.OBJECT_ID = B.OBJECT_ID)
AND (B.PROCESS = C.PROCESS)
第二步:释放Session
alter system kill session 'sid, serial#'
alter system kill session '379, 21132'
alter system kill session '374, 6938'
不过这种情况只适合实体表,如果临时表被锁住,好像在V$Locked_OBJECT表中查不到记录
本文介绍了解决Oracle数据库中表锁问题的步骤。首先通过查询锁定表关联的会话信息来定位问题,然后使用ALTER SYSTEM KILL SESSION命令来释放锁定会话。文中还特别指出此方法不适用于临时表。
459

被折叠的 条评论
为什么被折叠?



