Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałSobiesław Kortas Został zmieniony 10 lat temu
1
Zarządzanie transakcjami Wykład S. Kozielski
2
Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną całość. Przykład transakcji: rezerwacja miejsc R: begin znajdź wolne miejsce m; rezerwuj znalezione miejsce dla pasażera p end;
3
Przykład transakcji: przeniesienie kwoty K z konta X na konto Y T: begin read X; X:=X-K; write X; read Y; Y:=Y+K; write Y end;
4
Pożądane własności transakcji 1.Atomowość – transakcja musi zostać wykonana w całości, albo wszystkie efekty jej częściowego wykonania muszą zostać wycofane 2.Spójność – transakcja nie może naruszać więzów spójności 3.Izolacja – transakcja musi działać w pełnej izolacji od innych transakcji. 4.Trwałość – wynik zakończonej transakcji nie może zostać utracony.
5
Środowisko realizacji transakcji Serwer SZBD Aplikacja 1 BD Aplikacja 2Aplikacja 3 stacja 1 stacja 2stacja 3
6
Harmonogram transakcji Uszeregowanie (kolejność wykonania) wszystkich operacji elementarnych pewnego zbioru transakcji realizowanych współbieżnie
7
Problemy ze współbieżnym wykonaniem transakcji Współbieżny harmonogram dwóch transakcji rezerwacji miejsc R1 - rezerwacja biletu 1R2 - rezerwacja biletu 2 znajdź wolne miejsce m 0 rezerwuj miejsce m 0 dla pasażera p1 rezerwuj miejsce m 0 dla pasażera p2
8
(H1) Harmonogram szeregowy T1T2 read A A:=A-100 write A read B B:=B+100 write B read B A 0 =1000 A=900B:=B-200 B 0 =2000 B=1900write B C 0 =3000 C=3200read C C:=C+200 0 =6000 =6000 write C
9
(H2) Harmonogram szeregowalny T1T2 read A read B A:=A-100 B:=B-200 write A write B read B read C B:=B+100 C:=C+200 write B write C
10
(H3) Harmonogram nieszeregowalny T1T2 read A A:=A-100 read B write A B:=B-200 read B write B B:=B+100 read C write B C:=C+200 write C
11
Mechanizm blokowania dostępu do danych LOCK UNLOCK
12
Efekty wykonania LOCK X 1) sukces (udało się nałożyć blokadę) – transakcja uzyskuje prawo dostępu do jednostki X, 2) niepowodzenie (nie udało się nałożyć blokady) – brak prawa dostępu: - zawieszenie transakcji żądającej, lub - kontynuacja transakcji żądającej bez prawa dostępu do X.
13
Ziarnistość (granulacja) blokowania : - wiersz (rekord), - cała tablica, - cała baza danych
14
T1T2 lock A read A A:=A-100 lock B write A read B unlock A B:=B-200 lock B Zawieszenie T1 write B unlock B read B lock C B:=B+100 read C write B C:=C+200 unlock B write C unlock C
15
U: begin V: begin lock Y; lock X; read Y;read X; unlock Y;unlock X; lock X;lock Y; read X; read Y; X:=X+Y; Y:=Y+X; write X; write Y; unlock X unlock Y end; end; X 0 =20, Y 0 =30 H1: U;V: X=50, Y=80 H2: V;U: X=70, Y=50
16
UV lock Y read Y unlock Y lock X read X unlock X lock Y read Y Y:=Y+X write Y unlock Y lock X read X X:=X+Y write X unlock X H3: X=50, Y=50
17
Dwufazowy protokół blokowania Transakcja wypełnia protokół dwufazowy, jeśli wszystkie operacje blokowania występują przed pierwszą operacją odblokowania. Twierdzenie Dowolny harmonogram transakcji dwufazowych jest harmonogramem szeregowalnym.
18
UV lock Y read Y lock X unlock Y lock X Zawieszenie transakcji V read X X:=X+Y write X unlock X read X lock Y unlock X read Y Y:=Y+X write Y unlock Y H4 H1
19
Inny model blokowania RLOCK (read-lock) – blokowanie do odczytu (blokada współdzielona - shared), WLOCK (write-lock) – blokowanie do zapisu (blokada wyłączna - exclusive). UNLOCK
20
Wyróżnianie transakcji w programach 1) Domyślne każda instrukcja SQL jest transakcją, 2) Jawne: [BEGIN TRANSACTION]- początek, COMMIT [TRANSACTION] - koniec – zatwierdzenie transakcji, ROLLBACK [TRANSACTION]- koniec – wycofanie transakcji.
21
Prowadzenie dziennika transakcji Serwer SZBD Menedżer Transakcji Aplikacja 1 BD Aplikacja 2Aplikacja 3 stacja 1 stacja 2stacja 3 Log dziennik transakcji
22
T:begin begin transaction; find X; if not found then rollback else begin lock X; get X; X:=X-K; write X; find Y; if not found then rollback else begin lock Y; get Y; Y:=Y+K; write Y; commit end end;
23
Model z bezpośrednim zapisem do bazy danych
24
Stan dziennika po wycofaniu transakcji
25
Stan dziennika po awarii
26
Model z opóźnionym zapisem do bazy danych
27
Punkty kontrolne (CHECKPOINT) Wykonanie przerwania związanego z punktem kontrolnym: – dokończenie aktualnych operacji na bazie danych i/lub logu – przejście do obsługi przerwania Obsługa przerwania (obsługa punktu kontrolnego): – zapis zawartości buforów na dysk (do bazy danych) – wpis do dziennika transakcji (logu) rekordu
28
Punkty kontrolne - przykład Zawartość logu: -----------awaria Transakcje zakończone (bezpieczne): T2 Transakcje wymagające powtórzenia: T1, T4 (REDO T1, T4) Transakcje wymagające wycofania: T3, T5 (UNDO T3, T5)
29
Algorytm odtwarzania spójnego stanu b. d. po awarii 1)Wszystkie transakcje wypełnione przed ostatnim punktem kontrolnym uznawane są za zakończone 2)Wszystkie transakcje wypełnione (COMMIT) pomiędzy ostatnim punktem kontrolnym a awarią są powtarzane (REDO) 3)Wszystkie transakcje wykonywane do momentu awarii (brak COMMIT) są wycofywane (UNDO – ROLLBACK)
30
Wykorzystanie dziennika do ochrony bazy danych - podsumowanie 1) Wycofanie transakcji z poziomu programu (aplikacji), (niedostępność danych,...) 2) Wycofanie transakcji z poziomu SZBD, (zakleszczenie transakcji, zawieszenie transakcji,...) 3) Odtworzenie spójnego stanu b.d. po awarii i upadku systemu 4) Odtworzenie b.d. i przywrócenie jej spójnego stanu po zniszczeniu dysku z bazą danych (dziennik ocalał)
31
BD Log BACKUP
32
BD Log BACKUP RESTORE BD
33
Odtworzenie spójnego stanu b.d. po awarii dysku BD Log BACKUP RESTORE ROLLFORWARD BD
34
Mechanizmy blokad w SQL-u – poziomy izolacji Generalna zasada: - zapis (modyfikacja) – wiersz (rekord) blokowany jest na wyłączność do końca transakcji, - odczyt – wybór rodzaju blokady i zakres utrzymywania zależy od poziomu izolacji. Poziom izolacji może ustalać programista: SET TRANSACTION ISOLATION LEVEL
35
Poziomy izolacji Poziom izolacjiEfekt niepożądany READ UNCOMMITTED brudny odczyt READ COMMITTED niepowtarzalny odczyt REPEATABLE READ fantom SERIALIZABLE
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.