Pular para o conteúdo
  • Este tópico contém 10 respostas, 4 vozes e foi atualizado pela última vez 14 anos atrás por MarceloPit.
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #101605
    MarceloPit
    Participante

      Boa Tarde,

      Preciso de uma schedule para rodar imediatamente ao ser criada para executar um SQL Loader no Banco, pois tenho o arquivo lá no servidor do banco e como ele é muito grande, não gostaria de rodar o loader na estação e sim no servidor de banco de dados dirteto.
      Alguem poderia me ajudar.

      Ja tentei criar uma procedure que executa um comando shell com o exemplo abaixo, mas não funcionou.

      — Shell Script.
      DBMS_SCHEDULER.create_program (
      program_name => ‘test_executable_prog’,
      program_type => ‘EXECUTABLE’,
      program_action => ‘/u01/app/oracle/dba/gather_scott_stats.sh’,
      number_of_arguments => 0,
      enabled => TRUE,
      comments => ‘Program to gather SCOTT”s statistics us a shell script.’);

      Pensei também em criar uma procedure que execute um loader ou um shell, mas tmb não da certo, pois o primeiro caso e impossível e o segundo eu estou com dificultades na implementação

      Agradeço muito pela força, caso alguém possa me ajudar 😳

      #101607
      rman
      Participante

        @MarceloPit

        Não entendi a necessidade do schedule… Você precisa agendar um determinado horário para executar ?

        O problema a ser resolvido é executar o sql loader no servidor sem precisar baixar o arquivo de carga na máquina do cliente ?

        Qual é o sistema operacional do servidor e do cliente ?

        #101612
        MarceloPit
        Participante

          A necessidade é a seguinte, preciso carregar um arquivo no banco de dados, como o arquivo é muito grande, toda vez que rodo o sql loader na minha estação, o Loader leva aproximadamente 4 hs, mas qd rodo direto la no servidor do banco, a execução leva menos de 15 min.
          A necessidade é que eu quero fazer uma aplicação que realize esse loader automaticamente direto no servidor para ganhar tempo.
          Pensei nessa solução, mas caso tenha uma melhor, agradeço!
          O sistema é Linux

          #101614
          rman
          Participante

            @MarceloPit

            Utilizar uma conexão SSH no servidor, e rodar o sql loader já não resolve o problema ?

            #101615
            MarceloPit
            Participante

              Hj eu ja faço assim, mas quero automatizar em uma aplicação para que o proprio usuario salve o arquivo la na pasta do servidor e execute um programa na maquina dele para rodar isso, pois hj ele fica na dependência que eu faça o loader.

              #101618
              fabiogalera
              Participante

                MarceloPit,

                Existe diversas maneiras que voce poderia realizar, isso ira depender diretamente de como as coisas estao sendo feitas, de todo o processo, dos acessos que as pessoas tem, etc.

                Pelo que noto, sua versao de Base de Dados parece ser 10g ou 11g, o que poderia ser utilizado o DBMS_SCHEDULER:


                BEGIN
                DBMS_SCHEDULER.CREATE_JOB (
                job_name => 'test_executable_prog',
                job_type => 'EXECUTABLE',
                job_action => '/u01/app/oracle/dba/gather_scott_stats.sh',
                start_date => sysdate,
                repeat_interval => 'FREQ=DAILY; INTERVAL=1',
                enabled => TRUE,
                comments => 'Testando o CREATE JOB');
                END;
                /

                Outros meios existem, ate alguns mais faceis, como criar um script em SHELL SCRIPT e schedular ele na crontab, etc.

                =)

                #101683
                MarceloPit
                Participante

                  INFELIZMENTE JÁ HAVIA TENTADO ESSA SOLUÇÃO, MAS CONTINUO TENDO PROBLEMAS, SEGUE O ERRO:

                  ORA-27370: job slave failed to launch a job of type EXECUTABLE
                  ORA-27300: OS system dependent operation:getting external job pid failed with status: 2
                  ORA-27301: OS failure message: No such file or directory
                  ORA-27302: failure occurred at: sjsec 6a

                  #101685
                  felipeg
                  Participante

                    Opa,

                    Poste o job que você criou para que possamos analisar.
                    Se você criou uma program pra chamar pelo job, poste também.

                    Atenciosamente,
                    Felipe.

                    #101693
                    MarceloPit
                    Participante

                      BEGIN
                      DBMS_SCHEDULER.CREATE_JOB (
                      job_name => ‘ZZ_TESTE’,
                      job_type => ‘EXECUTABLE’,
                      job_action => ‘/bdoracle/U04/carga/carga.sh’,
                      start_date => sysdate,
                      repeat_interval => ‘FREQ=DAILY; INTERVAL=1’,
                      enabled => TRUE,
                      comments => ‘Testando o CREATE JOB’);
                      END;

                      ORA-27369: job of type EXECUTABLE failed with exit code: No such process
                      STANDARD_ERROR=”Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL”

                      #101694
                      felipeg
                      Participante

                        Acho que o erro não está no oracle:

                        2 perguntas.

                        • Todas as variáveis de ambiente estão setadas para a execução do script?
                        • Se você executar o mesmo “na mão”, ele funciona?
                        • Apenas por segurança, no início do script está declarado o shell, desse jeito #!/usr/bin/ksh

                        Atenciosamente,
                        Felipe.

                        #101695
                        MarceloPit
                        Participante

                          sim, executando o script na mão funciona perfeitamente.

                        Visualizando 11 posts - 1 até 11 (de 11 do total)
                        • Você deve fazer login para responder a este tópico.