Ainda não funcionou.... Criei o script q vc usou, e rodou perfeitamente ao ser executado com o usuário oracle no linux, porém ao ser chamado pelo JOB, não rodou. E é exatamente isso que acontece com o meu script!!
Ele considera o JOB como rodando, no entanto, não faz o que deveria. É como se desse um erro no sistema operacional que trancasse o procedimento e não desse retorno ao PLUS, q considera o processo em andamento... mas q na verdade não está fazendo nada!! Tenho que matar o processo (kill -9 [nro]), pra não permanecer rodando eternamente. dsv> select job_name, enabled, state from user_scheduler_jobs; JOB_NAME ENABL STATE ------------------------------ ----- --------------- BACKUP_DESENV_JOB TRUE SCHEDULED TEST_SHELL TRUE RUNNING A permissão está total (chmod 777) tanto para o diretótio quanto para o arquivo que estou tentando executar (pck_backup.sh)!! --- Em [email protected], Marcio Portes <[EMAIL PROTECTED]> escreveu > > Vamos a um exemplo completo. > > Primeiro um script que, quando executa, atualiza um arquivo chamado "executou" com a data do momento. > > [EMAIL PROTECTED] bin]$ pwd > /home/marcio/bin > [EMAIL PROTECTED] bin]$ cat test_shell.sh > #!/usr/bin/ksh > # > > echo `date` >> /tmp/executou > > Verifique se o usuário do oracle no sistema operacional tem acesso ao script. > > [EMAIL PROTECTED] bin]$ su - oracle > Password: > [EMAIL PROTECTED] ~]$ > [EMAIL PROTECTED] ~]$ ~marcio/bin/test_shell.sh > [EMAIL PROTECTED] ~]$ ~marcio/bin/test_shell.sh > [EMAIL PROTECTED] ~]$ > [EMAIL PROTECTED] ~]$ cat /tmp/executou > Tue Jan 24 00:03:04 BRST 2006 > Tue Jan 24 00:03:05 BRST 2006 > [EMAIL PROTECTED] ~]$ > > Isso significa que o oracle, usuário do sistema operaciona dono do oracle 10g da minha instalação tem permissão e > consiguiu executar o script por 2 vezes, gerando o arquivo /tmp/executou com os respectivos horários. > > Agora, vamos criar o job para executar de 2 em 2 minutos. > > SQL> begin > 2 dbms_scheduler.create_job > 3 ( > 4 job_name => 'TEST_SHELL', > 5 job_type => 'EXECUTABLE', > 6 job_action => '/home/marcio/bin/test_shell.sh', > 7 repeat_interval => 'FREQ=MINUTELY; INTERVAL=2', > 8 end_date => trunc(sysdate) + 30/24/60, > 9 enabled => true, > 10 comments => 'Teste para execucao de shell linux' > 11 ); > 12 end; > 13 / > > PL/SQL procedure successfully completed. > > > E verificar na user_scheduler_jobs. > > SQL> select job_name, run_count, to_char(end_date, 'hh24:mi:ss') end_date, > 2 to_char(next_run_date, 'hh24:mi:ss') next_run_date > 3 from user_scheduler_jobs > 4 / > > JOB_NAME RUN_COUNT END_DATE NEXT_RUN > ------------------------------ ------------- -------- -------- > TEST_SHELL 0 00:30:00 00:18:58 > > 1 row selected. > > SQL> / > > JOB_NAME RUN_COUNT END_DATE NEXT_RUN > ------------------------------ ------------- -------- -------- > TEST_SHELL 1 00:30:00 00:20:58 > > 1 row selected. > > > Ok, rodou o primeiro. > > SQL> !cat /tmp/executou > Tue Jan 24 00:18:58 BRST 2006 > > SQL> / > > JOB_NAME RUN_COUNT END_DATE NEXT_RUN > ------------------------------ ------------- -------- -------- > TEST_SHELL 2 00:30:00 00:22:58 > > 1 row selected. > > E agora segue até meu end_date ser alcançado! > > SQL> !cat /tmp/executou > Tue Jan 24 00:18:58 BRST 2006 > Tue Jan 24 00:20:58 BRST 2006 > > SQL> / > > JOB_NAME RUN_COUNT END_DATE NEXT_RUN > ------------------------------ ------------- -------- -------- > TEST_SHELL 3 00:30:00 00:24:58 > > 1 row selected. > > SQL> !cat /tmp/executou > Tue Jan 24 00:18:58 BRST 2006 > Tue Jan 24 00:20:58 BRST 2006 > Tue Jan 24 00:22:58 BRST 2006 > > SQL> / > > JOB_NAME RUN_COUNT END_DATE NEXT_RUN > ------------------------------ ------------- -------- -------- > TEST_SHELL 3 00:30:00 00:24:58 > > 1 row selected. > > SQL> / > > JOB_NAME RUN_COUNT END_DATE NEXT_RUN > ------------------------------ ------------- -------- -------- > TEST_SHELL 5 00:30:00 00:28:58 > > 1 row selected. > > SQL> !cat /tmp/executou > Tue Jan 24 00:18:58 BRST 2006 > Tue Jan 24 00:20:58 BRST 2006 > Tue Jan 24 00:22:58 BRST 2006 > Tue Jan 24 00:24:58 BRST 2006 > Tue Jan 24 00:26:58 BRST 2006 > > SQL> / > > no rows selected > > SQL> !cat /tmp/executou > Tue Jan 24 00:18:58 BRST 2006 > Tue Jan 24 00:20:58 BRST 2006 > Tue Jan 24 00:22:58 BRST 2006 > Tue Jan 24 00:24:58 BRST 2006 > Tue Jan 24 00:26:58 BRST 2006 > Tue Jan 24 00:28:58 BRST 2006 > > > > evandrobarbian wrote: > > --- Em [email protected], "evandrobarbian" > > <[EMAIL PROTECTED]> escreveu > >> > >> Não consegui rodar um executável via JOB, do Scheduler do 10g!! > >> Se chamo um procedimento do banco funciona, mas ao chamar um shel > > do > >> Linux, simplesmente não dá erro, e nem faz o que deveria... > >> Rodando o shell via linha de comando no linux funciona beleza. > >> Será alguma incompatibilidade, bug??? Não sei, já tentei de tudo e > > não > >> consigo resolver o problema... estou rodando via CRONTAB por > > enquanto, > >> mas queria fazer uso do SCHEDULER... > >> Segue o script de criação do JOB... e aguardo a ajuda de alguém: > >> > >> DBMS_SCHEDULER.create_job ( > >> job_name => 'BACKUP', > >> job_type => 'EXECUTABLE', > >> job_action => '/usr/local/bin/pck_backup.sh', > >> start_date => SYSTIMESTAMP, > >> repeat_interval => 'freq=daily; byhour=1', > >> end_date => NULL, > >> enabled => TRUE, > >> comments => 'Job para Backup automático.'); > > -- > Marcio Portes > http://mportes.blogspot.com > -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/[email protected]/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED] __________________________________________________________________ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
