Oracleでロックされているテーブルを問い合わせるユーザーと、ロックされているテーブルを解放する方法

1456 ワード

現在のデータベースでロックされているテーブルと、ロックされているユーザーがロックされているテーブルを、PL/SQLで次のSQL文で問い合わせることができます.
SELECT
  A.OWNER,                        --OBJECT    
  A.OBJECT_NAME,                  --OBJECT  (  )
  B.XIDUSN,
  B.XIDSLOT,
  B.XIDSQN,
  B.SESSION_ID,                   --     session
  B.ORACLE_USERNAME,              --     Oracle   
  B.OS_USER_NAME,                 --              
  B.PROCESS,
  B.LOCKED_MODE, 
  C.MACHINE,                      --          (  :WORKGROUP/UserName)
  C.STATUS,                       --    
  C.SERVER,
  C.SID,
  C.SERIAL#,
  C.PROGRAM                       --              (  :ob9.exe)
FROM
  ALL_OBJECTS A,
  V$LOCKED_OBJECT B,
  SYS.GV_$SESSION C 
WHERE
  A.OBJECT_ID = B.OBJECT_ID
  AND B.PROCESS = C.PROCESS
ORDER BY 1,2 

現在のロックテーブルのアイテムをkillで削除するには、次のコマンドを使用します.
alter system kill session 'sid, serial#'
--  :alter system kill session '57, 10325'