MigraTI - Soluções em banco de dados

sexta-feira, 11 de setembro de 2009

ORA-01555 - Snapshot to old

Erro clássico na vida de um DBA, pode acreditar você nunca vai escapar deste erro.

O problema é, quando acontece este erro, eu aumento a tablespace ou aumento a undo_retention?

Vou lhes mostrar uma query que vai lhe indicar o caminho correto a tomar.


set lines 156
set pages 30
column UNXPSTEALCNT heading "# UnexpiredStolen"
column EXPSTEALCNT heading "# ExpiredReused"
column SSOLDERRCNT heading "ORA-1555Error"
column NOSPACEERRCNT heading "Out-Of-spaceError"
column MAXQUERYLEN heading "Max QueryLength"

select inst_id,
to_char(begin_time, 'MM/DD/YYYY HH24:MI') begin_time,
UNXPSTEALCNT,
EXPSTEALCNT,
SSOLDERRCNT,
NOSPACEERRCNT,
MAXQUERYLEN
from gv$undostat
where begin_time between
to_date('07/28/2008 10:00', 'MM/DD/YYYY HH24:MI:SS') and
to_date('07/28/2008 14:30', 'MM/DD/YYYY HH24:MI:SS')
order by inst_id, begin_time;


Você tem de avaliar com atenção nas colunas:
# Expired|Reused
# UnexpiredStolen

As outras colunas podem lhe dar uma ajuda tbm.
Para isso favor verificar o doc id: 389554.1 ele poderá mostrar a você o resultado completo, o que infelizmente este editor não permite que eu faça.


# Expired|Reused: Indica falta de tempo para garantir toda a query, aumentar o tempo de retenção da UNDO_retention.
# UnexpiredStolen: Tamanho da undo pequeno, Aumentar o tamanho da UNDO.

OBS: o parametro de UNDO, undo_retention pode ser alterado dinamicamente não sendo necessário o restart do banco, segue abaixo.
alter system set undo_retention='valor desejado em segundos' scope=both;

Nenhum comentário:

Postar um comentário