Pular para o conteúdo
  • Este tópico contém 11 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 6 meses atrás por Rodrigofs.
Visualizando 12 posts - 1 até 12 (de 12 do total)
  • Autor
    Posts
  • #89404
    souza
    Participante

      Srs,

      Meu sistema estava apresentando erro ORA-01578 no datafile 4 , parei meu banco fiz o restore e recover do datafile e apliquei os arquives. Porém o sistema voltou a apresentar o mesmo erro. Então movi o datafile para outra partição (não outro disco) , e o erro voltou a ocorrer.No alert não aparece nada.

      Alguém teria alguma sugestão ?

      Estou trabalhando com 10gR2 em RH4

      #89407
      David Siqueira
      Participante

        Cara esse erro é de Bloco corrompido, posta a mensagem de erro inteira pra gente ai por favor, assim podemos sugerir diversas maneira de correção para o teu problema.

        Pode ser que seja uma tablespace de Dados, de Indices, e por ai vai.

        Abraço!

        #89408
        souza
        Participante

          É uma ts de dados e índice

          ORA-01578: Oracle data block corrupted (file #4, block # 53094)
          ORA-01110: data file 4: ‘/u01/app/oracle/oradata/ORACLE_SID/mydbf.dbf’

          #89409
          David Siqueira
          Participante

            Souza, tu usa backup via RMAN ai na sua Base?

            Se você usar podes tentar recuperar esse bloco via BMR ( Block Media Recover ).

            Pra isso você vai precissar seguir alguns passos:

            1) restaure no seu servidor seu backup de uma data anterior ao erro, pegue essa informação no alert log.
            2) restaure seus archives desde antes do erro até a data atual
            3) faça um backup validate para ver se realmente é só esse bloco que esta com problemas :

            run {
            backup validate check logical database;
            }

            4) Façá uma query na tabela visão de banco para confirmar os blocos :

            select * from V$DATABASE_BLOCK_CORRUPTION;

            5) Realize um Crosschek dos seus BS’s, para que fiquem como AVALIABLE :

            run{
            crosscheck backup;
            crosscheck archivelog all;
            }

            6) execute o BMR :

            RMAN blockrecover corruption list;

            Abraço!!! espero que te ajude.

            #89410
            souza
            Participante

              Não uso rman. Uso backup cold + archive …

              #89411
              David Siqueira
              Participante

                Então parceiro teta via DBMS_REPAIR, veja se rola pra você.

                Abraço.

                #89412
                David Siqueira
                Participante
                  #89413
                  Rodrigo Almeida
                  Participante

                    Se for um bloco Fraturado (diferente de corrompido) NOWAY com DBMS_REPAIR!

                    Abraços,

                    #89414
                    David Siqueira
                    Participante

                      Souza, passa o DBverify nesse seu Datafile ai pra gente saber pelo menos se é corrupção fisica mesmo, se for bloco fraturado ele nem vai detectar vai passar batido.

                      Abraço.

                      #89415
                      ramasine
                      Participante

                        Se o dbv no datafile foi mesmo executado corretamente, e preferencialmente com o banco OFFLINE, e não mostrou nada, há grandes chances do problema ser corrupção em RAM, ou seja, o bloco está correto, mas quando o bloco é lido pra RAM há algum problema “físico, hardware” de RAM defeituoso, aí nesse caso o byte que estava como X no disco por falha da RAM é armazenado como Y, aí é corrupção à vista braba mesmo!!

                        Certamente com o RMAN o processo de recuperação a nível de bloco seria mais simples!

                        Para o DBV, faça:

                        spool exec_dbv.cmd
                        select ‘dbv file=’ || name || ‘ blocksize=’ || block_size ||
                        ‘ feedback=’ || round(blocks*.10,0) — 10 dots per file from v$datafile;
                        spool off

                        E executa o resultado @exec_dbv, ou direto na mão mesmo.

                        Ex: dbv file=/u02/oradbf/BPOIDIG/SYST/BPOIDIGobjsyst01.dbf blocksize=8192 feedback=14387

                        #89432
                        souza
                        Participante

                          Pessoal, parei meu bando e executei o dbv…segue resultado abaixo. Não entendo muito , mais o “Total Pages Marked Corrupt : 1” significa que o meu dbf está baliado ?

                          DBVERIFY – Verification complete

                          Total Pages Examined : 262144
                          Total Pages Processed (Data) : 55511
                          Total Pages Failing (Data) : 0
                          Total Pages Processed (Index): 41870
                          Total Pages Failing (Index): 0
                          Total Pages Processed (Other): 25252
                          Total Pages Processed (Seg) : 0
                          Total Pages Failing (Seg) : 0
                          Total Pages Empty : 139511
                          Total Pages Marked Corrupt : 1
                          Total Pages Influx : 0
                          Highest block SCN : 36864622 (0.36864622)

                          Obrigado desde já

                          souza

                          #89465
                          Rodrigofs
                          Participante

                            Ola souza, como visto o seu datafile contém corrupções. Como o pessoal falou use o DBMS_REPAIR package.

                            Abraço,
                            Rodrigo Santana.

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