Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 6 anos, 10 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #109021
    Avatar de RomuloRDMRomuloRDM
    Participante

      Boa noite,

      Tenho o ORACLE rodando em RAC e reparei que mesmo sem haver transações no sistema “usei como base o domingo,dia que não há expediente na empresa” fica gerando arquivos no diretorio do archive.
      Tem alguma maneira de rastrear para identificar o motivo da geração destes aquivos?,se tem alguma aplicação fazendo alguma transação?

      Obrigado

      RomuloRDM

      #109022
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Jóia ? Então, primeira coisa ficou Muito Confuso o seu texto onde vc disse primeiro que archives são gerados “mesmo sem haver transações no sistema” porém depois vc quer saber “se tem alguma aplicação fazendo alguma transação?” : afinal, vc SABE ou NÃO SABE se há transações ????
        De qualquer maneira, se atendo às questões técnicas do RDBMS Oracle, temos que os archived redo logs são resultado de REDO LOG sendo gerado, e REDO LOG só é gerado se há INSERT/UPDATE/DELETE em tabelas, PORTANTO vc NECESSARIAMENTE ESTÁ TENDO transações aí, sim…. O que vc não sabe é se essas Transações são disparadas por usuários online do sistema ** OU ** por jobs schedulados ** OU ** internamente pelo próprio RDBMS (sim, o RDBMS também ‘possui’/usa diversas tabelas internas para se auto-controlar e tais tabelas são SIM manipuladas com INSERT/UPDATE/DELETE e portanto Transações são abertas, SQLs são disparados, REDO LOG e portanto ARCHIVES são gerados, sim)…. Features internas do RDBMS como AWR, views materializadas, Auditoria, Backup Online e muitas outras são controladas via tabelas internas, que sofrem DML e portanto geram SIM redo….

        Vc até pode monitorar/consultar Transações online nese momento via GV$SESSION, GV$SESS_IO e GV$TRANSACTION fazendo repetidas queries a cada meia hora ou coisa assim no seu banco (veja a Documentação e a nota do Suporte Oracle “SQL: How to Find Sessions Generating Lots of Redo or Archive logs” (Doc ID 167492.1) para refs) mas ao que entendi vc quer obter o HISTÓRICO desse redo log arquivado, ie, saber quais SQLs contendo INSERT/UPDATE/DELETE em quais tabelas, disparados por quais usuários e em quais datas geraram o REDO, correto ? Sendo isso, um dos procedimentos mais indicados para isso é vc usar o LOG MINER e extrair os detalhes contidos no REDO LOG arquivado : para setup e config do LOG MINER, bem como alguns exemplos de uso, veja a Documentação Oracle e as notas do metalink/My Oracle Support “LogMiner Utility Release 8i – 11g” (Doc ID 291686.1), “How To Determine The Cause Of Lots Of Redo Generation Using LogMiner” (Doc ID 300395.1) e “How to Setup LogMiner” (Doc ID 111886.1) …

        Outra Possibilidade é vc consultar o Histórico das transações : se vc tiver Licenciado e acessível no seu RDBMS o AWR/ASH (isso é uma feature extra, que já vêm instalada mas deve ser licenciada e paga à parte na maioria das versões/edições do RDBMS Oracle) vc pode consultar a ACtive Session History, veja https://oracle-base.com/articles/10g/active-session-history para um Exemplo…

        []s

        Chiappa
        

        OBS : não tem a ver com a su resposta diretamente, mas Espero que teu setup referente à archives esteja correto, usando as best practices, o que implica que vc :

        • não tem mensagens de Checkpoint not Complete, waits frequentes por arquivamento, etc

        • tem os redo log files num tamanho e quantidade tais que há pelo menos uns 15 minutos ou algo assim de intervalo entre cada archive ser gerado : via de regra, se vc está vendo archive ser gerado a cada poucos minutos via de regra isso se constitui num Gargalo para o sistema, evite se possível…

        #109023
        Avatar photoJosé Laurindo Chiappa
        Moderador

          Algumas dicas adicionais :

          a. pode ser muito útil vc ver a Distribuição no tempo dos archives gerados : se olhando o diretório/listagem de arquivos no Sistema Operacional vc descobrir que a quantidade de arqchives gerados digamos ao meio-dia, ás 3 da tarde e as 8 da noite é muito maior do que nas outras horas vc já tem uma Pista indicando que é alguma rotina que executa nesses horários e/ou algum usuário que conecta nesses horários que tão tendo qtd de alterações grande e gerando ‘muito’ redo log que precisa ser arquivado….
          Além de verificação/análise manual em cima de um DIR / ls nos sub-diretórios/pastas onde fica teu archives, vc Também pode agrupar a geração de archives via queries em tabelas internas do RDBMS , http://oraclemais.blogspot.com.br/2014/05/geracao-de-archive-por-dia-e-por-hora.html tem um exemplinho agrupando geração de archives por dia e por hora : como eu disse acima, é bem possível que fazendo análises do tipo vc consiga Identicar os dias e os períodos do dia que mais geram archives, aí vc tenta minerar primeiro os archives desses períodos, E além disso vai atrás dos Analistas e dos Usuários da(s) Aplicão/ções que usam esse banco para descobrir quem tava rodando o que nesses dias/horas…

          b. ainda falando sobre o uso de AWR/ASH pra descobrir Histórico de uso do RDBMS, outra abordagem pode ser vc consultar via AWR/ASH (novamente, isso ** SE ** vc tem Licença de uso para AWR/ASH!!) o histórico de Quantidade de ALTERAÇÕES nos objetos : o REDO nada mais é do que o fluxo de bytes Alterados num objeto), objetos com muitas alterações provavelmente estão envolvidos na causa de geração de muitos archives, http://cheatsheet4oracledba.blogspot.com.br/2013/05/huge-archive-log-generation-what-to-do.html é um exemplo…

          []s

          Chiappa

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