Pular para o conteúdo
Visualizando 12 posts - 1 até 12 (de 12 do total)
  • Autor
    Posts
  • #100099
    rman
    Participante

      Bom dia !

      Recebi um alerta no EM do Oracle 10g sobre objetos inválidos no schema. O alerta foi disparado ontem, hoje verifiquei os objetos e hoje não possui nenhum objeto inválido.

      Como posso identificar esses objetos que temporariamente ficaram invalidos ?

      #100100
      Ishii
      Participante

        Olá,

        Trabalhei com um sistema que tinha cerca de 3000 procedures e umas 1500 packages além de outros, eventualmente no Oracle 9i e no 10g apareciam uns objetos inválidos que eram recompilados posteriormente. Cheguei a criar uma trigger de auditoria para tentar descobrir a razão, nos logs, aparentemente na utilização de uma package tinha o seguinte comando:

        alter package compile;

        Nesta package não tinha nada de especial ou diferente e o pior… nem sempre era o mesmo objeto, mas pelo menos eram sempre packages…

        Como havia uma dependência dessas packages com outros objetos, vários ficavam inválidos sem razão…

        Em alguns casos, as packages dependentes apareciam nos logs da auditoria com esse comando de recompilação, como se estivessem voltando ao seu status de válido. Nunca consegui descobrir a razão, pedimos para abrir um chamado na Oracle, mas como o único registro era o log e como era ambiente de produção, não dava para deixar os mesmo inválidos até abrir o chamado…

        Se você quiser, mande-me um DM e eu te envio a trigger de audit.

        []s Ishii

        #100102
        rman
        Participante

          Opa, eu quero sim…

          DM ???

          #100103
          Doug
          Participante

            DM = direct message (twitter) rsrs

            Mande uma msn particular para ele através do forum para ele lhe enviar o script.

            Ja tentou

            select count(*) from all_objects where status=’INVALID’;

            abs

            #100105
            rman
            Participante

              [quote=”Doug”:1mdxjjgs]DM = direct message (twitter) rsrs

              Mande uma msn particular para ele através do forum para ele lhe enviar o script.

              Ja tentou

              select count(*) from all_objects where status=’INVALID’;

              abs[/quote]

              Sim Doug, já tentei, ZERO linhas…

              É muito estranho ficou invalido temporariamente… por isso não da pra saber qual foi o objeto que se quebrou…

              A obrigado por esclarecer o que é DM… eu não uso twitter… tenho uma conta de twitter do meu blog mas nem sei usar… que feio né… vou mandar um MP…

              #100116
              rman
              Participante

                Opa, hoje eu peguei outros objetos inválidos, são todos synonyms de tabelas…

                Tenho a tabela exemplo do usuário joao

                Criando o synonym para o usuario pedro

                create or replace synonym exemplo
                for joao.exemplo;

                Usando o usuário pedro

                SELECT * FROM EXEMPLO;

                Se o synonyms está inválido não deveria funcionar correto ?

                O SELECT é resolvido perfeitamente…

                Alguém tem ideia ?

                Outra coisa, o que poderia ter invalidado os synonyns de tabela ? Existe um EXP que roda horario que o alert foi disparado… O EXP pode ter invalidado o objeto ?

                #100119
                Ishii
                Participante

                  Olá,

                  Se são somente os sinônimos, acho que o Metalink tinha um doc para isso. No caso de sinônimos, eles eram recompilados automaticamente na primeira utilização.

                  Depois do select o sinônimo ainda permanece Inválido?

                  []s Ishii

                  #100120
                  rman
                  Participante

                    Realmente Ishi, Após o SELECT se torna valido.

                    Só ainda não descobri o que causou o problema….

                    #100121
                    Ishii
                    Participante

                      Olá,

                      Procure o Doc ID 438210.1 do Metalink…

                      []s Ishii

                      #100122
                      rman
                      Participante

                        Alguém com acesso ao metalink…

                        Por favor, poderia postar o Doc ID 438210.1 ?

                        #100150
                        Avatar photoRegis Araujo
                        Participante

                          Opa..!

                          Boa noite..!

                          Então.. os objetos ficam inválidos pois as tabelas com as quais eles são relacionados, sofrem alguma alteração, isto invalida todos os objetos que fazem referencia com esta tabela.. Mas no primeiro acesso a estes objetos o Oracle faz o compile dos mesmos..

                          Verifique se não existe nenhuma rotina ou alguem que faça algum ALTER TABLE, nestas tabelas…

                          Abraços..!

                          #100152
                          rman
                          Participante

                            [quote=”Thunder_Catz”:99hdcmro]Opa..!

                            Boa noite..!

                            Então.. os objetos ficam inválidos pois as tabelas com as quais eles são relacionados, sofrem alguma alteração, isto invalida todos os objetos que fazem referencia com esta tabela.. Mas no primeiro acesso a estes objetos o Oracle faz o compile dos mesmos..

                            Verifique se não existe nenhuma rotina ou alguem que faça algum ALTER TABLE, nestas tabelas…

                            Abraços..![/quote]

                            Apesar de não ter achado quem causou a invalidez do synonym de tabela consegui entender o que aconteceu… Realmente o primeiro SELECT usado no synonym recompila e valida… Isso explica a invalidez temporária…

                            Obrigado pelas dicas…

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