069 / 58 80 436 10 info@dbaservices.de
Und täglich grüßt das Murmeltier – ORA-1555

Wohl einer der bekanntesten Fehler überhaupt, der gute alte ORA-01555 und noch genauso aktuell wie früher. Der Fehlertext ist mittlerweile irreführend, da eigentlich nicht mehr Rollback Segmente, sondern nur noch Undo Segmente verwendet werden. Nichtsdestotrotz bleibt die Ursache des Problems das gleiche, einer Session war es nicht möglich einen konsistenten Datenzustand zum Zeitpunkt X abzufragen. Der Grund hierfür sind Änderungen an den Daten, welche es verhindern dass eine Abfrage ein konsistentes Ergebnis liefern kann.

Wie kommt es zu dem Fehler
Hier bietet sich am besten ein Entscheidungsbaum an, welcher die dahinter stehende Logik erklärt.

  • wenn „Undo Tablespace hat eine feste Größe (Kein Autoextend)“ dann
    • wenn „Kann ein neues Undo Extent angelegt werden“ dann
      • „Erstelle ein neues Undo Extent. Ende“
    • ansonsten
      • wenn „Gibt es ‚Expired‘ Undo Extents, welche überschrieben werden können“ dann
        • „Überschreibe ‚Expired‘ Undo Extents. Ende“
      • ansonsten
        • wenn „Gibt es ‚Unexpired‘ Undo Extents, welche überschrieben werden können“ dann
          • „Überschreibe ‚Unexpired‘ Undo Extents. Ende“
        • ansonsten
          • „ORA-01555 Fehler“
  • ansonsten –Undo Tablespace steht auf Autoextend, Anm.d. Red.
    • wenn „Kann ein neues Undo Extent angelegt werden“ dann
      • „Erstelle ein neues Undo Extent. Ende“
    • ansonsten
      • wenn „Hat der Undo Tablespace bereits seine maximale Größe erreicht?“ dann
        • wenn „Gibt es ‚Expired‘ Undo Extents, welche überschrieben werden können“ dann
          • „Überschreibe ‚Expired‘ Undo Extents. Ende“
        • ansonsten
          • wenn „Gibt es ‚Unexpired‘ Undo Extents, welche überschrieben werden können“ dann
            • „Überschreibe ‚Unexpired‘ Undo Extents. Ende“
          • ansonsten
            • „ORA-01555 Fehler“
      • ansonten
        • „Erweitere das Datenfile und erstelle ein neues Undo Extent. Ende“

Aus dem Entscheidungsbaum ergibt sich eigentlich auch schon die Lösung für das Problem, entweder den Undo Tablespace automatisch erweitern lassen oder die Vorhaltezeit von Undo Extents mit Hilfe des Parameters UNDO_RETENTION verändern. Sollte dies Ihr Problem noch nicht beheben, gäbe es noch unzählige weitere Stellschrauben z. B. GUARANTEE Undo und auch Ausnahmefälle wie z. B. die Verwendung von LOBs, dafür bräuchte es dann jedoch eine individuelle Analyse.

Rufen Sie uns an 069-588043610, wir helfen Ihnen gerne !!!

Referenz: Die Ausgabe von oerr

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

Haben Sie Fragen?

(erforderlich)
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

NEUSTE BEITRÄGE

ORA-01461 – can bind a LONG value only for insert into a LONG column

1. Texte aus oerr unter Linux 01461, 00000, „can bind a LONG value only for insert into a LONG column“ // *Cause: // *Action:  2. Erklärung Es wurde versucht, Daten vom Typ LONG in ein Feld anderen Typs einzufügen. Dies ist jedoch nicht möglich. Stattdessen wird diese...

ORA-01465 – invalid hex number

1.) Texte aus oerr unter Linux 01465, 00000, „invalid hex number“ // *Cause: // *Action: 2.) Erklärung Es werden gültige Werte in Hex erwartet. In dem String befinden sich jedoch ungültige Werte. Dieser Fehler kann beim Füllen eines Feldes vom Typ BLOB auftreten. 3.)...

ORA-01728 – numeric scale specifier is out of range (-84 to 127)

1.) Texte aus oerr unter Linux 01728, 00000, „numeric scale specifier is out of range (-84 to 127)“ // *Cause: // *Action: 2.) Erklärung Beim Anlegen einer Tabelle ist die Anzahl der Nachkommastellen bei einem Feld vom Typ number außerhalb des gültigen Bereichs. 3.)...

ORA-02049 – timeout: distributed transaction waiting for lock

1.) Texte aus oerr unter Linux 02049, 00000, „timeout: distributed transaction waiting for lock“ // *Cause: exceeded INIT.ORA distributed_lock_timeout seconds waiting for lock. // *Action: treat as a deadlock 2.) Erklärung Eine Transaktion hatte darauf gewartet, ein...

ORA-06512 – ORA-06512 at %sline %s

1.) Texte aus oerr unter Linux 06512, 00000, „at %sline %s“ // *Cause:   Backtrace message as the stack is unwound by unhandled //           exceptions. // *Action: Fix the problem causing the exception or write an exception //           handler for this condition. Or...