Stel dat u een onvoltooide (niet-vastgelegde) transactie heeft. Oracle heeft alle dingen gedaan die u in de vraag zei.
Nu crasht de machine.
De DBA herstelt na het herstel van de machine (of op een nieuwe machine, dat hangt ervan af :)) de laatste back-up en past alle herhalingslogboeken toe op het nieuwe exemplaar. In het opnieuw doen zit ook wat er in stap 1 is gedaan. Maar dat werk is niet vastgelegd, dus de motor moet het terugdraaien. Hiervoor heeft het het rollback-segment nodig. Maar het rollback-segment is er niet als u het niet bij stap 3 hebt geregistreerd.
Ik weet dat je je nu zult afvragen:waarom past het logboeken toe voor niet-vastgelegd werk? Dat was ook mijn vraag toen ik erover las. Ik weet het niet zeker, maar misschien is het makkelijker om het te doen. Misschien is het moeilijker om voor elke invoer in het logboek te controleren of het deel uitmaakt van een vastgelegde transactie. Dit is echter hoe Oracle werkt:ik pas alle redo-logs toe en draai niet-vastgelegde transacties terug.