バッドノウハウ

2016/12/27

何様

薬局に水銀体温計回収箱あったんですが今まで気づかなかっただけで
他のところにもあるんでしょうか。ごきげんよう。

OracleでSELECT ~ FOR UPDATEのロックを強制解除する方法

(1) セッションを削除する

SELECT SID, SERIAL#, PROGRAM, TERMINAL, OSUSER, STATUS FROM V$SESSION
WHERE SID = ANY(SELECT SID FROM V$LOCK WHERE TYPE IN ('TX', 'TM'));

↓SIDとSERIAL#を以下のSQLに代入して実行

ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

ORA-01031: 権限が不足しています。 ※要dba権限

ガッデム!

(2) セッションのプロセスを強制終了する

SELECT S.SID, S.SERIAL#, P.SPID, S.PROGRAM, S.TERMINAL, S.OSUSER, S.STATUS
FROM V$PROCESS P, V$SESSION S WHERE P.ADDR = S.PADDR;

↓サーバーOSでSPIDを以下のコマンドに代入して実行

>TASKKILL /PID SPID

プロセス "SPID" が見つかりませんでした。

Shit!!!



(3) ORAKILLコマンドでプロセスを終了する

SELECT S.SID, S.SERIAL#, P.SPID, S.PROGRAM, S.TERMINAL, S.OSUSER, S.STATUS
FROM V$PROCESS P, V$SESSION S WHERE P.ADDR = S.PADDR;

↓サーバーOSでSPIDを以下のコマンドに代入して実行

>ORAKILL ORCL SPID

Kill of thread id SPID in instance ORCL successfully signalled.

…あれ? successfullyって出たのにセッション消えてない…。

シグナル送信してから実際にkillされるまで少し待つ

やっとできた…。

ソーシャル/購読

このブログを検索

コメント

ブログ アーカイブ