Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 3 anos, 1 mês atrás por Avatar de José Laurindo ChiappaJosé Laurindo Chiappa.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #147411
    Avatar de maperesmaperes
    Participante

      boa tarde !

      estou com um problema em uma tabela, verifiquei através do dbv que o datafile onde a tabela está, possui blocos corrompidos. Executei um select que confirma a tabela como danificada.

      se eu rodo um : select count(*) from tabela  com a clausula where –> retorna 1 registro

      se eu rodo o select * from tabela com a clausula where  –> não retorna registro

      se eu rodo o select coluna1,coluna2 from tabela com a clausula where  –> retorna o registro

      alguém ja passou por essa situação ?

      Agradeço.

       

      Marco

       

       

       

       

      #147412
      Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
      Moderador

        Blz ? Então, a partir do momento que um dbv (executado corretamente, com o blocksize apropriado, etc) reporta blocos corrompidos num datafile sim, em princípio TUDO de erro pode acontecer…. O procedimento é simples : primeiro, encontrar a CAUSA do erro (pode ser falha em disco, Pode ser falha em memória, PODE ser bug de software – tabnto o software Oracle em si quanto Sistema Operacional, device drivers, etc) , e DEPOIS de corrigir a causa para que o problema não aconteça novamente, vc faz uma cópia dos dados dessa tabela que vc já sabe que está corrompida em princípio E das outras tabelas que residem nesse datafile corrompido  (pode ser via export, pode ser CREATE AS SELECT talvez não citando a(s) coluna(s) que deram erro) e então marca os blocos corrompidos como inusáveis com DBMS_REPAIR…. É isso…

         

        []s

         

        Chiappa

        #147414
        Avatar de maperesmaperes
        Participante

          Obrigado, Chiappa, pelo retorno.

          Entendi, mas no meu caso, creio que seja mais em baixo, além das tabelas do sistema corrompidas, existem tbm vários objetos do schema SYS tbm corrompidos (1992 objetos, para ser mais preciso).  Existe uma maneira de marcar os blocos como inusaveis de uma vez só, ou bojeto a objeto ?

           

          Abs.

          #147415
          Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
          Moderador

            Blz ? Não, pode ver na Documentação em https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_REPAIR.html que Não, Não Existe uma opção pra vc marcar TODOS os blocos de TODOS os objetos em que foi detectado corrupção no database INTEIRO de uma vez só, não – o que se Poderia fazer é simplesmente escrever um SCRIPT que abre cursor na DBA_OBJECTS e te GERA os comandos necessários, ou coisa assim : é ISSO que se faz para automatizar tarefas administrativas no Oracle, é comum…

            Respondida a sua perginta, PORÉM, eu TENHO que te dar o Aviso : veja vc, os objetos do schema SYS são de uso interno do RDBMS Oracle E são o modo pelo qual o database Oracle se auto-gerencia, se controla : se vc TEM corrupções múltiplas no SYS, é muito MUITO provável / possível que esse database teu aí esteja PERTO de ficar inusável, de dar os paus, os bugs mais loucos – a partir do momento que os CRUCIAIS objetos internos do database estão Comprometidos, absolutamente NINGUÉM pode botar a mão no fogo por esse database – eu RECOMENDO FORTEMENTE que vc verifique as suas possibilidades em termos de backups feitos nesse banco, pois MUITO PROVAVELMENTE , cedo ou tarde (mais provável CEDO) vc VAI precisar recriar esse database, pelo jeito….

            E (imagino) que não preciso dizer, mas Corrupção é algo Raro num ambiente saudável : se vc tá tendo múltiplas corrupções aí, eu COM CERTEZA RECOMENDO que vc faça checks PROFUNDOS no seu hardware E verifique com o Suporte Oracle  quais BUGs vc pode estar caindo, quais patches vc deveria aplicar….. Pra ontem….

             

            []s

             

            Chiappa

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