Ćwiczenie 3. Współbieżność i transakcje

Podobne dokumenty
Ćwiczenie 4. Użytkownicy

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

Ćwiczenie 2. Opcja przestrzenna bazy danych

Rozproszone bazy danych

Ćwiczenie 3. Funkcje analityczne

Ćwiczenie 8. Rozproszone bazy danych

Ćwiczenie 2. Struktura bazy danych Oracle

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

Ćwiczenie 2. Struktura bazy danych Oracle

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

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Ćwiczenie 10. Strojenie instancji bazy danych

Transakcje. (c) Instytut Informatyki Politechniki Poznańskiej

oprogramowanie mobilne Instrukcja obsługi PSR 2010

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

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Pracownia internetowa w szkole ZASTOSOWANIA

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

Ćwiczenie 9 współbieŝność

Wymagania do zdalnej instalacji agentów firmy StorageCraft

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

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

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

Systemy operacyjne. Zasady lokalne i konfiguracja środowiska Windows 2000

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

RADIOMETR RUM-2 Nota Aplikacyjna

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

Instrukcja obsługi serwera FTP v

Laboratorium - Podgląd informacji kart sieciowych bezprzewodowych i przewodowych

Instrukcja podłączania komputerów z systemem Microsoft Windows Vista/7 do sieci eduroam

Laboratorium - Narzędzie linii uruchamiania w systemie Windows Vista

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Oracle Application Express

Laboratorium A: Podstawy administrowania serwerem

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

Laboratorium - Zabezpieczanie kont, danych i komputera w systemie Windows XP

Laboratorium - Zabezpieczanie kont, danych i komputera w systemie Windows 7

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

INSTRUKCJA INSTALACJI APLIKACJI PROF- EAN 2

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Problemy techniczne. Kontrolę konta administratora można z powrotem włączyć po zainstalowaniu programu.

Problemy techniczne. Zdejmowanie kontroli konta administratora systemu Windows na czas instalowania programów Optivum

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

Instrukcja użytkownika systemu medycznego w wersji mobilnej. meopieka

Laboratorium 16: Udostępnianie folderów

Zarządzanie strukturą bazy danych Oracle11g

Certyfikat niekwalifikowany zaufany Certum Silver. Instalacja i użytkowanie pod Windows Vista. wersja 1.0 UNIZETO TECHNOLOGIES SA

Skrócona instrukcja funkcji logowania

Instrukcja podłączania komputerów z systemem Microsoft Windows 8 do sieci eduroam

1. Jak utworzyć mapę z punktami korzystając z przeglądarki?

Konfiguracja Połączenia

Laboratorium - Zabezpieczanie kont, danych i komputera w systemie Windows Vista

Nowe notowania epromak Professional

Rozdział 5. Administracja kontami użytkowników

Nowe notowania epromak Professional

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

I. Interfejs użytkownika.

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Aby uruchomić Multibooka, należy podłączyć nośnik USB do gniazda USB w komputerze, na którym program ma być używany.

18.Ukrywanie, wstawianie, usuwanie, formatowanie wierszy i kolumn

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Instrukcja wgrywania Certyfikatu Klienta do przeglądarki Mozilla Firefox. System Bankowości Internetowej KIRI BS 2012

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-520L

Instrukcja instalacji elektronicznego systemu obiegu dokumentów administracyjnych - esoda.

Wielowersyjne metody synchronizacji transakcji

Autor: Joanna Karwowska

System Zdalnej Obsługi Certyfikatów 2.0 Instrukcja użytkownika

Instrukcja instalacji i obsługi modemu ED77 pod systemem operacyjnym Windows 98 SE (wydanie drugie)

Ustawienia personalne

Laboratorium - Konfiguracja routera bezprzewodowego w Windows Vista

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;

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

Problemy techniczne SQL Server

Instrukcjaaktualizacji

Laboratorium - Instalacja Virtual PC

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

INSTALACJA DOSTĘPU DO INTERNETU

Jak utworzyć plik SIO dla aktualnego spisu?

Instrukcja obsługi. Helpdesk. Styczeń 2018

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Zarządzanie obiektami bazy danych Oracle11g

Instrukcja instalacji nośników USB w systemie internetowym Alior Banku

IIIIIIIIIIIIIIIMMIMMIII

Problemy techniczne SQL Server

Synchronizator plików (SSC) - dokumentacja

I. Pobranie klucza licencyjnego.

Instalacja i obsługa aplikacji MAC Diagnoza EW

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

INSTRUKCJE KONFIGURACJI POŁĄCZENIA WIFI

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Platforma e-learningowa

Laboratorium - Narzędzia linii uruchamiania w systemie Windows XP

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

INSTRUKCJA OTWARCIA RACHUNKU ALIOR TRADER DLA KLIENTÓW ALIOR BANKU

Instrukcja pracy w systemie USOSweb dla wykładowców PWSZ w Koninie - wpisywanie ocen -

Instrukcja obsługi dla wykonawcy

Kadry Optivum, Płace Optivum

Problemy techniczne SQL Server

Transkrypt:

Ćwiczenie 3. Współbieżność i transakcje 1. Uruchomienie/sprawdzenie środowiska do ćwiczeń Czas trwania: 10 minut Dwiczenie będzie realizowane na wirtualnej maszynie, na której został zainstalowany system zarządzania bazą danych Oracle. Przed przystąpieniem do zasadniczej części dwiczenia należy uruchomid maszynę wirtualną (jeśli jeszcze nie została uruchomiona) i sprawdzid czy uruchomione na niej są (i jeśli nie, to kolejno uruchomid): - Enterprise Manager - proces nasłuchu - instancja bazy danych. 1. Uruchom środowisko wirtualizacji kliknij na umieszczoną na pulpicie komputera-gospodarza ikonę Oracle VM VirtualBox. 2. Spróbuj uruchomid maszynę wirtualną. W tym celu zaznacz w lewym panelu środowiska pozycję pureasbd i naciśnij umieszczony na pasku narzędzi przycisk Uruchom (możesz również wybrad pozycję Uruchom z menu kontekstowego, dostępnego po kliknięciu prawym klawiszem myszy na pozycji pureasbd). 3. Uruchom przeglądarkę WWW i wejdź na stronę konsoli Enterprise Manager: https://localhost:1158/em. Jeśli Oracle Enterprise Manager działa, powinien zostad wyświetlony ekran logowania. Jeśli tak się nie stanie, otwórz okno wiersza poleceo (Terminal) i uruchom konsolę poleceniem emctl start dbconsole, a następnie odśwież stronę w przeglądarce.

Po wyświetleniu formularza logowania zaloguj się do konsoli administracyjnej podając następujące dane użytkownika administracyjnego: nazwa użytkownika (ang. User Name): sys hasło (ang. Password): oracle przyłącz jako (ang. Connect As): SYSDBA. Wskazówka: Uruchomienie terminala można zrealizowad np. przez kliknięcie prawym klawiszem myszki na pulpit i wybranie z menu kontekstowego pozycji Otwórz terminal. 3. Sprawdź na stronie powitalnej konsoli Enterprise Manager czy działa proces nasłuchu i czy instancja bazy danych jest uruchomiana. Jeśli nie, uruchom proces nasłuchu i/lub instancję korzystając z odpowiednich narzędzi wiersza poleceo. 2. Transakcje Czas trwania: 25 minut Dwiczenie ilustruje zatwierdzanie i wycofywanie transakcji oraz punkty bezpieczeostwa. 1. Uruchom terminal tekstowy i połącz się z bazą danych jako użytkownik scott narzędziem wiersza poleceo sqlplus (sqlplus scott/tiger). 2. Uruchom na koncie scott skrypt tworzący tabele PRACOWNICY, ZESPOLY, ETATY i wypełniający je danymi. Możesz w tym celu skopiowad zawartośd skryptu do schowka i wkleid ją do Terminala. 3. Wycofywanie transakcji. a. Wyświetl zawartośd tabeli PRACOWNICY. b. Podnieś pracownikowi NOWAK pensję o 100 zł. c. Ponownie wyświetl zawartośd tabeli PRACOWNICY. d. Wycofaj transakcję. e. Ponownie wyświetl zawartośd tabeli PRACOWNICY. 4. Operacje DDL w kontekście transakcji w Oracle. a. Podnieś pracownikowi NOWAK pensję o 150 zł. b. Wyświetl zawartośd tabeli PRACOWNICY. c. Zmieo definicję tabeli ETATY, modyfikując długośd atrybutu NAZWA do 25 znaków. d. Wycofaj bieżącą transakcję. e. Ponownie wyświetl zawartośd tabeli PRACOWNICY. Jaką pensję ma pracownik NOWAK i dlaczego? 5. Punkty bezpieczeostwa. a. Podnieś pracownikowi DOLNY pensję o 50 zł. b. Wyświetl zawartośd tabeli PRACOWNICY. c. Ustaw punkt bezpieczeostwa S1. d. Podnieś pracownikowi MARECKI pensję o 50 zł. e. Ponownie wyświetl zawartośd tabeli PRACOWNICY.

f. Ustaw punkt bezpieczeostwa S2. g. Podnieś pracownikowi JANICKI pensję o 50 zł. h. Ponownie wyświetl zawartośd tabeli PRACOWNICY. i. Wycofaj transakcję do punktu bezpieczeostwa S2. j. Ponownie wyświetl zawartośd tabeli PRACOWNICY. k. Zatwierdź transakcję. l. Spróbuj wycofad transakcję do punktu bezpieczeostwa S1. Czy potrafisz wyjaśnid komunikat o błędzie? 6. Ograniczenia integralnościowe weryfikowane na koniec transakcji. a. Utwórz tabelę TEST z jednym atrybutem ID typu NUMBER(5). b. Zdefiniuj na atrybucie ID klucz podstawowy, którego weryfikacja ma byd przeprowadzana po zakooczeniu transakcji modyfikującej tabelę TEST. c. Wstaw do tabeli TEST kilka wierszy z tą samą wartością atrybutu ID. d. Spróbuj zatwierdzid transakcję. Co zaobserwowałeś/aś? e. Zmieo definicję ograniczenia w taki sposób, aby było weryfikowane natychmiast. f. Spróbuj teraz wstawid kilka wierszy z tą samą wartością atrybutu ID. g. Usuo tabelę TEST. 3. Zarządzanie współbieżnością Czas trwania: 45 minut Celem dwiczenia jest ilustracja mechanizmów zarządzania współbieżnością na przykładzie systemu Oracle. Oracle wykorzystuje wielowersyjne zarządzanie współbieżnością (MVCC), w którym czytający nie blokują zapisujących, a zapisujący nie blokują czytających, przy czym różne transakcje mogą obserwowad różne wersje danych. To samo dwiczenie wykonane w innych systemach, przede wszystkim tych nieoferujących MVCC, mogłoby dad inne efekty. Ponadto, należy pamiętad, iż różne systemy mogą udostępniad do wyboru różne poziomy izolacji, a także w różny sposób traktowad poziomy izolacji o tej samej nazwie. Aby zaobserwowad mechanizmy zarządzania współbieżnością i ewentualne anomalie współbieżnego dostępu, wykorzystamy dwie sesje tego samego użytkownika. 1. W otwartej sesji użytkownika scott ustaw tekst zachęty narzędzia sqlplus na SESJA_1> : set sqlprompt "SESJA_1> " 2. Uruchom kolejny terminal tekstowy i połącz się w nim z bazą danych jako użytkownik scott narzędziem wiersza poleceo sqlplus. W tej drugiej, nowo otwartej sesji ustaw tekst zachęty narzędzia sqlplus na SESJA_2> : set sqlprompt "SESJA_2> " 3. Brudny zapis jako anomalia niedopuszczalna w żadnym poziomie izolacji. a. Zapamiętaj wartośd pensji pracownika NOWAK. b. W sesji 1 podnieś pensję pracownika NOWAK o 100 zł (korzystając z konstrukcji SET placa_pod = placa_pod + 100) nie zatwierdzając transakcji. c. W analogiczny sposób w sesji 2 podnieś pensję pracownika NOWAK o 50 zł. Co się stało? Dlaczego? d. Wycofaj transakcję w sesji 1.

e. Wród do sesji 2. Sprawdź wartośd pensji pracownika NOWAK. Zatwierdź transakcję. 4. Poziom izolacji READ COMMITTED (w Oracle domyślny i generalnie zalecany) jako zabezpieczający przed anomalią brudnego odczytu, ale podatny na niepowtarzalny odczyt. a. W sesji 1 podnieś pensję pracownika NOWAK o 100 zł nie zatwierdzając transakcji. Sprawdź w tej samej sesji czy modyfikacja została wykonana. b. Sprawdź jaką pensję pracownika NOWAK widzi sesja 2. Czy odczyt się powiódł? Jaka wartośd została odczytana? c. Zatwierdź transakcję w sesji 1. d. Sprawdź jaką wartośd pensji pracownika NOWAK widzi teraz sesja 2. Czy takie zachowanie systemu może stanowid problem? 5. Utracona modyfikacja przy poziomie izolacji READ COMMITTED. a. W sesji 2 zadeklaruj zmienną wiązaną na poziomie środowiska sqlplus: VARIABLE pensja NUMBER b. W sesji 2 odczytaj pensję pracownika o identyfikatorze 140 do zmiennej pensja (konieczny PL/SQL aby zmienna wiązana została ustawiona): BEGIN SELECT placa_pod INTO :pensja FROM pracownicy WHERE... END; / c. W sesji 1 podnieś pensję pracownika o identyfikatorze 140 o 20 zł (korzystając z konstrukcji SET placa_pod = placa_pod + 20) i zatwierdź transakcję. d. W sesji 2 zwiększ wartośd zmiennej zawierającej wcześniej odczytaną pensję o 10zł: BEGIN :pensja := :pensja + 10; END; / e. W sesji 2 zmodyfikuj wartośd pensji pracownika o identyfikatorze 140 na aktualną wartośd zmiennej wiązanej pensja: BEGIN UPDATE pracownicy SET placa_pod = :pensja WHERE... END; / f. Zatwierdź transakcję w sesji 2. g. Jaka jest aktualna wartośd pensji pracownika o identyfikatorze 140 w bazie danych? Dlaczego modyfikacja dokonana w sesji 1 określana jest jako utracona modyfikacja? 6. Polecenie SELECT FOR UPDATE. a. Sprawdź czy anomalia utraconej modyfikacji w scenariuszu z pkt. 5 wystąpiłaby gdyby polecenie SELECT z podpunktu 5 b. zostało uzupełnione o klauzulę FOR UPDATE. 7. Fantomy przy poziomie izolacji READ COMMITTED. a. W sesji 2 odczytaj zawartośd tabeli ZESPOLY blokując odczytane wiersze (klauzulą FOR UPDATE). b. W sesji 2 wykonaj zapytanie odczytujące liczbę zespołów. c. W sesji 1 wstaw nowy zespół o identyfikatorze 66 do tabeli ZESPOLY nie koocząc transakcji. d. W sesji 2 ponownie wykonaj zapytanie odczytujące liczbę zespołów. e. W sesji 1 zakoocz transakcję.

f. W sesji 2 ponownie wykonaj zapytanie odczytujące liczbę zespołów. Jaki tym razem jest wynik zapytania i dlaczego? g. Zakoocz transakcję w sesji 2 (aby zwolnid nałożone blokady). 8. Jawne blokowanie tabeli. a. W sesji 2 zablokuj tabelę ZESPOLY w trybie współdzielonym (SHARE MODE). b. W sesji 2 wykonaj zapytanie odczytujące liczbę zespołów. c. W sesji 1 spróbuj wstawid kolejny zespół do tabeli ZESPOLY (nadając mu identyfikator 77). d. W sesji 2 ponownie wykonaj zapytanie odczytujące liczbę zespołów. e. Zakoocz transakcję w sesji 2. f. W sesji 1 usuo zespoły o identyfikatorach większych niż 55, a następnie zatwierdź transakcję. 9. Poziom izolacji SERIALIZABLE. a. W obu sesjach ustaw poziom izolacji SERIALIZABLE. b. W sesji 1 odczytaj zawartośd tabeli ZESPOLY. c. W sesji 2 zmieo adres zespołu o identyfikatorze 30. d. W sesji 2 wstaw nowy zespół do tabeli ZESPOLY. e. Zatwierdź transakcję w sesji 2. f. W sesji 1 ponownie odczytaj zawartośd tabeli ZESPOLY. g. Zatwierdź transakcję w sesji 1. h. Ponownie odczytaj zawartośd tabeli ZESPOLY w sesji 1. i. Zatwierdź transakcję w sesji 1. 10. Błąd szeregowania transakcji przy poziomie izolacji SERIALIZABLE w modelu wielowersyjnym. a. W obu sesjach ustaw poziom izolacji SERIALIZABLE. b. W sesji 1 odczytaj zawartośd tabeli PRACOWNICY. c. W sesji 2 podnieś o 10 zł pensję pracownika o identyfikatorze 210 i zatwierdź transakcję. d. W sesji 1 spróbuj podnieśd o 20 zł pensję pracownika o identyfikatorze 210. Co się stało? Czy potrafisz wyjaśnid przyczynę błędu? e. Wycofaj transakcję w sesji 1. 11. Specyficzny dla Oracle poziom izolacji READ ONLY. a. W sesji pierwszej ustaw transakcję na transakcję tylko do odczytu (READ ONLY). b. W sesji 1 odczytaj zawartośd tabeli ZESPOLY. c. W sesji 2 zmieo adres zespołu o identyfikatorze 30. d. W sesji 2 wstaw nowy zespół do tabeli ZESPOLY. e. Zatwierdź transakcję w sesji 2. f. W sesji 1 ponownie odczytaj zawartośd tabeli ZESPOLY. g. Zatwierdź transakcję w sesji 1. h. Ponownie odczytaj zawartośd tabeli ZESPOLY w sesji 1. i. Zatwierdź transakcję w sesji 1. 12. Zakleszczenie (ang. deadlock). a. W sesji 1 podnieś o 10 zł pensję pracownika o identyfikatorze 210 nie koocząc transakcji. b. W sesji 2 podnieś o 10 zł pensję pracownika o identyfikatorze 220 nie koocząc transakcji. c. W sesji 1 spróbuj podnieśd o 10 zł pensję pracownika o identyfikatorze 220. d. W sesji 2 spróbuj podnieśd o 10 zł pensję pracownika o identyfikatorze 210. Co się stało?

e. Wycofaj transakcję, w której wykryte zostało zakleszczenie. Zatwierdź drugą transakcję. 13. DLA CHĘTNYCH: Wygeneruj zakleszczenie trzech różnych transakcji, tak aby żadna para z nich nie powodowała zakleszczenia bez udziału trzeciej transakcji. 4. Zamknięcie środowiska Czas trwania: 2 minuty Jeśli nie będziesz dzisiaj realizowad kolejnych zestawów dwiczeo, zamknij środowisko. W tym celu: 1. Przejdź na stronę konsoli Enterprise Manager i kliknij Logout w lewym górnym rogu panelu. 2. Wybierz z menu wirtualizacji pozycję Maszyna a potem Zamknij. Następnie wybierz opcję Zapisanie stanu maszyny i kliknij OK.