Systemy zarządzania bazami danych

50
Oryginał: Hector Garci a-Molina 8. Dzienniki i odtwarzani e 1 Systemy zarządzania bazami danych 8. Dzienniki i odtwarzanie

description

Systemy zarządzania bazami danych. 8. Dzienniki i odtwarzanie. Integralność/poprawność danych. Chcemy by dane zawsze były „dokładne ” lub inaczej „poprawne” EMP. Nazwisko. Wiek. Miller Tusk Jaro. 52 3421 1. Więzy integralności. Predykaty, które muszą być spełnione przez dane - PowerPoint PPT Presentation

Transcript of Systemy zarządzania bazami danych

Page 1: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 1

Systemy zarządzania bazami danych

8. Dzienniki i odtwarzanie

Page 2: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 2

Integralność/poprawność danych

• Chcemy by dane zawsze były „dokładne” lub inaczej „poprawne”

EMP Nazwisko

MillerTuskJaro

Wiek

523421

1

Page 3: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 3

Więzy integralności• Predykaty, które muszą być spełnione

przez dane• Przykłady

- x jest kluczem relacji R- zależność funkcyjna x y zachodzi w R- dom(x) = { Czerwony, Żółty, Zielony } jest poprawnym indeksem atrybutu x

relacji R- żaden pracownik nie powinien zarabiać

powyżej dwóch średnich pensji (socjalizm?)

Page 4: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 4

Integralność

• Stan integralny = stan, w którym są spełnione

wszystkie więzy integralności

• Integralna baza danych= baza danych w stanie integralnym

Page 5: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 5

Takie więzy nie załatwiają wszystkiego

• Przykład 1: więzy transakcyjne:– Gdy zmienia się Zarobek,

nowy Zarobek > stary Zarobek

– Gdy usuwane jest Konto,saldo = 0

Page 6: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 6

Możliwa emulacja

• Wiezy transakcyjne można emulować zwykłymi (przy pewnych zmianach schematu):

Konto

Więzy: usunięte? saldo = 0

Nr …. saldo usunięte?

Page 7: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 7

• Przykład 2: Baza danych ma odzwierciedlać stan świata rzeczywistego

Bazadanych

Rzeczywistość

Wiezy integralności nie dają spójności

Page 8: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 8

Tylko integralność jest jednak dostępna...

• Obserwacja: Baza danych musi mieć możliwość bycia nieintegralną

• Przykład więzów : a1 + a2 +…. an = S

Zaksięguj 100zł na a2: a2 a2 + 100 S S + 100

– Suma aktywów = Sum pasywów• Ale nie tuż po pierwszej operacji podwójnego

księgowania

Page 9: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 9

a2

S

.

.50

.

.1000

.

.150

.

.1000

.

.150

.

.1100

• Przykład więzów : a1 + a2 +…. an = S

Zaksięguj 100zł na a2: a2 a2 + 100 S S + 100

Page 10: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 10

Transakcja

• Ciąg operacji zachowujących integralność

• Założenie: jeśli transakcja T zaczyna działanie w stanie integralnym i działa w izolacji, to pozostawia bazę w stanie integralnym

Integralnabaza danych

Integralnabaza danych’Transakcja

Page 11: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 11

Poprawność

• Jeśli zakonczą się wszystkie transakcje, to baza danych będzie integralna

• Każda transakcja widzi integralny stan bazy danych

Page 12: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 12

Jak może dojść do złamania więzów?

• Błąd w transakcji• Błąd w SZBD (oprogramowanie jak

każde) • Awaria sprzętu

n.p., awaria sprzetu powoduje zmianę sald kont

• Błędne nałożenie się transakcji n.p: T1: daje 10% podwyżki programistom

T2: zmienia programistów w analityków systemowych

Page 13: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 13

Abstrahujemy od:

• Pisania poprawnych transakcji• Pisania poprawnych SZBD• Sprawdzania więzów spojności i

czyszczenia danych–Metody z tego wykładu nie są od nich zależne

Page 14: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 14

Model awarii

Zdarzenia Pożądane Niepożądane

Spodziewane Niespodziewane

procesor

pamięć dysk

CPU

M D

Page 15: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 15

Zdarzenie pożądane: czytaj podręcznik produktu….

Zdarzenia niepożądane spodziewane:Awaria systemu:

- utrata zawartości pamięci- zawieszenie procesora

Zdarzenia niepożądane niespodziewane: wszystko inne!

I to by było na tyle!!

Page 16: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 16

• Utrata danych na dysku• Utrata pamięci bez zawieszenia

procesora• Supernowa akurat gdzieś blisko

procesora

Niepożądane niespodziewane

Page 17: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 17

Czy ten model ma sens?

Rozwiązanie: Kontrole niskopoziomowe i nadmiarowość w celu zwiększenia prawdopodobieństwa adekwatności modelu

Np., Powiel dyskowe składowisko danych Parzystość pamięci, sumy

kontrolne Kontrole na procesorze

Page 18: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 18

Hierarchia pamięci

Pamięć Dysk

x x

Page 19: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 19

Podstawowe operacje

• Input (x): blok ze zmienną x pamięć• Output (x): blok ze zmienną x dysk

• Read (x,t): zrób input(x) jeśli trzeba t wartość x w bloku

• Write (x,t): zrób input(x) jeśli trzeba wartość x w bloku

tt zmienna lokalna, x obiekt bazy danych

Page 20: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 20

Niedokończona transakcja

Przykład Więzy: A=B T1: A A 2 B B 2

Page 21: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 21

T1: Read (A,t); t t2Write (A,t);Read (B,t); t t2Write (B,t);Output (A);Output (B);

A: 8B: 8

A: 8B: 8

pamięć dysk

1616

16

awaria!

Page 22: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 22

Atomowość

• Wykonaj wszystkie akcje transakcji albo żadną

• Rozwiązanie: dziennik wycofań + zapis natychmiastowy

• Specjalne podziękowania dla Jasia i Małgosi – Jeszcze zanim spotkali Babę Jagę– Dziennik trwały i nietrwały

Page 23: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 23

T1: Read (A,t); t t2 A=B

Write (A,t);Read (B,t); t t2Write (B,t);Output (A);Output (B);

A:8B:8

A:8B:8

pamięć dysk dziennik

Dziennik wycofań, zapis natychmiastowy

1616

<T1, start><T1, A, 8>

<T1, commit>16 <T1, B, 8>

16

Page 24: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 24

Pewna komplikacja• Dziennik najpierw powstaje w

pamięci• Nie idzie na dysk przy każdej akcji

pamięć

BD

Dziennik

A: 8 16B: 8 16Log:<T1,start><T1, A, 8><T1, B, 8>

A: 8B: 8

16Zły stan

# 1

Page 25: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 25

Pewna komplikacja• Dziennik najpierw powstaje w

pamięci• Nie idzie na dysk przy każdej akcji

pamięć

BD

Dziennik

A: 8 16B: 8 16Log:<T1,start><T1, A, 8><T1, B, 8><T1, commit>

A: 8B: 8

16Zły stan

# 2

<T1, B, 8><T1, commit>

...

Page 26: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 26

Reguły dziennika wycofań(1)Dla każdej akcji wygeneruj wpis dziennika

(zawierający starą wartość)

(2) Zanim zmieniony x znajdzie się na dysku, dotyczący go wpis dziennika musi trafić na dysk.(zapis wyprzedzający – WAL write ahead logging)

(3) Zanim do dziennika na dysku trafi wpis commit, wszystkie zmiany w danych muszą być zapisane na dysku

Page 27: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 27

Odtwarzanie z dziennika wycofań

Dla każdej Ti mającej <Ti, start> w dzienniku:

- Jeśli <Ti,commit> lub <Ti,abort> są w dzienniku, nic nie rób- W p.p. dla każdego <Ti, X, v> w dzienniku:

write (X, v)output (X )zapisz <Ti, abort> do dziennika

Czy to poprawne??

Page 28: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 28

Odtwarzanie w tył dziennika wycofań

(1) Niech S = zbiór transakcji mających w dzienniku wpis <Ti, start> ale nie mających wpisu <Ti, commit> ani <Ti, abort>

(2) Dla każdego wpisu dziennika <Ti, X, v>, w odwrotnym porzadku chronologicznym rób: - jeśli Ti S - write (X, v)

- output (X)

(3) Dla każdej transakcji Ti S rób

- zapisz do dziennika <Ti, abort>

Page 29: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 29

Awaria w czasie odtwarzania?

• Nie ma problemu• Tu: wycofanie jest idempotentne

f(f(x)) = f(x)• Nie zawsze tak musi być

Page 30: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 30

Dziennik powtorzeń, zapis opóźniony

T1: Read(A,t); t t2; write (A,t); Read(B,t); t t2; write (B,t);

Output(A); Output(B)

A: 8B: 8

A: 8B: 8

pamięć Baza danychDzienni

k

1616

<T1, start><T1, A, 16><T1, B, 16>

<T1, commit><T1, end>

output1616

Page 31: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 31

Reguły dziennika powtórzeń(1) Dla każdej akcji wygeneruj wpis dziennika

(zawierający nową wartość)

(2) Zanim zmieniony x znajdzie się na dysku, wszystkie wpisy dotyczące transakcji, która zmodyfikowała x muszą trafić na dysk.

(3) Przy commit, zrzuć dziennik na dysk (flush)

(4) Po wykonaniu wszystkich zmian w bazie danych, dodaj do dzienika wpis END

Page 32: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 32

• Dla każdej Ti mającej w dzienniku <Ti, commit> – Dla każdego wpisu dziennika <Ti, X, v>

Write(X, v)Output(X)

Odtwarzanie z dziennika powtórzeń

Czy to jest poprawne??

Page 33: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 33

(1) Niech S = zbiór transakcji mający w dzienniku <Ti, commit> ale nie <Ti, end>

(2) Dla każdego wpisu <Ti, X, v> W porzadku chronologiczny, rób:

- jeśli Ti S, Write(X, v)Output(X)

(3) Dla każdej Ti S, wpisz do dziennika <Ti, end>

Odtwarzanie w przód z d. powtórzeń

Page 34: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 34

Łączenie wpisów <Ti, end>• Chcemy opóźnić zapisy gorących obiektów

Np. X to stan kasy:T1: ... update X...T2: ... update X...T3: ... update X...T4: ... update X...

Akcje:write Xoutput Xwrite Xoutput Xwrite Xoutput Xwrite Xoutput X

łączny <end> (punkt kontrolny)

Page 35: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 35

Punkt kontrolny

Co pewien czas:(1) Przestań wpuszczać nowe transakcje(2) Czekaj na koniec wszystkich transakcji(3) Zrzuć (flush) dziennik na dysk (4) Zrzuć (flush) strony danych na dysk

• Ale nie usuwaj ich z pamięci

(5) Wpisz do dziennika „punkt kontrolny”(6) Wznów przetwarzanie transakcji

• bez akcji <ti, end>• prosty punkt kontrolny

Page 36: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 36

Co przy odtwarzaniu?

Dziennik powtórzeń (dysk)

<T1

,A,1

6>

<T1

,com

mit

>

Ch

eck

poin

t

<T2

,B,1

7>

<T2

,com

mit

>

<T3

,C,2

1>

Bum!... ... ... ...

...

...

Page 37: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 37

Poważne wady

• Dziennik wycofań– Nie umożliwia odtwarzania z kopii

zapasowej

• Dziennik powtórzeń– Zmodyfikowane bloki muszą być

trzymane w pamięci aż do zatwierdzenia

Page 38: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 38

Dziennik wycofań i powtórzeń

Gdy zmiana X, to wpisz do dziennika<Ti, Xid, nowa wartość X, stara wartość

X>

Page 39: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 39

Reguły dziennika wycofań i powtórzeń

• Stronę X można zapisać przed lub po zatwierdzeniu Ti

• Wpisy dziennika muszą być zrzucane (flush) przed zapisem odpowiedniej zmodyfikowanej strony (WAL)

• Zrzuć (flush) ale tylko dziennik przy zatwierdzeniu

Page 40: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 40

Niespoczynkowy punkt kontrolny

Dziennik

żeby brudne wycofać strony

zrzucone

Start-ckptaktywne:Ti,Tj,...

endckpt

.........

...

Page 41: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 41

Co się dzieje przy odtwarzaniu?

Dziennik brak commit dla T1

T1,-a

...CkptT1

...Ckptend

...T1-b

...

Wycofaj T1 (wycofaj a,b)

Page 42: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 42

Powtórzenie

Dziennik

...T1

a... ...

T1

b... ...

T1

c...

T1

cmt...

ckpt-end

ckpt-sT1

Powtórz T1: (powtórz b,c)

Page 43: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 43

Proces odtwarzania• Przebieg wstecz (koniec dz. ostatni początek pktu kontr.)

– Wyznacz S = zbiór transakcji zatwierdzonych– Wycofaj akcje transakcje spoza S

• Wycofaj niezakończone transakcje– Przemierz łańcuchy wycofań transakcji

(lista transakcji aktywnych punktu kontr.) - S

• Przebieg wprzód (ostatni początek pktu kontr. koniec dz.)

– Powtórz akcje transakcji z S

przebieg wstecz

przebieg wprzódstart

check-point

Page 44: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 44

Akcje „materialne” („realne”)

• Np. wypłata z bankomatuTi = a1 a2 …... aj …... An

• Wykonuj je po zatwierdzeniu• Zaplanuj ręczne procedury

odtwarzania

PLN

Page 45: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 45

Awaria nośnika

A: 16

Rozwiązanie: Rób kopie zapasowe!

Page 46: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 46

1: potrójna nadmiarowość

• Utrzymuj 3 kopie na niezależnych dyskach

• Output(X) --> trzy zapisy• Input(X) --> trzy odczyty +

głosowanie

X1 X2 X3

Page 47: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 47

2: nadmiarowe zapisy, jeden odczyt

• Utrzymuj N kopii na niezależnych dyskach

• Output(X) --> trzy zapisy• Input(X) --> Odczyt z jednej kopii

- jeśli OK, gotowe- wpp. użyj innej

Przy zalożeniu że można wykryć błędy w danych

Page 48: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 48

3: Kopia zapasowa + dziennik

kopiazapasowa

bazadanych

dziennik• Jeśli stracono bazę danych– odtwórz bazę z kopii zapasowej– przywróć jej aktualny stan używając dziennika

• Kopia zapasowa może być tworzona na gorąco

– analogicznie jak punkt kontrolny– trzeba zaznaczyć początek i koniec w dzienniku

Page 49: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 49

Kiedy można obciąć dziennik?

check-point

kopiazapas.

ostatniepotrz.

wycofan.

Nie jest potrzebnepo awarii nośnika

Nie jest potrzebne dowycofań po awarii systemu

Nie jest potrzebne dopowtórzeń po awarii systemu

dziennik

czas

Page 50: Systemy zarządzania bazami danych

Oryginał: Hector Garcia-Molina

8. Dzienniki i odtwarzanie 50

Podsumowanie• Integralność danych• Jedno ze źródeł problemów: awarie

- Dziennik- Nadmiarowość

• Drugie ze źródeł problemów: współdzielenie danych... później