| ロックの解除 |
|
ロックを解除するには、そのロックを保持するセッションを切る必要があります。 セッションを切るには ALTER SYSTEM KILL SESSION 'SID,SERIAL#' を実行します。ロックを保持しているSID,SERIAL#は、V$SESSIONとV$LOCKから取得します。 SELECT SID,SERIAL#,USERNAME,STATUS,SERVER,SCHEMANAME,OSUSER,MACHINE,PROGRAM FROM V$SESSION WHERE SID IN (SELECT SID FROM V$LOCK)セッションのステータスがKILLEDとなり、その後セッション削除され、それに紐付くロックも解除されます。(V$LOCK参照) |
| ロックが解除されない場合 |
|
セッションがKILLEDとなったままで、ロックも解除されない場合は、OSのkill -9コマンドでサーバプロセスをkillする必要があります。 OSのプロセスIDは、V$SESSIONとV$PROCESSから取得します。 SELECT SES.SID, SES.SERIAL#, PROC.SPID, SES.STATUS FROM V$PROCESS PROC, V$SESSION SES WHERE PROC.ADDR = SES.PADDR上記SQLから取得したSPIDをkillします。 killコマンドは以下のように使用します。この場合、spidは12220としています。 kill -9 12220 |