Zarządzanie transakcjami

Podobne dokumenty
Właściwości transakcji

Tadeusz Pankowski

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych

070 TRANSAKCJE. Prof. dr hab. Marek Wisła

Tadeusz Pankowski

Bazy danych. Andrzej Łachwa, UJ, /15

Tadeusz Pankowski

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Dazy Banych. Michał Rusnarczyk

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

przykłady problemów; realizacja dostaw części od producenta do klienta:

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

Cel odtwarzania. Transakcyjne odtwarzanie bazy danych. Modele awarii. Efektywność odtwarzania MTTF

:11 BD_1_W9

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. nadzw. Tadeusz Antczak. Transakcje

Recovery Transakcyjne odtwarzanie bazy danych po awarii

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

I. Techniki wielowersyjne sterowania współbieżnością

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych 9. SQL Klucze obce Transakcje

Bazy danych w sterowaniu

Wprowadzenie (1) Przetwarzanie transakcyjne. Wprowadzenie (2) Problemy przygotowania aplikacji

Bazy danych 6a. Transakcje. P. F. Góra

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Pojęcie bazy danych. Funkcje i możliwości.

Transakcje jednocześnie ACID

Bazy danych 2. Wykład 6 Transakcje

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Bazy danych 2. Wykład 1

Przechowywanie danych

Wykłady z przedmiotu Podstawy baz danych Transakcje dr hab. prof. UŁ. Tadeusz Antczak. Transakcje

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część II

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Przetwarzanie transakcyjne

Kopie zapasowe w SQL Server. Michał Bleja

Wielowersyjne metody synchronizacji transakcji

Bazy danych. Plan wykładu. Czynniki wpływające na fizyczny projekt bazy danych. bazy danych

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Plan ćwiczenia. Rozdział 17. zarządzania współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Adam Cankudis IFP UAM

Baza danych. Modele danych

Mechanizm transakcji w relacyjnych i obiektowych bazach danych

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Rozproszone i obiektowe systemy baz danych

Bazy danych 9. Klucze obce Transakcje

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

NTFS omówienie systemu plików. autor: Julian Krzemiński Źródła:

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Multiprocessor Shared-Memory Information Exchange. Damian Klata, Adam Bułak

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Przyczyny awarii. Struktury wykorzystywane do odtwarzania bd. Archiwizowanie plików dziennika. Archiwizowanie danych. danych

Wykład I. Wprowadzenie do baz danych

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Przetwarzanie potokowe pipelining

Technologia informacyjna (IT - Information Technology) dziedzina wiedzy obejmująca:

Rozpoczęcie pracy z programem.

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Archiwizacja i odtwarzanie bazy danych

Zapewnienie wysokiej dostępności baz danych. Marcin Szeliga MVP SQL Server MCT

Instrukcja obsługi. Helpdesk. Styczeń 2018

System automatycznego wysyłania SMSów SaldoSMS

Administracja bazami danych

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Bazy danych Transakcje

Inżynieria oprogramowania. Faza implmentacji. wykład 7

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

MECHANIZM WYMIANY DANYCH ORAZ ROZLICZEŃ APTEKA NFZ

Rozdział 17. Zarządzanie współbieżnością zadania

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I

Ćwiczenie 9 współbieŝność

FARA INTENCJE ONLINE. Przewodnik dla użytkownika programu FARA. Włodzimierz Kessler SIGNUM-NET

1 Instalowanie i uaktualnianie serwera SQL Server

Czym jest baza danych?

SQL Server. Odtwarzanie baz danych.

Plan ćwiczenia. Rozdział 17 Zarządzanie współbieżnością. Dostęp współbieżny a dostęp spójny. Spójność bazy danych

Transakcja jest sekwencją logicznie powiązanych operacji na bazie danych, która przeprowadza bazę danych z jednego stanu spójnego w inny stan spójny

Informatyka (7-8) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

PODSTAWY BAZ DANYCH Wykład 9

Doc. dr inż. Maria Chałon. Ochrona i bezpieczeństwo danych

GIT. Rozproszony system kontroli wersji

UPDATE konta /* dodaj do konta B kwotę N */ UPDATE konta /* odejmij kwotę N z konta A */ WHERE id_konta = B; SET stan = stan + N

Administracja i programowanie pod Microsoft SQL Server 2000

DOKUMENTACJA ADMINISTRATORA SYSTEMU INFORMATYCZNEGO POLSKI FADN

INSTALACJA I KONFIGURACJA Instalacja systemu WF-Mag Mobile 2

Internetowe bazy danych

Od czego zacząć przy budowaniu środowisk wysokiej dostępności?

Zagadnienia ianywhere Solutions, Inc. All rights reserved.

OLTP Przetwarzanie Transakcyjne

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Transkrypt:

Zarządzanie transakcjami

Właściwości ACID Przyjmuje się, że transakcje i protokoły zarządzania transakcjami powinny posiadać właściwości ACID: Atomowość (atomicity) każda transakcja stanowi pojedynczą i niepodzielną jednostkę przetwarzania. Każda transakcja jest wykonywana w całości albo wcale. Spójność (consistency) transakcja rozpoczynając się w spójnym stanie bazy danych pozostawia bazę danych w stanie spójnym. Nie może naruszyć warunków spójności. Odizolowanie (isolation) zmiany wykonywane przez transakcję nie zatwierdzoną nie są widziane przez inne transakcje (chyba, że przyjęty poziom izolacji na to zezwala). Trwałość (duration) zmiany w bazie danych dokonane przez transakcję zatwierdzoną są trwałe w bazie danych, tzn. nawet w przypadku awarii systemu musi istnieć możliwość ich odtworzenia.

Transakcje i ich właściwości Transakcją T nazywamy ciąg następujących operacji na wspólnej bazie danych: rt[x] czytanie (read) danej x przez transakcję T; wt[x] zapisanie (write) danej x przez transakcję T; at odrzucenie (abort, rollback) transakcji T; ct zatwierdzenie (commit) transakcji T; x jest jednostką danych o różnym poziomie granulacji np.. dana elementarna, krotka (rekord), zbiór krotek wyznaczony przez warunek Φ, tabela bazy danych, itd..

Przykład transakcji (1) T1: w1[x] r1[x] c1 T2: w2[x] r2[x] c2 Na każdym poziomie izolacji: w1[x] r1[x] c1 w2[x]r2[x] c2

Przykład transakcji (2) T1: w1[x] a1 T2: r2[x] w2[x->y] c2 Na poziomie izolacji 0: w1[x] r2[x]w2[x->y]c2a1 Na poziomie izolacji wyższym niż 0: w1[x] a1r2[x]w2[x->y]c2

Przykład transakcji (3) T1: r1[x] r1[x] c1 T2: w2[x] c2 Na poziomie izolacji 0, 1: r1[x] w2[x] r1[x] c1 c2 Na poziomie izolacji 2, 3: r1[x] r1[x] c1 w2[x] c2

Przykład transakcji (4) T1: r1[u] r1[u] c1 T2: w2[u] c2 Na poziomie izolacji 0, 1, 2: r1[u] w2[u] r1[u] c1 c2 Na poziomie izolacji 3: r1[u] r1[u] c1 w2[u] c2

Planista Zarządzaniem transakcjami zajmuje się planista (ang. scheduler) Planista związany jest z każdym menadżerem baz danych zarządzającym danymi lokalnej bazy danych Jest tylu planistów ile jest baz w systemie Główny menadżer transakcji SZBD kieruje wykonanie transakcji do odpowiedniego planisty Strategia działania planisty jest realizowana za pomocą protokołu blokowania dwufazowego (B2F)

Reguły działania planisty Jeżeli operacja pj[x] może być wykonana, to planista zakłada blokadę do odczytu (SHARED) lub do zapisu (EXCLUSIVE) na daną x dla transakcji Tj. Operację tę przekazuje Menadżerowi Danych (MD) do wykonania. Zdjęcie założonej blokady może nastąpić najwcześniej wtedy, gdy MD powiadomi planistę o zakończeniu wykonywania operacji. Jeśli nastąpiło zdjęcie jakiejkolwiek blokady założonej dla transakcji T, to dla T nie można założyć już żadnej innej blokady (reguła B2F).

Fazy B2F Trzecia reguła uzasadnia nazwę blokowanie dwufazowe. W procesie wyróżnia się dwie fazy: faza zakładania blokad i faza zdejmowania blokad na rzecz jakiejś transakcji. Sposób zdejmowania blokad jest różny dla różnych poziomów izolacji.

Realizacja różnych poziomów izolacji w protokole B2F Założenia: Uzyskanie blokady S (SHARED) jest konieczne dla odczytania danej. Uzyskanie blokady X (EXCLUSIVE) jest konieczne dla zapisania (modyfikacji, usunięcia) danej. Blokadę S dla tej samej danej może uzyskać dowolna liczba transakcji. Blokadę X dla konkretnej danej może uzyskać tylko jedna transakcja. S i X nie mogą być jednocześnie nałożone na tę samą daną dla różnych transakcji.

Działanie B2F - przykład Dana jest historia transakcji: w1[y]w2[y]c1c2 Transakcja T1 zakłada blokadę X dla danej y. Transakcja T2 nie może założyć żadnej blokady na daną y, a więc musi zaczekać na zwolnienie blokady przez T1. W momencie zatwierdzenia transakcji T1 następuje zwolnienie blokady X. Po zwolnieniu blokady przez T1, transakcja T2 zakłada blokadę X na daną y. W momencie zatwierdzenia transakcji T2 następuje zwolnienie blokady.

B2F realizacja poziomu izolacji 0 Dana zablokowana na czas realizacji operacji Read (blokada S) jest natychmiast odblokowywana po zakończeniu tej operacji. Dana zablokowana na czas realizacji operacji Write (blokada X) zmienia blokadę na S, to znaczy może na niej być realizowana operacja Read, ale nie operacja Write. Blokada na operacji Write zdejmowana jest całkowicie dopiero po zatwierdzeniu transakcji.

Nieodtwarzalne historie przetwarzania blokowanie zasobów na poziomie 0 Rozważmy nieodwracalną historię przetwarzania: H: w1[x] r2[x] w2[x->y] c2 w1[z] a1 Powodem anomalii braku odtwarzalności jest to, że transakcja T2 czytająca dane z niezatwierdzonej transakcji (T1) została zatwierdzona w czasie działania transakcji T1. Blokowanie zasobów: Transakcja T1 ustawia blokadę X (EXCLUSIVE) na x oraz z. Po zmianie danej x blokada jest zmieniona na S (SHARED). Tak więc transakcja T2 może odczytać daną x. T2 ustawia więc blokadę S na x. Transakcja T2 ustawia blokadę X na daną y. Transakcja T2 jest zaakceptowana, a więc blokady są ściągane. Transakcja T1 odrzucona, a więc blokady są ściągane.

B2F realizacja poziomu izolacji 1 Dana zablokowana na czas realizacji operacji Read (blokada S) jest natychmiast odblokowywana po zakończeniu tej operacji. Dana zablokowana na czas realizacji operacji Write (blokada X) jest odblokowywana dopiero po zatwierdzeniu transakcji.

Nieodtwarzalne historie przetwarzania blokowanie zasobów na poziomie 1 Rozważmy nieodwracalną historię przetwarzania: H: w1[x] r2[x] w2[x->y] c2 w1[z] a1 Blokowanie zasobów: Transakcja T1 ustawia blokadę X (EXCLUSIVE) na x oraz z. Po zapisaniu danej x blokada jest nadal zachowana, a nie jak w przypadku poziomu 0 zmieniona na S (SHARED). Tak więc transakcja T2 nie może odczytać danej x. Transakcja T2 może ustawić blokadę X na daną y dopiero po zakończeniu T1.

Historie przetwarzania z anomalią powtórnego czytania blokowanie zasobów na poziomie 1 Rozważmy historię przetwarzania z anomalią powtórnego czytania: H: r1[x] w2[x] c2 r1[x] c1 Powodem występowania anomalii powtórnego czytania jest to, że dopuszczalne jest zapisywanie w nie zatwierdzonych transakcjach. Blokowanie zasobów: Transakcja T1 ustawia blokadę S (SHARED) na x. Po odczytaniu danej x blokada jest zwalniana. Transakcja T2 ustawia więc blokadę X (EXCLUSIVE) na daną x. Transakcja T2 zwalnia blokady, bo jest zatwierdzona. Transakcja T1 odczytuje wartość danej x, bo ma na niej blokadę S. Transakcja T1 zwalnia blokady.

B2F realizacja poziomu izolacji 2 i 3 B2F z poziomem izolacji 2: Zdejmowanie blokad następuje po zatwierdzeniu transakcji. B2F z poziomem izolacji 3: Dodatkowo utrzymywane są blokady sterowane przez warunki, tzn. zablokowana jest możliwość takich aktualizacji ( w tym dołączania), które wpływają na rekordy spełniające określony warunek.

Historie przetwarzania z anomalią powtórnego czytania blokowanie zasobów na poziomie 2 Rozważmy historię przetwarzania z anomalią powtórnego czytania: H: r1[x] w2[x] c2 r1[x] c1 Powodem występowania anomalii powtórnego czytania jest to, że dopuszczalne jest zapisywanie w nie zatwierdzonych transakcjach. Anomalię tę można wyeliminować zakładając, że zapisywanie danych wczytanych przez transakcję jest dopuszczalne dopiero wtedy, gdy transakcja ta została zatwierdzona. Blokowanie zasobów: Transakcja T1 ustawia blokadę S (SHARED) na x. Po odczytaniu danej x blokada nie jest zwalniana. Transakcja T2 ustawia więc blokadę X (EXCLUSIVE) na daną x dopiero po zatwierdzeniu T1.

Odtwarzanie bazy danych

Typy awarii Awaria twarda: uszkodzeniu uległy dane w pamięci zewnętrznej. Mechanizmami niezbędnymi do radzenia sobie z tego typu awariami jest replikacja danych, oprogramowania i sprzętu. Awaria miękka: dane w pamięci zewnętrznej nie uległy uszkodzeniu, awaria dotyczy najczęściej utraty danych w pamięci operacyjnej. Przyczynami są najczęściej błędy w oprogramowaniu, rzadziej zanik napięcia. W przypadku awarii miękkiej stosuje się taktykę polegającą na wyłączeniu serwera, zastosowaniu mechanizmów odtwarzania i restarcie serwera.

Problem odtwarzania bazy danych System musi być w stanie odtworzyć swój poprawny stan w sposób automatyczny, a więc bez interwencji człowieka. Operacja odtwarzania jest zwykle inicjowana automatycznie przy restarcie systemu. Odtwarzanie realizuje postulat trwałości ze zbioru postulatów ACID. Odtwarzanie dotyczy awarii miękkich.

Organizacja pamięci Pamięć chwilowa - znajduje się w pamięci operacyjnej. Służy do tymczasowego przechowywania danych pobieranych z bazy danych. Jest tracona w przypadku awarii miękkiej. Pamięć bazy danych pamięć stała, w której przechowywane są dane. Dziennik transakcji znajduje się w pamięci stałej. Zapisane są w nim operacje wykonane na bazie danych.

Transakcyjny charakter odtwarzania Transakcja stanowi podstawową jednostkę odtwarzania bazy danych po awarii. Jeżeli awaria nastąpiła pomiędzy zapisem do bufora a przeniesieniem jego zawartości do pamięci zewnętrznej, to musi zostać ustalony status transakcji, która tego zapisu dokonywała. Jeżeli została ona zatwierdzona, to wszystkie modyfikacje przez nią dokonane muszą zostać odtworzone (operacja redo). W przeciwnym wypadku wszystkie zmiany muszą być wycofane (operacja undo).

Dziennik transakcji Znajduje się w pamięci stałej. Zakładamy, że zapisane są w nim chronologicznie wszystkie ostatnio zatwierdzone wartości wszystkich danych bazy. Dzięki niemu możliwe jest określenie ostatnio zatwierdzonych danych. Zawartość dziennika może być określona w sposób następujący: <Id, T, X, v1, v2>, przy czym: Id identyfikator transakcji; T typ zapisu: modyfikacja, usunięcie, wstawienie; X modyfikowana dana; v1 wartość przed modyfikacją; v2 wartość po modyfikacji;

Punkty kontrolne (ang. Checkpoints) Oprócz wartości danych dziennik transakcji zawiera także: Informację o rozpoczęciu i zakończeniu transakcji; Punkty kontrolne Punkt kontrolny to moment, w którym następuje zapis stanu bazy danych. W tym momencie wszystkie bufory zostają zapisane do pamięci zewnętrznej. Stosowanie punktów kontrolnych pozwala ograniczyć zakres odtwarzania bazy i związanego z tym przetwarzania zapisów w dzienniku do czasu po ostatnim punkcie kontrolnym.

Techniki modyfikacji odroczona modyfikacja Odroczona modyfikacja polega na zapisie do bazy dopiero po zakończeniu całej transakcji lub w punkcie kontrolnym; Dla każdej transakcji protokół ten ma następujący przebieg: 1) w dzienniku zapisywana jest informacja o rozpoczęciu transakcji; 2) w dzienniku zapisywana jest informacja o dokonaniu wszelkich modyfikacji bez przenoszenia dokonanych zmian do pamięci zewnętrznej; 3) w momencie zatwierdzenia transakcji lub w punkcie kontrolnym wszystkie zapisy w dzienniku dotyczące transakcji są przenoszone na dysk i na tej podstawie dokonywane są rzeczywiste zmiany w bazie danych; 4) w przypadku odrzucenia transakcji wszystkie zmiany są pomijane.

Techniki modyfikacji odroczona modyfikacja (c.d.) W przypadku awarii cofamy się w dzienniku do ostatniego punktu kontrolnego i wykonujemy następujące operacje: 1) Każda transakcja, której zakończenie nastąpiło po ostatnim punkcie kontrolnym musi zostać powtórzona. 2) Procedura redo wykonuje wszystkie zapisy w bazie danych na podstawie obrazów pobranych z dziennika dla tej transakcji w tej samej kolejności, w jakiej były one zapisywane w dzienniku. 3) Jeżeli w trakcie odtwarzania nastąpi kolejna awaria operację odtwarzania można powtórzyć.

Techniki modyfikacji natychmiastowa modyfikacja Natychmiastowa modyfikacja polega na zapisaniu zmian do bazy od razu w momencie ich występowania; Dla każdej transakcji protokół ten ma następujący przebieg: 1) w dzienniku zapisywana jest informacja o rozpoczęciu transakcji; 2) w dzienniku zapisywana jest informacja o dokonaniu wszelkich modyfikacji; 3) po zapisaniu rekordu dziennika, zmiany są od razu przenoszone do pamięci zewnętrznej; 4) w przypadku zakończenia transakcji informacja o tym jest zapisywana w dzienniku.

Punkty kontrolne - przykład Zawartość logu: <T1, start> <T2, start> <T3, start> <T2, commit> <CHECKPOINT> <T4, start> <T1, commit> <T5, start> <T4, commit> -----------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)

Algorytm odtwarzania spójnego stanu b. d. po awarii Wszystkie transakcje wykonane przed ostatnim punktem kontrolnym uznawane są za zakończone. Wszystkie transakcje wykonane (COMMIT) pomiędzy ostatnim punktem kontrolnym a awarią są powtarzane (REDO). Wszystkie transakcje wykonywane do momentu awarii (brak COMMIT) są wycofywane (UNDO ROLLBACK).

SQL Server W punkcie kontrolnym są wykonywane następujące operacje: Zmiany są wpisywane do bazy niezależnie od stanu transakcji; Wszystko co jest zarejestrowane w logu transakcji jest wpisywane do bazy; Generowane są rekordy logu transakcji opisujące punkt kontrolny

Dziękuję za uwagę