17 Nisan 2008 Perşembe

ORA-01940 (KILL SESSION)

ORA-01940 cannot drop a user that is currently connected
(HATASI İÇİN OTURUMU KILL ETMEK LAZIM)

SQL>conn sys as sysdba

SQL>GRANT alter system TO orhan;

SQL>select sid, serial#, username from v$session;

SQL>ALTER SYSTEM KILL SESSION '122,25574' IMMEDIATE;

SQL> drop user orhan cascade;

4 yorum:

aliates dedi ki...

select 'alter system kill session '''||sid||','||serial#||''''||' immediate'||';' from v$session

sql cümleciği ile otomatik kill script'i üretebilir miyiz?

tek tek kill etmek uzun sürüyor.

ordba-Orhan Eripek dedi ki...

eğer kill etmek istediğiniz oturum sayısı fazla ise tabiki bu şekilde birçok 'alter system kill...' sql scriptlerini çıkarabilirsin ali.
:)

aliates dedi ki...

SELECT 'kill -9 ' || p.spid || ' # ' || s.username || ' ' || s.program
FROM v$session s, v$process p
WHERE s.paddr = p.addr
AND s.username IS NOT NULL
AND s.username = 'my_machine_name'
AND s.osuser = 'os_user_name'
AND s.last_call_et / 3600 > 1
AND s.status = 'INACTIVE'
ORDER BY logon_time;
/

--son bir saatdir inactive durumda olan session'ları unix üzerinden kill eden bir script hazırladım çalışır mı bu acaba?
--denemeden önce size sormak istiyorum istemeden yanlış sessionları kill etmeyeyim?

ordba-Orhan Eripek dedi ki...

Ali bakıyorum da yine kill etme peşindesin :)
olur canım bu şekilde unix üzerinde inactive durumundaki session'ları kill edebilirsin,onaylanmıştır :)