使用Oracle時(shí),發(fā)現(xiàn)有表被鎖,又不知道是誰(或者哪個(gè)程序)鎖的,怎么辦 ?
兩步走:
1、查找出被鎖對象的會(huì)話ID和序列號
執(zhí)行如下SQL:
-- 查詢出被鎖對象,并提供 kill 腳本SELECT S.SID, S.MACHINE, O.OBJECT_NAME, L.ORACLE_USERNAME, L.LOCKED_MODE, S.OSUSESR, 'ALTER SYSTEM KILL SESSION '''|| S.SID || ', '|| S.SERIAL#||''';' AS KILL_COMMAND FROM V$LOCKED_OBJECT L, V$SESSION S, ALL_OBJECTS O WHERE L.SESSION_ID=S.SID AND L.OBJECT_ID=O.OBJECT_ID
2、KILL
復(fù)制出第1步查詢結(jié)果中的 KILL_COMMAND 字段值,執(zhí)行。
-- kill 的基本語法ALTER SYSTEM KILL SESSION '$SID, $SERIAL#';