Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:Dlaczego Oracle tworzy wektor zmiany redo opisujący zmianę w bloku cofania, gdy użytkownik wyda instrukcję zmiany elementu danych

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć wiersze danych z bloku pl/sql

  2. dane listygg do użytecznego formatu?

  3. Jak zaimplementować ora_hash (seedable hash, który dzieli dowolny typ danych sql na n segmentów)

  4. Funkcja Oci_connect jest niezdefiniowana w CentOS z Oracle

  5. Błąd odbiornika TNS