Załóżmy, że masz niedokończoną (niezatwierdzoną) transakcję. Oracle zrobiło wszystko, co powiedziałeś w pytaniu.
Teraz maszyna się zawiesza.
DBA, po odzyskaniu maszyny (lub nowej maszyny, to zależy :)) przywraca ostatnią kopię zapasową i stosuje wszystkie dzienniki przeróbek na nowej instancji. W ponawianiu jest również to, co zostało zrobione w kroku 1. Ale ta praca nie jest popełniona, więc silnik musi ją wycofać. Do tego potrzebuje segmentu wycofywania. Ale segmentu wycofania nie będzie, jeśli nie zalogowałeś go w kroku 3.
Wiem, że teraz zapytasz:dlaczego stosuje logi dla niezaangażowanej pracy? To było moje pytanie również, gdy o tym czytałem. Nie wiem na pewno, ale może tak jest łatwiej. Być może trudniej jest sprawdzić, czy każdy wpis w dzienniku jest częścią zatwierdzonej transakcji. Jednak tak działa Oracle:stosuję wszystkie logi ponawiania, a następnie wycofuję niezatwierdzone transakcje.