Junior — Middle
W jaki sposób baza danych wykorzystuje dziennik WAL do odzyskiwania przerwanej transakcji?
sobes.tech AI
Odpowiedź od AI
WAL (Write-Ahead Logging) to mechanizm rejestrowania w bazach danych, który zapewnia niezawodne odzyskiwanie danych po awariach.
Gdy transakcja zmienia dane, zmiany są najpierw zapisywane w dzienniku WAL na dysku, a następnie stosowane do głównej bazy. Jeśli system zostanie przerwany (np. z powodu awarii zasilania), podczas odzyskiwania baza odczytuje dziennik WAL i powtarza (redo) lub anuluje (undo) transakcje, które były w trakcie, aby przywrócić dane do spójnego stanu.
W ten sposób WAL pozwala:
- gwarantować atomowość transakcji.
- szybko się odzyskać po awariach, stosując tylko zmiany z dziennika.
Przybliżony proces odzyskiwania:
- Po starcie baza odczytuje dziennik WAL.
- Zastosowuje wszystkie zakończone transakcje.
- Anuluje nieukończone transakcje.
- Po tym baza jest gotowa do pracy z spójnymi danymi.