sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo eliminar todas las sesiones que se conectan a mi base de datos de Oracle?

Esta respuesta está fuertemente influenciada por una conversación aquí: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;

Omito eliminar las sesiones que se originan en el servidor de la base de datos para evitar eliminar las conexiones de Oracle consigo mismo.