Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie1 Systemy zarządzania bazami danych 8. Dzienniki i odtwarzanie.

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Przetwarzanie transakcyjne
SYSTEMY OPERACYJNE WSTĘP
Interfejs użytkownika do zarządzania konfiguracją oprogramowania
PROGRAMOWANIE STRUKTURALNE
WYKŁAD 2 SYSTEMY EKSPERTOWE cz.2.
Systemy do operowania dużymi i trwałymi zbiorami danych
Wycofywanie potwierdzonych transakcji
ZŁOŻONOŚĆ OBLICZENIOWA
Systemy zarządzania bazami danych
Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)
Rozdział 13: Architektura systemu Oracle
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Temat nr 10: System przerwań
Wykład 3 Wojciech Pieprzyca
Projektowanie i programowanie obiektowe II - Wykład IV
ZARZĄDZANIE PROCESAMI
Modele baz danych - spojrzenie na poziom fizyczny
Zarządzanie zmianami w systemie bezpieczeństwa - rozwiązania Check Point i partnerów OPSEC dr inż. Mariusz Stawowski
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Bezpieczeństwo baz danych
STORAGE Pamięci masowe.
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
TRANSAKCJE TYLKO ODCZYT TYLKO ZAPIS
Podstawy programowania
BŁĘDY KSIĘGOWE Przygotowały: Pod kierunkiem: Martyna Kupińska
rachunkowość zajęcia nr 3
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Projektowanie tabeli w arkuszu kalkulacyjnym
Wykonywanie kopii bezpieczeństwa danych
Model relacyjny.
Narzędzie do programowania sterowników EKC Programator EKA183A
dr Łukasz Murowaniecki T-109
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Etapy uruchamiania systemu Pliki konfiguracyjne
Wykład 7 Synchronizacja procesów i wątków
PL/SQL – dalsza wędrówka
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
System Zarządzania Bazą Danych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Procesor, pamięć, przerwania, WE/WY, …
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Projektowanie relacyjnych baz danych – diagramy związków encji
Powtórzenie wyk ł adu 10 Fizyczna organizacja danych w bazie danych. Indeksy.
Czy twoje dane są bezpieczne ? czyli jako konstruować system żeby zapewnić ciągłość przetwarzania i zabezpieczyć się przed utrata danych Grzegorz Pluciński.
Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.
Optymalna konfiguracja Microsoft SQL Server 2014
Operacje na plikach i folderach
Tryby adresowania i formaty rozkazów mikroprocesora
Wstęp do programowania Wykład 10 Programowanie w logice.
Wstęp do programowania Wykład 7
Formatowanie tabel w Excelu w tym formatowanie warunkowe Prezentację przygotował: Cieplucha Maciej.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Temat: Tworzenie bazy danych
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
SQL Server 2012 Autor: Radosław Różyński Strategie i ciekawostki związane z kopiami zapasowymi baz danych SQL Server.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Rachunkowość finansowa - wykłady
Rachunkowość finansowa - wykłady
Rachunkowość finansowa – wykład 2
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Rachunkowość finansowa – część 4
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie1 Systemy zarządzania bazami danych 8. Dzienniki i odtwarzanie

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie2 Integralność/poprawność danych Chcemy by dane zawsze były dokładne lub inaczej poprawne EMP Nazwisko Miller Tusk Jaro Wiek

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie3 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?)

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie4 Integralność Stan integralny =stan, w którym są spełnione wszystkie więzy integralności Integralna baza danych =baza danych w stanie integralnym

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie5 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie6 Możliwa emulacja Wiezy transakcyjne można emulować zwykłymi (przy pewnych zmianach schematu): Konto Więzy: usunięte? saldo = 0 Nr….saldousunięte?

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie7 Przykład 2: Baza danych ma odzwierciedlać stan świata rzeczywistego Baza danych Rzeczywistość Wiezy integralności nie dają spójności

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie8 Tylko integralność jest jednak dostępna... Obserwacja: Baza danych musi mieć możliwość bycia nieintegralną Przykład więzów : a 1 + a 2 +…. a n = S Zaksięguj 100zł na a 2 : a 2 a S S –Suma aktywów = Sum pasywów Ale nie tuż po pierwszej operacji podwójnego księgowania

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie9 a 2 S Przykład więzów : a 1 + a 2 +…. a n = S Zaksięguj 100zł na a 2 : a 2 a S S + 100

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie10 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie11 Poprawność Jeśli zakonczą się wszystkie transakcje, to baza danych będzie integralna Każda transakcja widzi integralny stan bazy danych

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie12 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie13 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie14 Model awarii Zdarzenia Pożądane Niepożądane Spodziewane Niespodziewane procesor pamięćdysk CPU M D

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie15 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!!

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie16 Utrata danych na dysku Utrata pamięci bez zawieszenia procesora Supernowa akurat gdzieś blisko procesora Niepożądane niespodziewane

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie17 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie18 Hierarchia pamięci Pamięć Dysk x x

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie19 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 t t zmienna lokalna, x obiekt bazy danych

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie20 Niedokończona transakcja PrzykładWięzy: A=B T 1 : A A 2 B B 2

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie21 T 1 :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 16 awaria!

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie22 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie23 T 1 :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 pamięć dysk dziennik Dziennik wycofań, zapis natychmiastowy

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie24 Pewna komplikacja Dziennik najpierw powstaje w pamięci Nie idzie na dysk przy każdej akcji pamięć BD Dziennik A: 8 16 B: 8 16 Log: A: 8 B: 8 16 Zły stan # 1

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie25 Pewna komplikacja Dziennik najpierw powstaje w pamięci Nie idzie na dysk przy każdej akcji pamięć BD Dziennik A: 8 16 B: 8 16 Log: A: 8 B: 8 16 Zły stan # 2...

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie26 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie27 Odtwarzanie z dziennika wycofań Dla każdej Ti mającej w dzienniku: - Jeśli lub są w dzienniku, nic nie rób - W p.p. dla każdego w dzienniku: write (X, v) output (X ) zapisz do dziennika Czy to poprawne??

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie28 Odtwarzanie w tył dziennika wycofań (1) Niech S = zbiór transakcji mających w dzienniku wpis ale nie mających wpisu ani (2) Dla każdego wpisu dziennika, 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie29 Awaria w czasie odtwarzania? Nie ma problemu Tu: wycofanie jest idempotentne f(f(x)) = f(x) Nie zawsze tak musi być

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie30 Dziennik powtorzeń, zapis opóźniony T 1: 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ęć Baza danych Dziennik 16 output 16

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie31 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie32 Dla każdej Ti mającej w dzienniku –Dla każdego wpisu dziennika Write(X, v) Output(X) Odtwarzanie z dziennika powtórzeń Czy to jest poprawne??

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie33 (1) Niech S = zbiór transakcji mający w dzienniku ale nie (2) Dla każdego wpisu W porzadku chronologiczny, rób: - jeśli Ti S, Write(X, v) Output(X) (3) Dla każdej Ti S, wpisz do dziennika Odtwarzanie w przód z d. powtórzeń

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie34 Łączenie wpisów 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 X output X write X output X write X output X write X output X łączny (punkt kontrolny)

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie35 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 prosty punkt kontrolny

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie36 Co przy odtwarzaniu? Dziennik powtórzeń (dysk) Checkpoint Bum!...

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie37 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie38 Dziennik wycofań i powtórzeń Gdy zmiana X, to wpisz do dziennika

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie39 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie40 Niespoczynkowy punkt kontrolny Dziennik żebybrudne wycofaćstrony zrzucone Start-ckpt aktywne: Ti,Tj,... end ckpt...

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie41 Co się dzieje przy odtwarzaniu? Dziennik brak commit dla T1 T 1,- a... Ckpt T 1... Ckpt end... T1-bT1-b Wycofaj T 1 (wycofaj a,b)

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie42 Powtórzenie Dziennik... T1aT1a T1bT1b T1cT1c T 1 cmt... ckpt- end ckpt-s T 1 Powtórz T1: (powtórz b,c)

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie43 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ód start check- point

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie44 Akcje materialne (realne) Np. wypłata z bankomatu Ti = a 1 a 2 …... a j …... A n Wykonuj je po zatwierdzeniu Zaplanuj ręczne procedury odtwarzania PLN

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie45 Awaria nośnika A: 16 Rozwiązanie: Rób kopie zapasowe!

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie46 1: potrójna nadmiarowość Utrzymuj 3 kopie na niezależnych dyskach Output(X) --> trzy zapisy Input(X) --> trzy odczyty + głosowanie X1X2 X3

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie47 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie48 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

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie49 Kiedy można obciąć dziennik? check- point kopia zapas. ostatnie potrz. wycofan. Nie jest potrzebne po awarii nośnika Nie jest potrzebne do wycofań po awarii systemu Nie jest potrzebne do powtórzeń po awarii systemu dziennik czas

Oryginał: Hector Garcia-Molina8. Dzienniki i odtwarzanie50 Podsumowanie Integralność danych Jedno ze źródeł problemów: awarie - Dziennik - Nadmiarowość Drugie ze źródeł problemów: współdzielenie danych... później