2017-06-09 12 views
1

Oracle DB(バージョン12c)からユーザーを削除しようとしていますが、それを動作させることはできません。私が得ているエラーは次のとおりです。切断されたOracleユーザーを削除できません

ORA-01940: cannot drop a user that is currently connected 

当然、私は周りを見回し、強制的にセッションを切断して終了させる方法を見つけました。

select s.sid, s.serial#, status, s.username 
from v$session s 
where username = 'user_i_want_to_drop'; 

し、クエリからの値を使用して、自然に

alter system kill session '<sid>,<serial#>' IMMEDIATE; 

を使用することによってのみ、アクティブなセッションを殺した:だから私は、クエリを使用していました。

再度クエリを実行すると、期待どおり空になります。しかし、私はまだユーザーを落として、同じエラーメッセージを得ることはできません。

gv$sessionでクエリを実行すると、そのユーザーの2つのセッションが表示されることに気付きました。しかし、私は上記で使用したalter system kill sessionステートメントを使用してそれらを殺すことはできません。

私はここで何が欠けていますか?

答えて

2

他のセッションは、クラスタの別のインスタンスに接続されています。

このように、あなたのgv$sessionクエリにinst_idを追加します。

select sid,serial#,inst_id 
from gv$session 
where username = 'user_i_want_to_drop'; 

を次に、このように、alter system kill sessionコマンドでinst_idを含める:

alter system kill session '<sid>,<serial#>,@<inst_id>' immediate; 

例えば、

alter system kill session '15,1891,@1' immediate; 
+1

感謝あなた、それはそれでした! – padrino

関連する問題