- Este tópico contém 8 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 9 meses atrás por
Susu.
-
AutorPosts
-
15 de março de 2012 às 6:34 pm #103071
Susu
ParticipantePessoal,
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çãoObrigada a todos,
Suzana😀
15 de março de 2012 às 7:20 pm #103072rman
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 ?15 de março de 2012 às 8:58 pm #103073msantino
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…
15 de março de 2012 às 9:12 pm #103074Susu
ParticipanteEntao 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 0O 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.
15 de março de 2012 às 9:31 pm #103075vieri
Participantenessa 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.
15 de março de 2012 às 9:31 pm #103076vieri
Participanteaonde se lê diretório traduz-se ( filesystem(linux) ou driver(letra) windows).
15 de março de 2012 às 11:00 pm #103077msantino
ParticipanteIsso 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!
15 de março de 2012 às 11:13 pm #103078rman
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.
23 de março de 2012 às 8:18 pm #103205Susu
ParticipanteValeu galera pela participação
-
AutorPosts
- Você deve fazer login para responder a este tópico.