Tak, Twój backup działa. W uproszczeniu backup = snapshot danych z dysków i masz 2 opcje:
- cold backup - składasz bazę, blokujesz zapisy na plikach bazy (dyskach) - masz spójny stan bazy na chwilę T0 -> robisz kopię 1-1 i masz spójny backup
- hot backup - tworzony w czasie działania bazy, najczęściej wynikiem jest niespójny snapshot. Wynika to z tego, że w czasie tworzenia backupu, np.
blok_1
odczytujesz w chwili T_1
, zaś blok_N
w chwili T_n
. W chwil T_n
blok_1
ma już inną zawartość - użytkownik popełnił commita na danych z tego bloku.
Oracle wszystkie zmiany transakcyjne zachowuje w tzw. redo logach (per transakcja zapisuje obraz bloku przed zmianą i po zmianie). "Stare" redo logi mogą być zapisywane jako historia i wtedy noszą nazwę "archive logów".
Jak odtwarzasz bazę, to :
- robisz odtworzenie plików -
restore database
- uspójniasz odtworzone pliki -
recover database
(oracle wykorzystuje tu archive
i redo logi
)
Przy uspójnianiu masz możliwość wyboru, do jakiego punktu w czasie chcesz recovery robić. Zauważ, że tu jest istotne posiadanie jakiegoś punktu startowego (pełen backup) + odpowiedniej historii archive logów
. W Twoim przypadku "recover database" miało najwyraźniej wszystko co potrzeba i uspójniło bazę do chwili, gdy ją wyłączyłeś.