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

      Olá…
      Tenho uma instância no Oracle 10g Enterprise que me gera o seguinte erro ao tentar fazer backup via rman no datafile system:

      RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/14/2017 12:22:46
      ORA-19566: exceeded limit of 0 corrupt blocks for file /u1/oradata/sig/system/tssysd01.dat

      os blocos corrompidos foram identificados mas não consegui repara-los….
      É possivel um drop na tablespace/datafile system e recria-la?
      Já corrigi esse mesmo erro na TEMP e UNDO recriando-as…mas…na SYSTEM é possível?

      Edgar

      #108788
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Bom, antes de responder uma observação : é *** CRUCIAL *** vc determinar a CAUSA dessa corrupção – pode ser disco/controladora falhando, pode ser bug em software (tanto drivers quanto sistema operacional quanto o próprio RDBMS Oracle), pode ser outro hardware falhando (caso típico é pentes de memória RAM, neguim sempre esquece que a informação lida do disco via de regra VAI SER PROCESSADA EM RAM, então se vc tiver qquer unidade de memória com falha é corrupção o provável resultado ao gravar a informação em disco, pode gravar algo diferente do que foi lido), há muitas possibilidades… ANtes de prosseguir vc TEM que descobrir a causa, pois senão hoje vc recupera a informação corrompida amanhã dá de novo a corrupção e vc tem que agir de novo, em resumo vc vai estar ‘correndo atrás do próprio rabo’ como se diz….

        Muito bem : identificada (e ** SOLUCIONADA!!!** ) a causa da corrupção, fique *** CLARO **** que é Absolutamente Impossível vc dropar a tablespace SYSTEM : entenda que ela mantém/contém TODAS as informações internas necessárias para o funcionamento do database Oracle….
        No caso, para vc recuperar a informação corrompida perdida a primeira opção é o RMAN, ** SE ** vc tiver um último backup íntegro E TODOS os archived redo log files necessários sem faltar nenhum até o momento atual , via BLOCK RECOVER cfrme mostrado em https://oracle-base.com/articles/misc/detect-and-correct-corruption#BMR , ou mesmo se for o caso vc pode restaurar os datafiles todos da tablespace SYSTEM e aplicar os redo logs de então até o momento atual cfrme https://therahuljain.quora.com/Recovering-Corrupted-SYSTEM-Tablespace ….

        Caso vc não tenha rigorosamente todos os archives desde o último backup íntegro, aí sim tuas opções vão ser mais limitadas : vão ser OU recuperar o último backup íntegro e aplicar os archives que vc tenha até onde puder (E provavelmente perder os dados referentes a DMLs que vc não tem o redo), OU (isso SE conseguir) exportar os dados e dropar + recriar esse database OU tentar marcar os blocos corrompidos como inacessíveis via DBMS_REPAIR (se der sorte de eles corresponderem a dados não-essenciais do database) cfrme https://oracle-base.com/articles/misc/detect-and-correct-corruption#DBMS_REPAIR ….

        []s

        Chiappa

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