ORA-01555 – snapshot too old

03 Feb

Datum: 30.06.2016

a)    Texte aus oerr unter Linux

01555, 00000, “snapshot too old: rollback segment number %s with name \”%s\” too small”
// *Cause: rollback records needed by a reader for consistent read are
//         overwritten by other writers
// *Action: If in Automatic Undo Management mode, increase undo_retention
//          setting. Otherwise, use larger rollback segments

b) Erklärung
Die Ursache für einen  ORA-01555  liegt in sehr lang laufenden Select Statements und gleichzeitigen Änderung von Daten in einer weiteren Datenbanksitzung.

c) Lösung
Es hat sich gezeigt, dass eine Erhöhung des Parameters undo_retention dieses Problem in den meisten Fällen behebt.
Hierbei ist darauf zu achten, das der UNDO Tablespace als  autoextend konfiguriert ist und die maxsize groß genug eingestellt ist.
Soweit genug freier Platz im Storage vorhanden ist, sollte man maxsize  auf unlimited einstellen, dann kann das Datenfile des UNDO tablespace auf  32 GB anwachsen.
Der Wert des Parameter undo_retention ist in Sekunden angegeben.
Der Default Wert steht auf 900 Sekunden und entspricht 15 Minuten.
Ein Hochsetzen auf 1 Std. reicht in den meisten Fällen aus.

d) Beispiel
show parameter undo_retention
select file_name, bytes/(1024*1024*1024) “size_GB”, autoextensible, maxbytes/(1024*1024*1024)”Maxsize_GB” from dba_data_files where tablespace_name like ‘UNDO%’;
alter database datafile ‘xxx/SID/datafile/undotbs1.DBF autoextend on maxsize unlimited;
alter system set undo_retention=3600

 

 

 

 

Diesen Artikel teilen :Share on Google+Share on LinkedInTweet about this on TwitterShare on Facebook