Pular para o conteúdo
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #103071
    Susu
    Participante

      Pessoal,
      qual é a melhor estrategia para resolver esse erro?
      Eu procurei esse erro na net e sugeriram deletar os archives antigos e depois fazer o backup dos archives. Mudar os archives mais recentes para qualquer diretorio e depois fazer o backup do archive e depois retornar os archives.

      Teria como fazer um passo a passo dessa solução?
      SO solaris. Banco de Produção

      Obrigada a todos,
      Suzana

      😀

      #103072
      rman
      Participante

        @Susu

        Isso é falta de espaço na área de archive log.

        1- Qual a versão do Oracle ?
        2- Está usando ASM ?
        3- A área de archive log está dentro da flash_recovery_area ?
        4- O banco de dados está parado no momento ?

        #103073
        msantino
        Participante

          @Susu,

          Você pode verificar o tamanho da sua FRA (flash_recovery_area) com a seguinte query:
          SELECT
          NAME,
          TO_CHAR(SPACE_LIMIT, '999,999,999,999') AS SPACE_LIMIT,
          TO_CHAR(SPACE_LIMIT - SPACE_USED + SPACE_RECLAIMABLE,'999,999,999,999') AS SPACE_AVAILABLE,
          ROUND((SPACE_USED - SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1) AS PERCENT_FULL
          FROM V$RECOVERY_FILE_DEST;

          Entenda que ela está lotada, e por isso o Oracle não consegue mais gerar archives. Então é preciso limpá-la ou aumentá-la.

          É comum isso acontecer quando você exclui archives ou backups do disco pelo Sistema Operacional, sem apagá-los do catálogo do banco. Então ele continua enxergando espaço ocupado, mas na verdade os arquivos nem existem mais…

          entra no rman e roda os seguintes comandos:
          rman target /
          CROSSCHECK BACKUP;
          CROSSCHECK ARCHIVELOG ALL;
          DELETE NOPROMPT OBSOLETE;
          DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;

          Isso provavelmente vai liberar o espaço necessário pro banco voltar. Após isso, tente abrir o banco (ALTER DATABASE OPEN) caso não esteja aberto.

          Se não, será necessário aumentar a sua FRA…

          #103074
          Susu
          Participante

            Entao meninos,
            segue o resultado que o msantino pediu.

            NAME

            SPACE_LIMIT SPACE_AVAILABLE PERCENT_FULL


            /export/home/oracle/product/10.2.0/Db_1/flash_recovery_area
            2,147,483,648 2,147,483,648 0

            O banco já esta no ar.
            O dba deletou os archives antigos e depois fez um bakup archive. Mas acho que isso nao é o ideal, pq vc acaba perdendo as transações realizadas no schema. Gostaria de saber qual é a melhor medida de resolver essa questao? Levando em consideração que não posso aumentar o espaço em disco. Eu sou novata em oracle/linux entao estou muito perdida.
            O banco é de produção, nao é ASM.

            Agradeço a todos pela preocupação.

            #103075
            vieri
            Participante

              nessa situação os archives ou oque puder ser apagado nesse diretório deve ser. se não ninguem conecta na base.

              O DBA é quem deve avaliar a nescessidade de backuear esses archives antes… e derrepente da rotina os mesmos ja até foram backupeados.

              o padrão é fazer o backup dos archives todos os dias, e manter alguns dias em disco. então dado momento vc pode apagar do disco sem problemas(via rman), foi vc ja terá uma copia dos mesmos.

              #103076
              vieri
              Participante

                aonde se lê diretório traduz-se ( filesystem(linux) ou driver(letra) windows).

                #103077
                msantino
                Participante

                  Isso mesmo @Susu, essa estratégia é definida pelo DBA mesmo. Ele que tem que saber se é possível ou não remover os archives.

                  Nesse caso, faz-se o backup em fita (normalmente) e apaga-se do disco pra liberar o espaço. Não há uma real necessidade de tê-los no servidor. Geralmente deixamos X dias de retenção em disco apenas pra agilizar um processo de recovery, como o @vieri falou, mas não é uma regra.

                  Pra resolver o ORA-00257, só removendo archives antigos mesmo, ou então, aumentando a FRA. Mas se o espaço já está planejado e tem backup, remove e pronto!

                  #103078
                  rman
                  Participante

                    @Susu

                    Como você deve solucionar esse problema depende da estratégia de backup e onde está a sua área de archive log. Outra coisa importante é entender por que houve o estouro da área de archive log, isso é essencial para evitar que aconteça novamente. O tamanho da área está dimensionada corretamente ? Algum processo foi rodado no sistema de forma incorreta que ocasionou a geração excessiva de archive log ?

                    Onde está a área de archive log ? Está dentro da flash_recovery_area ? Se estiver na flash_recovery_area e existe espaço em disco em disco é só aumentar o tamanho da flash_recovery_area.

                    Você está trabalhando com disco locais ou storage ? Considere comprar mais discos ou alocar mais espaço no storage, mesmo que não seja possível, documente o pedido.

                    Quando foi apagado o archive log, isso pode ter quebrado totalmente a estratégia de backup, ainda mais se for utilizado um backup incremental. Antes de apagar o archive log é necessário fazer um backup full ou um backup incremental nivel 0, então o archive log pode ser apagado sem medo.

                    #103205
                    Susu
                    Participante

                      Valeu galera pela participação

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