オラクルに接続しているユーザのセッションを強制終了する方法です。
流れとしてはユーザ名からセッションIDとシリアル番号を調べて、
その情報を使ってセッションを切断します。
構文
- (セッションを強制終了する構文)
- ALTER SYSTEM KILL SESSION '<セッションID>,<シリアル番号>';
現在あるセッションのセッションIDとシリアル番号は以下SQLで調べられます
- (セッションIDとシリアル番号を調べるSQL)
- SELECT sid, serial#, username, program FROM v$session;
サンプル
例としてSQL*Plusで接続しているユーザ「TAMA」のセッションを強制終了してみます
①TAMAのセッションIDとシリアルを調べる
- 実行例
- SQL> select sid, serial#, username, program from v$session SQL> where username = 'TAMA' SQL> / SID SERIAL# USERNAME PROGRAM ------- ---------- ------------------------- -------------------------- 95 12327 TAMA ob10.exe 142 1643 TAMA sqlplus.exe
PROGRAM列で接続に使用しているプログラムを確認できます。
(ob10.exeはObjectBrowser、sqlplus.exeはSQL*Plusです。)
この場合TAMAユーザはObjectBrowserとSQL*Plusの2つで接続しているので、
sqlplus.exeとなっている方が対象です。
②SIDとSERIAL#を指定してセッションを強制終了する
- 実行例
- SQL> alter system kill session '142,1643'; システムが変更されました。
これでセッションが強制的に切断されました。
備考
- 重要なセッションを切断しないように十分ご注意の上実行ください。
(本番環境で実行する場合は特にご注意ください。)