Por que o banco de dados Oracle gera muitos logs arquivados por dia quando há pequenas alterações no banco de dados?

2

Atualmente, estou usando o banco de dados Oracle 11g no RHEL5. Meu banco de dados gera muitos logs arquivados por dia, mesmo que haja uma pequena quantidade de alterações no banco de dados (cerca de 500 transações por dia). Eu também verifico o tamanho do meu arquivo de dados (tablespace de usuários); seu tamanho aumenta cerca de 20MB por dia, mas o log arquivado gera de 5 a 10GB por dia.

Alguém pode me dizer o que causa esse problema? Existe alguma solução para verificar por que gera mais arquivados? Como posso reduzi-lo?

Atenciosamente,

Sarith

    
por Sarith 02.03.2010 / 09:44

5 respostas

3

Pode valer a pena observar os timestamps nos arquivos e ver se ele está uniformemente distribuído ou se você gera um grupo de uma só vez (talvez correspondendo a alguma atividade em lote).

Uma consulta como a seguinte mostrará as sessões atuais que geram refazer.

select s.sid, n.name, s.value, sn.username, sn.program, sn.type, sn.module
from v$sesstat s 
  join v$statname n on n.statistic# = s.statistic#
  join v$session sn on sn.sid = s.sid
where name like '%redo entries%'
order by value desc;

Se você estiver licenciado para o AWR, também poderá ver as tabelas de histórico.

Qual é o tamanho total do banco de dados? Eu suspeito que algumas tabelas grandes sejam truncadas e recarregadas com dados muito semelhantes diariamente

    
por 02.03.2010 / 23:09
1

Como sugerido no outro tópico , você pode usar o LogMiner para descobrir o que transações são registradas:

link

    
por 02.03.2010 / 10:23
1
As declarações

UPDATE não alteram necessariamente o tamanho de uma tabela ou linha, mas devem ser capturadas em refazer, que é o que impulsiona o tamanho dos logs de arquivamento.

Transações não confirmadas - aquelas que são revertidas - não fazem alterações permanentes no banco de dados, mas ainda geram refazer.

A atividade da Tabela DML, que faz com que os índices sejam atualizados (o aplicativo faz muito DELETE ing e INSERT ing?) também faz com que índices sejam atualizados, assim como UPDATE declarações que alteram colunas indexadas. / p>

Em resumo, medir o tamanho do log de arquivamento é uma medida da atividade de mudança - o crescimento é uma métrica diferente e muitas vezes não relacionada. O que você pode querer fazer é consultar ALL_TAB_MODIFICATIONS para mostrar exatamente o quão ocupada de uma perspectiva de escrita suas tabelas realmente são desde a última análise, como em 10g +, todas as tabelas são monitoradas automaticamente para atividade DML.

    
por 05.03.2010 / 15:56
0

As atualizações de visualizações materializadas podem gerar muitos refazer. Apenas um pensamento.

    
por 02.03.2010 / 16:48
0

Uma solução simples deste problema é a
1) Definindo o Rastreamento de Mudança de Blocos no Oracle para acelerar o backup incremental
link # BRADV8125

2) Execute o Backup Incremental Nível 1 do DB e archivelogs (por exemplo, 2 vezes por dia) com a adição da próxima linha ao final do script do RMAN:

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE -2';
Se o RMAN reduzir significativamente a velocidade de execução da consulta do banco de dados, você poderá adicionar à sequência BACKUP DATABASE as seguintes palavras-chave:
DURATION 1:00 PARTIAL MINIMIZE LOAD
Onde, 1:00 - hora 1 hora para a qual deve ser feito backup.     
por 03.03.2010 / 10:27

Tags