Pular para o conteúdo
Visualizando 15 posts - 1 até 15 (de 16 do total)
  • Autor
    Posts
  • #103133
    line
    Participante

      Estou tentando realizar o backup do oracle, porem ocorre a seguinte mensagem:

      ORACLE error 604 encountered
      error occurred at recursive SQL leve 1
      ORACLE data block corrupted (file #1, block #2015)

      E backup terminar sem sucesso.

      Obrigada,

      #103147
      Avatar photoRegis Araujo
      Participante

        Ola Line.. bom dia..!

        Use o DBVERIFY para verificar o corrompimento deste bloco..

        Seu banco tem backup via RMAN?

        Mais alguns pontos.. qual o SO e qual a versão do banco e tipo (standard ou enterprise), use para determinar a versão todos os valores.. ex: 11.2.0.2.3

        Pelo erro parece q o corrompimento foi no arquivo 1

        De um “select * from V$Datafile where file# =1;” e verifique qual é este arquivo e de qual tablespace ele faz parte.. Após estas informações poderemos lhe auxiliar melhor..!!!

        Abraços.!

        #103172
        line
        Participante

          [quote=”Thunder_Catz”:1xza343p]Ola Line.. bom dia..!

          Use o DBVERIFY para verificar o corrompimento deste bloco..

          Seu banco tem backup via RMAN?

          Mais alguns pontos.. qual o SO e qual a versão do banco e tipo (standard ou enterprise), use para determinar a versão todos os valores.. ex: 11.2.0.2.3

          Pelo erro parece q o corrompimento foi no arquivo 1

          De um “select * from V$Datafile where file# =1;” e verifique qual é este arquivo e de qual tablespace ele faz parte.. Após estas informações poderemos lhe auxiliar melhor..!!!

          Abraços.![/quote]
          Olá,
          O backup é feito via importação. O Oracle é 10g Enterprise Edition 10.2.0.3.0. O SO é o Windows Server 2003.
          A mensagem que aparece após select:
          OWNER
          ———————–
          SEGMENT_NAME
          ———————–
          PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME
          ————————– ————————- ——————————-
          EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
          ——— ——- ——— ———- —— ————
          SYS
          c_OBJ#_INTCOL#
          CLUSTER SYSTEM
          1 1 1929 1048576 128

          Obrigada pela ajuda.

          #103175
          rman
          Participante

            @line

            O bloco corrompido está na SYSTEM 😯

            O @Thunder_Catz perguntou se o backup é feito pelo RMAN por que o backup é utilizado pelo DBVERIFY.

            #103177
            line
            Participante

              [quote=”rman”:20srnrnh]@line

              O bloco corrompido está na SYSTEM 😯

              O @Thunder_Catz perguntou se o backup é feito pelo RMAN por que o backup é utilizado peloc.[/quote]

              Me desculpe eu não conheço muito o Oracle, eu realizo o backup via o comando import.
              Para realizar via RMAN na criação do banco eu deveria ter realizado alguma configuração ou posso tentar fazer agora via RMAN ? Com o DBVERIFY poderia ser corrigido este problema ?
              Obrigada,

              #103185
              line
              Participante

                Eu pesquisei na Internet e para realizar o backup pelo rman é necessário que o ARCHIVELOG esteja habilitado (por favor me corrija se eu estiver errada).
                Então eu fui no oracle e dei o comando SELECT LOG_MODE FROM SYS.V$DATABASE; com o usuários SYS, porem ocorre o seguinte erro:
                ORA-00942: table or view does not exist.

                Obrigada pela ajuda.

                #103186
                rman
                Participante

                  @line

                  Tente da seguinte forma:


                  SELECT LOG_MODE FROM V$DATABASE

                  O hot backup necessita que o ARCHIVELOG esteje habilitado, porém o cold backup não. 😆

                  A desvantagem do cold backup é que você deve baixar o banco de dados para fazer o backup, e outra, como não existe archive log não é possível voltar em um ponto especifico do tempo, só é possível voltar para o momento que o backup foi realizado.

                  Mas se é banco de dados de produção é recomendado que esteje com o ARCHIVELOG habilitado.

                  #103187
                  Avatar photoRegis Araujo
                  Participante

                    @line

                    Bom dia..!!

                    Somente um exclarecimento…

                    Vc falou que faz o export via import.. Existe um equivoco nesta situação..

                    Vc deve estar usando para fazer o export o EXPORT DATA PUMP (expdp) ou o exp que é uma ferramenta muito usada mas que já está obsoleta nas versões 10g e 11g.
                    Para fazer o import você usa o impdp ou o imp que também está obsoleto nas versões 10g e 11g.

                    O Rman pode sim ser usado sem o banco estar em modo archive, porém somente para backups COLD (que são backups com o banco baixado).

                    O DBVERIFY é uma ferramenta da Oracle para diagnosticar corrompimento em blocos de datafiles do Oracle.. Ele não corrige problemas de bloco corrompido..

                    Mas o RMAN sim, corrige problema de blocos corrompidos, porém apenas na versão 11g.

                    Como o problema do corrompimento do seu banco é na Tablespace SYSTEM, você terá que verificar em qual objeto é este corrompimento e se ele é fisico (disco) ou logico (datafile).

                    Se for corrompimento no disco, você terá que setar os blocos como unusable, onde o Oracle irá ignorar estes blocos para futuras escritas, isto fará com que você possa realizar um backup full dos schemas do seu banco de dados.. mas terá que realizar um restore deste backup.. ou seja.. terá que criar outro banco e importar o backup..

                    Mas agora vem a dificuldade.. como você falou que não tem muito conhecimento.. existe algum DBA por ai?

                    Pois para realizar estes prodecimentos terá que ser alguem com mais experiência, pois se identificar um problema de corrompimento mais grave será necessário tomar outras medidas e será necessário até mesmo tomar alguma medida gerencial.

                    A priori, rode o DBVERIFY para identificar quantos blocos estão corrompidos no seu banco…

                    dbv file= logfile=c:/temp/verify.log blocksize=8192 feedback=100

                    O parametro blocksize tem q ser o mesmo valor dos blocksize da tablespace onde este datafile foi criado.. se foi a system mesmo.. rode no sqlplus com system ou sys.. o comando.. “show parameter db_block_size;” e use o valor retornado no parametro blocksize do DBV, por default os bancos Oracle são criados com blocks de 8k (8192).

                    Com relação ao select.. muito estranho vc conectar com sys e aparecer esta mensagem.. muito estranho mesmo.. se realmente apareceu isto.. vc está com um serio problema de corrompimento nos objetos de dicionário de dados do seu banco..

                    Tente novamente conectar com SYSTEM ou SYS e rode o select..

                    select log_mode from v$database;

                    Ou conectado no Sqlplus dentro do banco com sys / as sysdba.. rode o comando..

                    SQL> ARCHIVE LOG LIST

                    Q irá mostrar se seu banco está em archivelog ou noarchivelog…

                    Após rodar o DBVERIFY poste o resultado do log aqui.. para podermos lhe auxiliar..!!

                    Abraços..!

                    #103189
                    line
                    Participante

                      [quote=”rman”:761eaxza]@line

                      Tente da seguinte forma:


                      SELECT LOG_MODE FROM V$DATABASE

                      O hot backup necessita que o ARCHIVELOG esteje habilitado, porém o cold backup não. 😆

                      A desvantagem do cold backup é que você deve baixar o banco de dados para fazer o backup, e outra, como não existe archive log não é possível voltar em um ponto especifico do tempo, só é possível voltar para o momento que o backup foi realizado.

                      Mas se é banco de dados de produção é recomendado que esteje com o ARCHIVELOG habilitado.[/quote]
                      Funcionou! Obrigada agora o meu ARCHIVELOG está habilitado.
                      Qual seria o comando para rodar o rman ?

                      Obrigada novamente

                      #103190
                      Avatar photoRegis Araujo
                      Participante

                        @line

                        Bom dia..

                        O comando que o RMAN te passou, não é para habilitar o mode archivelog, o select é simplesmente para verificar se seu banco está em modo archive ou não…

                        Outra coisa, você não está focando no problema principal que é o corrompimento do bloco, dependendo do tipo de corrompimento e onde ele ocorreu, seu banco de dados pode ser perdido para sempre.. vc irá perder todo o seu banco, sem possibilidade de realizar um restore dos dados.

                        Vc rodar o rman ou não, não irá resolver o problema de corrompimento.. onde até pelo rman vc pode obter erro de bloco corrompido e o backup não terminar.

                        Este banco que apresentou este problema é de produção? Qual a criticidade deste banco?

                        Abraços..!

                        #103191
                        rman
                        Participante

                          @line

                          Para montar toda uma politica de backup/recovery é necessário analisar a infraestrutura disponível, pessoas qualificadas, tempo de rentenção de backup, qual tipo de backup mais adequado (hot backup, cold backup), janela de backup, se vai utilizar o backup full ou incremental, e muitas outras coisas…

                          Mas apenas para fazer um simples backup manual, siga o procedimento:


                          $ rman target /
                          RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
                          RMAN> BACKUP DATABASE;
                          RMAN> BACKUP ARCHIVELOG ALL;

                          #103192
                          line
                          Participante

                            [quote=”Thunder_Catz”:57pk7eso]@line

                            Bom dia..

                            O comando que o RMAN te passou, não é para habilitar o mode archivelog, o select é simplesmente para verificar se seu banco está em modo archive ou não…

                            Outra coisa, você não está focando no problema principal que é o corrompimento do bloco, dependendo do tipo de corrompimento e onde ele ocorreu, seu banco de dados pode ser perdido para sempre.. vc irá perder todo o seu banco, sem possibilidade de realizar um restore dos dados.

                            Vc rodar o rman ou não, não irá resolver o problema de corrompimento.. onde até pelo rman vc pode obter erro de bloco corrompido e o backup não terminar.

                            Este banco que apresentou este problema é de produção? Qual a criticidade deste banco?

                            Abraços..![/quote]
                            Eu entendi que é somente para verificar se o archivelog está habilitado ou não, mas eu habilitei através de outros comandos e via o select do RMAN pude ver que agora esta como archivelog, sobre o dbv file= logfile=c:/temp/verify.log blocksize=8192 feedback=100, daqui a pouco eu coloco o resultado do log.
                            Sim é um banco de produção, porem aparentemente as pessoas estão conseguindo trabalhar somente no backup que ocorre o erro.
                            Obrigada.

                            #103193
                            line
                            Participante

                              Vocês já ouviram falar em fazer um recover block via rman ?

                              #103194
                              line
                              Participante

                                [quote=”line”:3rukjivg]Vocês já ouviram falar em fazer um recover block via rman ?[/quote]
                                Se eu executa -se o comando:
                                RMAN SELECT TARGET SYS/

                                RMAN>BLOCKRECOVER DATAFILE 5 BLOCK 15;

                                Deveria resolver o problema de block corrompido ?

                                Obrigada

                                #103195
                                Avatar photoRegis Araujo
                                Participante

                                  @line

                                  O recover de bloco pelo RMAN somente seria possível se você tivesse usando o backup via RMAN antes de ocorrer o problema.

                                  Por isto que é sempre aconselhado ter o banco em modo archive e ter backup via rman tanto do banco quando dos archives..!

                                  Mas outra questão, para você colocar o banco em modo archive, houve a necessidade de baixar o banco.

                                  Verifique no Alert se houve algum erro do bloco corrompido, pois se não houve nenhum erro o problema pode estar apenas no local onde vc está salvando o backup e não no banco.

                                  Abraços..!

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