1 / 50

Systemy zarządzania bazami danych

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

taylor
Download Presentation

Systemy zarządzania bazami danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy zarządzania bazami danych 8. Dzienniki i odtwarzanie 8. Dzienniki i odtwarzanie

  2. Integralność/poprawność danych • Chcemy by dane zawsze były„dokładne” lub inaczej „poprawne” EMP Nazwisko Wiek Miller Tusk Jaro 52 3421 1 8. Dzienniki i odtwarzanie

  3. Więzy integralności • Predykaty, które muszą być spełnione przez dane • Przykłady - xjest kluczem relacji R - zależność funkcyjna xyzachodzi w R - dom(x) = { Czerwony, Żółty, Zielony } - a jest poprawnym indeksem atrybutu x relacji R - żaden pracownik nie powinien zarabiać powyżej dwóch średnich pensji (socjalizm?) 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 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 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? 8. Dzienniki i odtwarzanie

  7. Wiezy integralności nie dają spójności • Przykład 2:Baza danych ma odzwierciedlać stan świata rzeczywistego Rzeczywistość Baza danych 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łnaa2: a2 a2 + 100 S S + 100 • Suma aktywów = Sum pasywów • Ale nie tuż po pierwszej operacji podwójnego księgowania 8. Dzienniki i odtwarzanie

  9. Przykład więzów : a1 + a2 +…. an = S Zaksięguj 100złnaa2: a2 a2 + 100 S S + 100 a2 S . . . . . . 50 150 150 . . . . . . 1000 1000 1100 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 Integralna baza danych Integralna baza danych’ Transakcja 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 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 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 8. Dzienniki i odtwarzanie

  14. Model awarii Zdarzenia Pożądane Niepożądane Spodziewane Niespodziewane procesor pamięć dysk CPU D M 8. Dzienniki i odtwarzanie

  15. I to by było na tyle!! Zdarzenia niepożądane niespodziewane: wszystko inne! Zdarzenie pożądane:czytaj podręcznik produktu…. Zdarzenia niepożądane spodziewane: Awaria systemu: - utrata zawartości pamięci - zawieszenie procesora 8. Dzienniki i odtwarzanie

  16. Niepożądane niespodziewane • Utrata danych na dysku • Utrata pamięci bez zawieszenia procesora • Supernowa akurat gdzieś blisko procesora 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 8. Dzienniki i odtwarzanie

  18. Hierarchia pamięci x x Pamięć Dysk 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 trzebawartość x w bloku  t t zmienna lokalna, x obiekt bazy danych 8. Dzienniki i odtwarzanie

  20. Niedokończona transakcja PrzykładWięzy: A=B T1: A  A  2 B  B  2 8. Dzienniki i odtwarzanie

  21. awaria! 16 16 16 T1: Read (A,t); t  t2 Write (A,t); Read (B,t); t  t2 Write (B,t); Output (A); Output (B); A: 8 B: 8 A: 8 B: 8 pamięć dysk 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 8. Dzienniki i odtwarzanie

  23. <T1, start> <T1, A, 8> 16 16 16 16 Dziennik wycofań, zapis natychmiastowy T1: Read (A,t); t  t2 A=B Write (A,t); Read (B,t); t  t2 Write (B,t); Output (A); Output (B); A:8 B:8 A:8 B:8 <T1, B, 8> <T1, commit> dysk pamięć dziennik 8. Dzienniki i odtwarzanie

  24. 16 Zły stan # 1 Pewna komplikacja • Dziennik najpierw powstaje w pamięci • Nie idzie na dysk przy każdej akcji pamięć BD Dziennik A: 8 B: 8 A: 8 16 B: 8 16 Log: <T1,start> <T1, A, 8> <T1, B, 8> 8. Dzienniki i odtwarzanie

  25. 16 Zły stan # 2 Pewna komplikacja • Dziennik najpierw powstaje w pamięci • Nie idzie na dysk przy każdej akcji pamięć BD Dziennik A: 8 B: 8 A: 8 16 B: 8 16 Log: <T1,start> <T1, A, 8> <T1, B, 8> <T1, commit> ... <T1, B, 8> <T1, commit> 8. Dzienniki i odtwarzanie

  26. Reguły dziennika wycofań • Dla każdej akcji wygeneruj wpis dziennika (zawierający starą wartość) (2) Zanim zmieniony xznajdzie się na dysku, dotyczący go wpis dziennika musi trafić na dysk. (zapis wyprzedzający – WALwrite ahead logging) (3) Zanim do dziennika na dysku trafi wpis commit, wszystkie zmiany w danych muszą być zapisane na dysku 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?? 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> 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ć 8. Dzienniki i odtwarzanie

  30. <T1, start> <T1, A, 16> <T1, B, 16> <T1, commit> output 16 16 16 16 Dziennik powtorzeń, zapis opóźniony T1: Read(A,t); t t2; write (A,t); Read(B,t); t t2; write (B,t); Output(A); Output(B) A: 8 B: 8 A: 8 B: 8 <T1, end> Baza danych pamięć Dziennik 8. Dzienniki i odtwarzanie

  31. Reguły dziennika powtórzeń • Dla każdej akcji wygeneruj wpis dziennika (zawierający nową wartość) (2) Zanim zmieniony xznajdzie 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 8. Dzienniki i odtwarzanie

  32. Odtwarzanie z dziennika powtórzeń • Dla każdej Ti mającej w dzienniku <Ti, commit> • Dla każdego wpisu dziennika <Ti, X, v> Write(X, v) Output(X) Czy to jest poprawne?? 8. Dzienniki i odtwarzanie

  33. Odtwarzanie w przód z d. powtórzeń (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> 8. Dzienniki i odtwarzanie

  34. łączny <end> (punkt kontrolny) Łączenie wpisów <Ti, end> • Chcemy opóźnić zapisy gorących obiektów Akcje: write X output X write X output X write X output X write X output X Np. X to stan kasy: T1: ... update X... T2: ... update X... T3: ... update X... T4: ... update X... 8. Dzienniki i odtwarzanie

  35. Punkt kontrolny • bez akcji <ti, end> • prosty 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 8. Dzienniki i odtwarzanie

  36. <T1,A,16> <T2,B,17> <T1,commit> <T2,commit> Checkpoint <T3,C,21> Co przy odtwarzaniu? Dziennik powtórzeń (dysk) Bum! ... ... ... ... ... ... 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 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> 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 8. Dzienniki i odtwarzanie

  40. Niespoczynkowy punkt kontrolny Start-ckpt aktywne: Ti,Tj,... end ckpt Dziennik żeby brudne wycofaćstrony zrzucone ... ... ... ... 8. Dzienniki i odtwarzanie

  41. Co się dzieje przy odtwarzaniu? Dziennikbrak commit dla T1 ... T1,- a ... Ckpt T1 ... Ckpt end ... T1- b Wycofaj T1 (wycofaj a,b) 8. Dzienniki i odtwarzanie

  42. Powtórzenie Dziennik ... T1 a ... ckpt-s T1 ... T1 b ... ckpt- end ... T1 c ... T1 cmt ... Powtórz T1: (powtórz b,c) 8. Dzienniki i odtwarzanie

  43. Proces odtwarzania • Przebiegwstecz(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 start check- point przebieg wprzód 8. Dzienniki i odtwarzanie

  44. Akcje „materialne” („realne”) • Np. wypłata z bankomatu Ti = a1 a2 …... aj …... An • Wykonuj je po zatwierdzeniu • Zaplanuj ręczne procedury odtwarzania PLN 8. Dzienniki i odtwarzanie

  45. Awaria nośnika A: 16 Rozwiązanie:Rób kopie zapasowe! 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 X3 X1 X2 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 8. Dzienniki i odtwarzanie

  48. 3: Kopia zapasowa + dziennik kopia zapasowa baza danych 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 8. Dzienniki i odtwarzanie

  49. Kiedy można obciąć dziennik? dziennik ostatnie potrz. wycofan. check- point kopia zapas. czas Nie jest potrzebne po awarii nośnika Nie jest potrzebne do wycofań po awarii systemu Nie jest potrzebne do powtórzeń po awarii systemu 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 8. Dzienniki i odtwarzanie

More Related