Search code examples
oracle-databasesessionsqlpluskilldatabase-administration

How can I kill all sessions connecting to my oracle database?


I need to quickly (and forcibly) kill off all external sessions connecting to my oracle database without the supervision of and administrator.

I don't want to just lock the database and let the users quit gracefully.

How would I script this?


Solution

  • This answer is heavily influenced by a conversation here: http://www.tek-tips.com/viewthread.cfm?qid=1395151&page=3

    ALTER SYSTEM ENABLE RESTRICTED SESSION;
    
    begin     
        for x in (  
                select Sid, Serial#, machine, program  
                from v$session  
                where  
                    machine <> 'MyDatabaseServerName'  
            ) loop  
            execute immediate 'Alter System Kill Session '''|| x.Sid  
                         || ',' || x.Serial# || ''' IMMEDIATE';  
        end loop;  
    end;
    

    I skip killing sessions originating on the database server to avoid killing off Oracle's connections to itself.