Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/10/2011, 16:34
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: detener full export lanzado por crontab

Cita:
La secuencia lógica sería KILL SESSION + KILL -9......
Estoy de acuerdo, identificar la sesión y terminarla dentro de la base de datos es lo primero. En el 99% de los casos, el kill session finaliza correctamente el proceso export / import en el sistema operativo, y para el 1% restante, donde quedan huérfanos, se usa el kill -9.

La información necesaria para terminar una sesión se obtiene con la consulta:

Código:
select s.sid, s.serial#, s.username,
          s.osuser, p.spid, s.program
from	v$session s ,v$process p
where s.paddr = p.addr
Si filtras por s.username='usuario_del_export', s.program='exp' y s.osuser='usuario_del_cron' tendrás el valor de s.sid y s.serial# para ejecutar el comando:

Código:
alter system kill session 'valor_de_sid,valor_de_serial#';
En este punto, es seguro que el export se detiene, pero en caso de quedar el proceso huérfano, debes hacer un kill tomando el valor de p.spid

Código:
kill -9 valor_de_spid
Nota al margen, todo esto es válido para el export / import tradicional, en el export / import con datapump (nuevo en 10g) se debe detener el proceso con el procedimiento DBMS_DATAPUMP.STOP_JOB().

Saludos

Última edición por matanga; 19/10/2011 a las 16:57