Oracleで特定のセッションを強制終了しようと ALTER SYSTEM KILL SESSION ‘xx,xxxxx’ IMMEDIATE を実行したのに、STATUS状態が KILLED のまま残り動き続けてしまうことが時々あります。
「よくあること」だそうですが。。。
そんな時は、OSの kill コマンドでセッションを強制終了させる方法が次の一手のようです。
手順
まずは該当のセッションのプロセスID(OS)を確認しますので下記SQLを実行。
SELECT p.spid, s.sid, s.serial#, s.username, s.status, s.program, s.machine, s.terminal, s.logon_time FROM v$session s, v$process p
spid の値がプロセスIDとなります。例えば今回は yyyyy とします。
次にOSの kill コマンドでセッションを強制終了します。
通常の kill yyyyy では恐らく停止できないので、 -9 オプションを付けて強制終了とします。
# kill -9 yyyyy
これで残っていたセッションが強制終了されたはずです。