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;

Exemplos: http___www.bigleaguekickball.com_category_press_ buy online pharmacy soma Retenção de Undo insuficiente.

                            # Unexpired  # Expired   ORA-1555 Out-Of-space  Max Query
   INST_ID BEGIN_TIME            Stolen     Reused      Error        Error     Length
   ------- ---------------- ----------- ---------- ---------- ------------ ----------
       ...
         1 08/28/2006 10:20           0          0          0            0       5852
         1 08/28/2006 10:30           0          0          0            0       6252
         1 08/28/2006 10:40           0          0          0            0       6852
         1 08/28/2006 10:50           0         32          0            0       7452
         1 08/28/2006 11:00           0          7          1            0       8212

Neste caso Observe que há muitos extents reutilizados e apenas há o erro ORA-1555 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;

generic Soma next day Tablespace de Undo pequena.

                            # Unexpired  # Expired   ORA-1555 Out-Of-space  Max Query
   INST_ID BEGIN_TIME            Stolen     Reused      Error        Error     Length
   ------- ---------------- ----------- ---------- ---------- ------------ ----------
       ...
         1 08/28/2006 10:20           0          0          0            0          1
         1 08/28/2006 10:30           0          0          0            0          1
         1 08/28/2006 10:40           0          0          0            0          1
         1 08/28/2006 10:50          23          0          0            0        272
         1 08/28/2006 11:00          67          0          1            1        843

Observe que a coluna OUT-of-space tem uma coluna setada como 1 no horário das 11 horas. Neste Caso você deve adicionar espaço para a Tablespace de Undo. Você pode verificar mais informaçoes sobre este erro no DOC ID. 389554.1.

%name ORA 01555   Snapshot to old

Autor: Leandro Lana

Trabalho com banco de dados Oracle desde 2006, já trabalhei com as plataformas 9i, 10G, 11G, 12C, 18C, 19C e 21(ainda em testes).

Trabalhando atualmente como consultor Oracle na MigraTI Soluções em TI como administrador de banco de dados Oracle, SQL-Server, MySQL e Postgresql.

Contato: leandro.lana@migrati.com.br

Fone: (47) 9191-6052 / (47) 3328 0996

Certificações:

OCA 10G.

OCP 10G.

OCE Linux.

OCE RAC/Cluster.

MCP SQL-Server 2008.

MCITP SQL-Server 2008.

DB2 Fundamentals.