Cancelar Sesiones con scripts en RDS AWS

Cancelar Sesiones con scripts en RDS AWS

Cuando tenemos bases de datos oracle en AWS en momentos nos piden cerrar todas las sesiones INACTIVE o ACTIVE, cuando es una es muy facil, pero cuando son muchas sesiones se debe recurrir a instrucciones que nos ayuden a ganar tiempo.

SQL> select s.username, s.status, count(1) from v$process p, v$session s where paddr(+)=addr group by s.status, s.username order by 1;

USERNAME        STATUS   COUNT(1)
------------------------------ -------- ----------
AWSDBA        ACTIVE 1
AWSDBA        INACTIVE 1
APP            INACTIVE 30
RDSADMIN        INACTIVE 1

Podemos utilizar el script con DISCONNECT
SQL> select status,OSUSER,USERNAME,'EXEC rdsadmin.rdsadmin_util.disconnect('||''||SID||','||serial#||''||' );  ' cadena  from v$session  where status like '%&STATUS%' AND USERNAME  like '%&USER%' ;


INACTIVE    jboss APP
SQL> EXEC rdsadmin.rdsadmin_util.disconnect(3866,5704 );


Podemos utilizar el script con KILL
SQL> select status,OSUSER,USERNAME,'begin rdsadmin.rdsadmin_util.kill(sid=> '||''||SID||',serial =>'||serial#||''||' );end;  ' cadena  from v$session  where status like '%&STATUS%' AND USERNAME  like '%&USER%' ;

SQL> begin rdsadmin.rdsadmin_util.kill(51,59312,'IMMEDIATE');end;
  2  /