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

DBVisit Single Instance Standby for RAC

A few months ago I got the exciting task to create a single instance standby for a RAC. Honestly,I was skeptical about whether it would run properly. Additionaly, the single instance should be usingfilesystem, while the Real Application Clusters is using ASM. Except...

ORA-00936 – missing expression

1.) Texte aus oerr unter Linux 00936, 00000, „missing expression“ // *Cause: // *Action 2.) Erklärung Diese Meldung wird angezeigt, wenn ein Teil der Syntax fehlt. Fehlen z.B. bei einem Select-Statement die Spaltennamen (bzw. * für alle Spalten), so wird diese Meldung...

ORA-06550 – line %s, column %s:\n%s

1.) Texte aus oerr unter Linux 06550, 00000, „line %s, column %s:\n%s“ // *Cause: Usually a PL/SQL compilation error. // *Action:… 2.) Erklärung Es wurde versucht, einen invalid Block oder PL/SQL-Code auszuführen. Dabei ist ein Fehler bei der Kompilierung aufgetreten....