AUTOMATIC KILL SNIPED SESSIONS IN RAC DATABASE

Muchas veces surge la necesidad de killear de manera automatica las sessiones en estado SNIPED basado en un periodo de tiempo, para lo cual podemos usar el siguiente procedure, el cual esta adaptado para BDs RAC.

1.-Procedure que killea todas las sessiones en estado SNIPED de una BD RAC.

CREATE OR REPLACE PROCEDURE KILL_SNIPED_SESSIONS AS
BEGIN
FOR cur_rec IN (select ‘alter system disconnect session ”’ || sid || ‘, ‘ || serial# || ‘, @’|| inst_id || ”’ immediate’ AS ddl
from gv$session
where status=’SNIPED’
)
LOOP
BEGIN
EXECUTE IMMEDIATE cur_rec.ddl;
EXCEPTION
WHEN OTHERS THEN
null;
RAISE;
END;
END LOOP;
END;
/

 

2.-Se schedula el procedure usando job scheduler para que se ejecute cada hora.

BEGIN
DBMS_SCHEDULER.create_job (
job_name => ‘KILL_SNIPED_SESSIONS_JOB’,
comments => ‘Mata sesiones en estado SNIPED cada hora by JP.’,
job_type => ‘PLSQL_BLOCK’,
job_action => ‘BEGIN sys.KILL_SNIPED_SESSIONS; END;’,
start_date => SYSTIMESTAMP,
repeat_interval => ‘freq=HOURLY;interval=1’,
enabled => TRUE);
END;
/

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s