Hallo Leute,
ich hab mal wieder ein Oracle Problem. Und zwar tritt regelmässig folgender Fehler mit jeweils unterschiedlichen RB-Segmenten auf:
ORA-01555: snapshot too old: rollback segment number 9 with name „RBS7“ too small
Das Szenario schaut so aus:
Die Datenbank enthält nur eine Tabelle. Auf diese Tabelle werden von drei verschiedenen Prozessen ständig INSERT- und UPDATE-Befehle ausgeführt. Die Tabelle stellt eine Baumstruktur dar, d. h. hat einen FK auf sich selber.
Ein vierter Prozess löscht regelmässig (alle halben Stunden) Daten aus dieser Tabelle die zuvor von einem der anderen Prozesse mit einem Lösch-Flag gekennzeichnet wurden. Ausserdem verschiebt dieser Prozess Datensätze die noch kein Lösch-Flag haben aber älter als fünf Tage sind automatisch in eine andere Tabelle (zuerst UPDATE indem ein Flag gesetzt wird, dann INSERT in die andere Tabelle, dann DELETE).
Dieser vierte Prozess verwendet allerdings ein eigens für diesen Prozess angelegtes, größeres RB-Segment (über SET TRANSACTION USE ROLLBACK SEGMENT …).
Und in genau diesem viertem Prozess, der eigentlich ein anderes Rollback-Segment verwenden sollte, tritt obiger Fehler auf.
Hat da jemand eine Idee woran das liegen könnte?
Danke und Grüße,
Robert