Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

detener full export lanzado por crontab

Estas en el tema de detener full export lanzado por crontab en el foro de Oracle en Foros del Web. Tengo un script de full export fullexport.sh exp system/*****@SID full=yes file=backup.dmp log=backup.log 1) si lo ejecuto por consola [oracle@server ~] $ sh fullexport.sh Si quiere ...
  #1 (permalink)  
Antiguo 21/09/2011, 18:15
 
Fecha de Ingreso: octubre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
detener full export lanzado por crontab

Tengo un script de full export

fullexport.sh
exp system/*****@SID full=yes file=backup.dmp log=backup.log

1) si lo ejecuto por consola

[oracle@server ~] $ sh fullexport.sh

Si quiere detenerlo me basta con CRTL + C



2) Pero que pasa si este script se activa por /etc/crontab


59 23 * * * sh /home/oracle/fullexport.sh >/dev/null 2>&1


Como puedo detenerlo ??



muchas gracias
  #2 (permalink)  
Antiguo 22/09/2011, 08:21
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: detener full export lanzado por crontab

Hola General9000,

Podes comentar la linea en el crontab.
Con "crontab -e" lo editas. Si nunca usaste el editor vi puede que tengas otro problema, que es aprender a usarlo. En internet vas a encontrar mucha informacion sobre como usarlo eso no va a ser un problema.

Editas el crontab, con "crontab -e". Le agregar una "#" al comienzo de la linea, para deje de ser una instruccion de ejecucion y pase a ser un comentario, me explico?

Antes ...

Código C:
Ver original
  1. # Script de Full Export
  2. 59 23 * * * sh /home/oracle/fullexport.sh >/dev/null 2>&1

Despues ...

Código C:
Ver original
  1. # Script de Full Export
  2. # 59 23 * * * sh /home/oracle/fullexport.sh >/dev/null 2>&1

O Bien, tambien puedes editar el fullexport.sh, tambien usando el comando vi, y agregarle algun IF que pregunte si son las 11 de la noche, que no continue.

El demonio cron esta para automatizar tareas que no quieres ejecutar o que tienes que ejecutar todos los dias. Pero cuando no necesitas ejecutarla simplemente quitas la linea, borrandola o comentadola.
El servicio del cron debe ser una ayuda siempre, no un problema o estorbo.

Asi que ya sabes... Si la linea en el crontab no te esta ayudando, sacala !!!!

General9000 Exitos.
Saludos,
Mario.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.
  #3 (permalink)  
Antiguo 26/09/2011, 22:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: detener full export lanzado por crontab

Creo que no supe hacerme entender? :)
Sé que comentando la linea nunca se lanzaria.


En el caso que se llegue a ejecutar como podria detenerlo ??

ya que si se lanza por consola es facil detenerlo con Crtl + C
  #4 (permalink)  
Antiguo 27/09/2011, 01:30
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: detener full export lanzado por crontab

Buenas,

Tienes que buscar el proceso en el sistema, haciendo uso de "ps -fea" y una vez tengas localizado el proceso que lanza el full export, hacer un kill -9 con el pid del proceso.

Saludos
  #5 (permalink)  
Antiguo 28/09/2011, 09:35
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Respuesta: detener full export lanzado por crontab

Si es cierto.

No olvides que no solamente tienes que identificar el id de la sesion que corre el fullexport.sh sino tambien el id del proceso de oracle que esta realizando la tarea.
De lo contrario, no cortaras el proceso de export solo lo dejaras "huerfano" sin un proceso id que lo contenga.

Suponiendo que corres el fullexport.sh desde el SO, desde el unix, con el usuario oracle, usando "ps -efa | grep oracle | grep $aquiIdProcesoDeFullExport" y dependiendo del caso, obtendrias cual es el proceso que corre en el motor. Ese que tu cortas usando CRTL + C.

Gracias por la devolucion. Y sigue preguntando si tenes dudas.
Exitos !!!.

Saludos, Mario.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.
  #6 (permalink)  
Antiguo 13/10/2011, 16:34
 
Fecha de Ingreso: octubre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: detener full export lanzado por crontab

Muchas gracias

guardianglorioso y MarioHeredia por sus respuestas

saludos,

  #7 (permalink)  
Antiguo 14/10/2011, 02:59
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: detener full export lanzado por crontab

La secuencia lógica sería KILL SESSION + KILL -9, pero en ocasiones si haces el KILL -9 se cierra la sesion en base de datos. Se puede, pero no debe hacerse......
  #8 (permalink)  
Antiguo 19/10/2011, 16:34
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 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
  #9 (permalink)  
Antiguo 20/10/2011, 03:02
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: detener full export lanzado por crontab

Un pequeño añadido a lo que pone el compañero Matanga.

En lugar de

alter system kill session 'valor_de_sid,valor_de_serial#';


Poner

alter system kill session 'valor_de_sid,valor_de_serial#' immediate;

El resultado va a ser el mismo, pero al añadir el IMMEDIATE, el retorno va a ser inmediato.

Hay ocasiones en no se puede matar la sesión por que está haciendo rollback o similar y se queda pensando un ratín hasta que sale lo de SESSION MARKED FOR KILL, con el IMMEDIATE, el mensajito va a ser inmediato.
  #10 (permalink)  
Antiguo 25/11/2011, 09:29
 
Fecha de Ingreso: octubre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: detener full export lanzado por crontab

Estimados matanga y jc3000

muchas gracias por colaborar con más respuestas

saludos,

Etiquetas: crontab, detener, export, full
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.