Tworzenie przestrzeni tabel

Download Report

Transcript Tworzenie przestrzeni tabel

Tworzenie przestrzeni tabel

CREATE [UNDO] TABLESPACE nazwa przestrzeni tabel DATAFILE nazwa pliku danych rozmiar [instrukcja przechowywania] [BLOCKSIZE rozmiar [K]] [TEMPORARY] [EXTENT MANAGEMENT DICTIONARY] [EXTENT MANAGEMENT LOCAL[AUTOALLOCATE]] [EXTENT MANAGEMENT LOCAL[UNIFORM SIZE rozmiar [K/M]]] [SEGMENT SPACE MANAGEMENT AUTO] [SEGMENT SPACE MANAGEMENT MANUAL]

Tworzenie przestrzeni tabel

UNDO – parametr określa, że tworzona przestrzeń tabel będzie zawierać informacje służące do cofania operacji instrukcja przechowywania określa nazwę pliku, rozmiar itp.

BLOCKSIZE – tworzenie przestrzeni tabel o nie standardowych rozmiarach bloków TEMPORARY – przestrzeń tabel będzie wykorzystywana jako tymczasowa EXTEND MANAGEMENT – określa, czy przestrzeń tabel będzie zarządzana słownikiem danych, czy lokalnie SEGMENT SPACE MANAGEMENT przestrzenią w segmentach – instrukcja wykorzystywana do ustawienia automatycznego (za pomocą bitmapy) bądź ręcznego (za pomocą listy wolnych bloków) zarządzania wolną

segmenty, ekstenty i bloki danych

ekstent plik danych blok segment

Ekstenty

Aby system zarządzania bazą danych Oracle osiągał max elastyczność i jednocześnie był jak najbardziej wydajny, konieczne było stworzenie mechanizmu, w którym ciągłe bloki byłyby tworzone i zarządzane razem • Ekstent jest zbiorem ciągłych bloków • Taki zbiór bloków jest tworzony za każdym razem, kiedy do obiektu wymagana jest dodatkowa przestrzeń •

Segmenty

są po prostu zbiorem ekstentów

Istnieje kilka typów segmentów:

segment danych może być wykorzystywany do przechowywania tabel oraz klastrów – podstawowy typ segmentu, który segment indeksu – do przechowywania indeksów segment przywracania – przechowywane są informacje służące do wycofywania operacji. Segmenty te zostały zastąpione przestrzeniami tabel cofania segment tymczasowy – do przechowywania danych generowanych podczas działania Oracle’a. Mogą być one używane do sortowania i złączeń

Globalna przestrzeń systemowa SGA

Globalna przestrzeń systemowa SGA jest obszarem pamięci współużytkowanej wykorzystywanym przez Oracle’a do przechowywania informacji kontrolnych instancji Oracle’a

SGA jest przydzielana podczas uruchamiania instancji i zwalniana podczas jej zatrzymywania

W skład informacji zawartych w SGA wchodzą:

bufory pamięci podręcznej bazy danych – przechowują ostatnio używane bloki danych

bufory dziennika powtórzeń – czyli zmian wprowadzonych do bazy – wykorzystywane do odtwarzania po awarii systemu

pula współużytkowania – struktury współużytkowanej pamięci, takie jak współużytkowany obszar SQL, wewnętrzne informacje słownika danych

Globalna przestrzeń systemowa SGA

Dzięki temu, że pamięć podręczna przechowuje bloki w oparciu o algorytm preferujący ostatnio używane elementy, częściej wykorzystywane bloki pozostają w pamięci, co pozwala na zmniejszenie operacji we/wy i podniesienie wydajności

Budowa serwera bazy danych

Serwer bazy danych składa się z: • Plików na dysku zawierających tabele z danymi i inne obiekty bazy danych oraz pomocnicze struktury danych • Instancji (jednej lub więcej) - czyli oprogramowania operującego na bazie danych (jest to zbiór procesów i wspólna pamięć umożliwiająca korzystanie użytkownikom z bazy danych)

Procesy Oracle komunikacji sieciowej

• komunikacja między każdą aplikacją użytkownika a bazą danych odbywa się za pośrednictwem tzw procesu usługowego. Jego rolą jest obsługa żądań użytkowników

Zadania serwera bazy danych:

• Wykonywanie instrukcji SQL • Przechowywanie i organizacja danych • Sprawowanie kontroli nad: – spójnością, – zarządzanie dostępem, – transakcje, – konta, – zasoby, – zarządzanie zasobami

Wykorzystanie systemu zarządzania bazą danych dla współbieżnej pracy wielu użytkowników

• Bazy są przewidziane do współbieżnej pracy wielu użytkowników • Transakcje to niepodzielne operacje wykonywane przez serwer na zamówienie klienta • System pilnuje aby wszystkie operacje zostały prawidłowo wykonane i dopiero gdy wszystko zakończy się sukcesem, wtedy transakcja jest zatwierdzana • Gdy którakolwiek z części transakcji się nie powiedzie, wtedy cała transakcja jest anulowana • Dostęp do danych poprzez transakcje, blokady, konta

Łączenie się z egzemplarzem bazy danych

• Aby połączyć się z egzemplarzem bazy danych z poziomu klienta, należy skonfigurować plik tnsnames.ora znajdujący się w katalogu: $ORACLE_HOME/network/admin – w edytorze tekstu – za pomocą programu Net Menager ORCL= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP) (CONNECT_DATA= (SERVER=DEDOCATED (SERVICE_NAME=orcl))) Nazwa usługi lub identyfikatorSID

SQL*Plus - wersje

• SQL*Plus uruchamiany z wiersza poleceń systemu Unix • Klient z graficznym interfejsem użytkownika dla SQL*Plus • SQL Worksheet • iSQL*Plus

SQL*Plus uruchamiany z wiersza poleceń systemu Unix

Aby połączyć się z egzemplarzem bazy, należy wpisać w wierszu poleceń

sqlplus system/oracle@orcl

• Lepiej jest łączyć się używając nazwy użytkownika z symbolem@ wraz z nazwą usługi sieciowej

sqlplus system@orcl

• Instrukcja CONNECT umożliwia nawiązanie nowego połączenia w aktualnej sesji np.

CONNECT ctxsys@orcl

Klient z graficznym interfejsem użytkownika dla SQL*Plus

• Graficzny interfejs użytkownika programu SQL*Plus nie obejmuje żadnych zaawansowanych funkcji, które nie byłyby dostępne w wersji uruchamianej z wiersza poleceń • Aby uruchomić ten interfejs w systemie Windows należy otworzyć: Start/WszystkieProgramy/PodstawowyKatalogOracle/ Application Development i wybrać opcję SQL Plus

SQL Worksheet

Oferuje funkcje niedostępne z wiersza poleceń oraz przez ponownego graficzny interfejs: • możliwość przywołania starszych instrukcji z historii i wczytania ich do bufora w celu ich uruchomienia • wyświetlenie planu wykonania uruchamianych instrukcji SQL Plan wykonania to metoda dostępu wybrana przez Oracle w celu jak najbardziej efektywnego wykonania określonych instrukcji SQL

iSQL*Plus

• umożliwia wyświetlenie wielobajtowych znaków np. japońskich • Aby zmienić kodowanie czcionek w przeglądarce Internet Explorer, należy wybrać opcję Widok/Kodowanie/Unicode(UTF-8) • wystarczy zalogować się do iSQK*Plus przy użyciu adresu URL określonego w trakcie tworzenia egzemplarza bazy, a system wyświetli wszystkie czcionki z obsługą UTF-8

Zmienianie ustawień sesji w SQL*Plus

• • • • • •

W trakcie logowania SQL*Plus uruchamia skrypt glogin.sql z katalogu $ORACLE_HOME/sqlplus/admin, konfiguruje środowisko na potrzeby sesji Możliwa jest zmiana ustawień po zalogowaniu się do SQL*Plus Łatwiej jest dodać najczęściej używane opcje do skryptu glogin.sql, aby system ustawił je automatycznie Niestandardowe ustawienia: SET pages 99 - rozmiar strony SET echo OFF SET long 6400

JDEVELOPER

• • • • •

SQL*Plus jest wygodny, ponieważ jest wbudowany w każdą aktualną wersję bazy danych i stanowi podstawowy interfejs serwera bazodanowego Funkcje JDeveloper obejmują: wyświetlanie w ramkach wszystkich obiektów bazodanowych możliwość edycji kodu PL/SQL bazy danych w JDeveloper szablony kodu przyspieszające generowanie kodu porady związane z optymalizacją działania SQL mechanizmy diagnostyczne – przechodzenie przez kod

JDEVELOPER

Środowisko JDeveloper można pobrać ze strony otn.oracle.com

Nie ma on instalatora archiwum Zip – wszystkie pliki są spakowane w – proces rozpakowywania powoduje zainstalowanie aplikacji

PAKIETY WBUDOWANE

Pakiety udostępniane w Oracle (pakiety wbudowane) dają programistom dostęp do funkcjonalności, która znacznie rozszerza możliwości rozwiązywania złożonych problemów

PAKIETY WBUDOWANE UŻYTKOWNIKA SYS

• • • • •

Każdy pakiet ma publiczny synonim Ten synonim umożliwia wywoływanie danego pakietu Do utworzenia pakietu służy skrypt catproc.sql

, który należy wywołać w czasie tworzenia bazy danych Jeśli korzystamy z asystenta konfiguracji bazy danych skrypt zostanie uruchomiony automatycznie Aby używać tych pakietów, trzeba przyznać danemu użytkownikowi uprawnienia EXECUTE

PAKIETY WBUDOWANE UŻYTKOWNIKA SYS

• • •

Jedną z najważniejszych funkcjonalności jest możliwość umieszczania w jednej bazie danych bloków o różnych rozmiarach Umożliwia to czerpanie korzyści z dużych bloków w systemach wspomagania decyzji oraz z małych bloków w przetwarzaniu transakcji na bieżąco Żeby korzystać z wielu rozmiarów bloków, trzeba skonfigurować bufor pamięci podręcznej Oracle’a tak, żeby był podzielony na różne części w oparciu o rozmiar bloku oraz stworzyć przestrzeń tabel, używając niestandardowych rozmiarów bloków

Rozproszone bazy danych

Rozproszona baza danych

zbiór danych (oraz opis tych danych) współużytkowanych przez wiele osób, fizycznie rozproszony w sieci komputerowej. Bazując na tej definicji spróbujmy zdefiniować rozproszony SZBD.

logicznie powiązany

Rozproszony SZBD (RSZBD)

- oprogramowanie umożliwiające zarządzanie rozproszoną bazą danych oraz sprawiające, że fakt rozproszenia danych jest niewidoczny (przezroczysty) dla użytkownika.

Cechy i własności rozproszonego SZBD

• Zbiór logicznie powiązanych współużytkowanych danych • Dane są podzielone na fragmenty (części) • Poszczególne fragmenty mogą być powielane • Fragmenty są rozmieszczone na różnych komputerach • Komputery są połączone za pomocą sieci komunikacyjnej • Dane znajdujące się w każdym z węzłów systemu znajdują się pod kontrolą lokalnego SZBD • Każdy lokalny SZBD może niezależnie uruchamiać lokalne aplikacje • Każdy SZBD jest wykorzystywany w co najmniej jednej aplikacji globalnej

Rozproszony system zarządzania bazą danych

Węzeł 1 Węzeł 4 BD Węzeł 2 Sieć komputerowa BD BD Węzeł 3

Przetwarzanie rozproszone

Węzeł 1 Węzeł 4 Węzeł 2 Sieć komputerowa BD Węzeł 3

pamięć dzielona

procesor procesor procesor procesor Sieć komputerowa pamięć

dzielony dostęp do dysku

pamięć pamięć pamięć pamięć procesor procesor procesor procesor Sieć komputerowa

żaden zasób nie jest współużytkowany

pamięć procesor pamięć procesor Sieć komputerowa procesor pamięć procesor pamięć

Zalety RSZBD

• • • • • • •

Odzwierciedlenie struktury organizacyjnej Większe możliwości współużytkowania danych oraz lokalna autonomia Zwiększenie dostępności danych Większa wiarygodność Większa wydajność systemu Koszty Rozwój modularny

Wady RSZBD

• • • • • • •

Złożoność Koszty Trudniejsze zapewnienie bezpieczeństwa Trudniejsza kontrola integralności Brak standardów Brak doświadczeń Bardziej skomplikowane projektowanie bazy danych

Homogeniczne i heterogeniczne RSZBD

• •

Homogeniczne

– wszystkie węzły wykorzystują tę samą wersję oprogramowania SZBD, – projektowanie i zarządzanie proste, – możliwy przyrostowy rozwój systemu

Heterogeniczne

– węzły mogą wykorzystywać różne oprogramowanie SZBD, – różne modele danych (relacyjne, sieciowe, hierarchiczne, obiektowe), – konieczność tłumaczenia między protokołami i językami stosowanymi przez różne SZBD, – odwzorowania struktur danych,

Funkcje RSZBD

• Rozszerzone usługi komunikacyjne • Rozszerzenie katalogu systemowego • Przetwarzanie rozproszonych zapytań, ich optymalizacja, dostęp do odległych danych • Rozszerzona ochrona bezpieczeństwa umożliwiająca stosowanie metod autoryzacji, nadawanie praw dostępu do danych rozproszonych • Rozszerzona kontrola wielodostępu - zachowanie spójności danych • Rozszerzone możliwości odtwarzania danych po awarii węzła oraz łączy komunikacyjnych

Architektura wzorcowa dla RSZBD

Globalny schemat zewnętrzny Lokalny schemat odwzorowania Lokalny schemat konceptualny Lokalny schemat wewnętrzny DB Globalny schemat zewnętrzny . . . Globalny schemat konceptualny Globalny schemat zewnętrzny Schemat fragmentacji Schemat alokacji Lokalny schemat odwzorowania Lokalny schemat konceptualny Lokalny schemat wewnętrzny . . . Lokalny schemat odwzorowania Lokalny schemat konceptualny Lokalny schemat wewnętrzny DB DB

Komponenty rozproszonego RSZBD

Globalny katalog systemowy Węzeł 1 RSZBD Komponent komunikacyjny Sieć komputerow a RSZBD Komponent Lokalny komunikacyjny SZBD DB Węzeł 3 Globalny katalog systemowy

Zarządzanie transakcjami rozproszonymi

• Problem określania poprawnego uporządkowania operacji współbieżnie wykonywanych transakcji jest rozwiązywany za pomocą metod, które możemy podzielić na trzy grupy: – metody porządkowania według etykiet czasowych, – metody walidacji – blokowania • W praktyce, w zdecydowanej większości komercyjnych systemów baz danych, w tym w systemie

Oracle,

stosowane są wyłącznie metody blokowania • W czasie szeregowania operacji, realizowanych w ramach transakcji dotyczących tych samych danych, system zarządzania bazą danych wykorzystuje protokół blokowania dwufazowego (ang.

two-phase locking)

• W fazie pierwszej transakcja modyfikująca dane uzyskuje wszystkie niezbędne blokady na tych danych • Blokady te utrzymywane są przez cały czas trwania transakcji • Zdejmowane są dopiero po zakończeniu transakcji, czyli w fazie drugiej

Zarządzanie transakcjami rozproszonymi

• W systemie

Oracle

transakcję kończy się poprzez jej zatwierdzenie lub wycofanie • Domyślnie, każda transakcja jest jawnie kończona przez użytkownika • Zakończenie wycofanie) jest jednej transakcji (zatwierdzenie początkiem transakcji następnej lub • Transakcję zatwierdza się poleceniem commit, a wycofuje poleceniem rollback • Należy pamiętać, że w

Oracle

wszystkie polecenia grupy DML (np. create table, create view, alter table, drop synonym) i polecenia grupy DCL (np. grant, revoke) kończą się niejawnym poleceniem commit

Zarządzanie transakcjami rozproszonymi

• Długą transakcję można podzielić na mniejsze, logicznie spójne fragmenty, wprowadzając w transakcji tzw.

punkty zachowania

(ang.

savepoints)

• Transakcję taką można następnie wycofywać do wskazanego punktu zachowania Wprowadzenie punktu zachowania realizuje się poleceniem

savepoint nazwa_pz;

nazwa_pz oznacza nadaną przez użytkownika nazwę punktu zachowania Wycofanie do wskazanego punktu zachowania realizuje się poleceniem

rollback to savepoint nazwa_pz;

Blokowanie danych

• W systemie Oracle wyróżniamy dwa typy blokad: – na rekordzie (ang. rów lock) – na tabeli (ang. table lock) • Wprowadzenie blokady na całej tabeli zmniejsza stopień współbieżności transakcji • Zaletami blokowania całej tabeli są: – łatwość zarządzania blokadami – szybsze wykrywanie konfliktów blokad

Blokowanie danych

• Dwie blokady są

zgodne

różnych transakcji (ang.

compatible),

jeżeli mogą być jednocześnie założone na te same dane przez wiele • W przeciwnym razie mówimy o blokadach niezgodnych • W przypadku gdy jedna transakcja blokuje tabelę, a druga żąda blokady niezgodnej z blokadą założoną wcześniej, wówczas konflikt jest wykrywany już na poziomie blokady tabeli • Jeżeli na rekordzie tabeli system założy blokadę, to zawsze będzie to

blokada wyłączna

(ang.

exclusive),

oznaczana jako X • Dwie blokady

X

nie są zgodne

Blokowanie danych

• Blokada wykonania

RX

jest zakładana automatycznie w wyniku poleceń: insert, update, delete • Oznacza to, że niektóre lub wszystkie rekordy tej tabeli są wstawiane, modyfikowane lub usuwane • Dwie blokady

RX

na tej samej tabeli są zgodne warunkiem że każda z transakcji blokuje inne rekordy

Tryby pracy transakcji

SZBD Oracle

umożliwia pracę transakcji w trzech następujących trybach –read-committed –read-only –serializable

Transakcja rozproszona

Transakcja rozproszona (ang.

distributed transaction)

jest to transakcja, której polecenia DML odwołują się do tabel znajdujących się co najmniej w dwóch węzłach rozproszonej bazy danych • Transakcja rozproszona jest reprezentowana przez zbiór

transakcji lokalnych

• W każdej z baz danych, do której odwołuje się transakcja rozproszona, tworzona jest jedna transakcja lokalna

Węzły uczestniczące w transakcji rozproszonej

• Transakcja rozproszona odwołuje się do kilku węzłów rozproszonej bazy danych • Każdy z tych węzłów pełni ściśle określoną funkcję Wyróżnia się następujące rodzaje węzłów: – koordynator globalny -

KG

(ang.

global coordinator)

– koordynator lokalny – węzeł zatwierdzania -

KL WZ

(ang.

(ang.

local coordinator) commit point site

) – uczestnik -

U

(ang.

node)

Graf wywołań transakcji

update rachunki...

BANK1

koordynator globalny COMMIT_POINT STRENGTH=15

update rachunki@bank2 ....

update rachunki@bank3 BANK2

węzeł zatwierdzania COMMIT_POINT_STRENGTH=100

BANK3 delete from rachunki@bank4 ...

koordynator lokalny COMMIT_POINT_STRENGTH=20

insert innsurachunki@bank5 ...

BANK4

uczestnik COMMIT POINT STRENGTH=1

BANK5

uczestnik COMMIT POINT STRENGTH=1

Protokół zatwierdzania dwufazowego 2PC

• Protokół

2PC

składa się z dwóch głównych faz – przetwarzania – jednej fazy końcowej • W fazie pierwszej następuje przygotowanie transakcji lokalnych do zatwierdzania lub wycofywania • W fazie drugiej następuje zatwierdzanie lub wycofywanie transakcji lokalnych • W fazie końcowej transakcja rozproszona jest kończona i usuwana z systemu koordynatora globalnego

Faza przygotowania

• • • Koordynator globalny wybiera węzeł zatwierdzania spośród wszystkich węzłów biorących udział w transakcji rozproszonej

KG

wysyła do wszystkich węzłów, z wyjątkiem węzła zatwierdzania, komunikat prepare, wymuszający przygotowanie się transakcji lokalnych do zatwierdzenia Po zakończeniu operacji przygotowania do zatwierdzenia transakcji każdy węzeł przesyła do koordynatora globalnego komunikat prepared, jeżeli operacje się powiodły

Faza przygotowania

• • • Jeżeli transakcja nie może zostać przygotowana do zatwierdzenia, wówczas przez SZBD wycofywane są wszystkie wprowadzone przez nią zmiany, zwalniane blokady, a do KG przesyłany jest komunikat abort Jeżeli w węźle nie modyfikowano danych, wówczas węzeł przesyła do KG komunikat read-only Jeżeli węzeł jest koordynatorem lokalnym, wówczas po otrzymaniu komunikatu prepare przygotowuje się do zatwierdzania i sam rozsyła komunikat prepare do podległych mu węzłów

Faza przygotowania

• • • Po otrzymaniu komunikatu prepared lub read-only od wszystkich węzłów mu podległych, koordynator lokalny przesyła komunikat prepared do

KG

Jeżeli choć jeden z węzłów podległych odpowie abort, wówczas koordynator lokalny wysyła komunikat abort do

KG

W ostatnim kroku tej fazy koordynator globalny odbiera komunikaty od wszystkich węzłów, z wyjątkiem węzła zatwierdzania

Wymiana komunikatów fazy przygotowania

1. Wybór WZ

węzeł zatwierdzania

BANK2 BANK1

koordynator globalny

5. prepared 2. prepare BANK3

koordynator lokalny

3. prepare 3. prepare BANK4

uczestnik

4. prepared 4. prepared BANK5

uczestnik

Faza zatwierdzania

• • •

Jeżeli wszystkie komunikaty, odebrane przez koordynatora globalnego, to prepar lub read only, wówczas faza zatwierdzania (ang. commit phase) jest realizowana w następujących krokach:

Koordynator globalny wysyła do węzła zatwierdzania komunikat commit, informujący WZ o konieczności zatwierdzenia transakcji lokalnej w jego węźle WZ zatwierdza transakcję, a następnie wywołuje komunikat committed do KG. Bieżący stan transakcji jest zapamiętywany w słowniku bazy danych WZ Po otrzymaniu od WZ komunikatu committed KG przesyła komunikat commit do pozostałych węzłów

Faza zatwierdzania

• • • Każdy z węzłów po zatwierdzeniu swojej transakcji zapisuje informację o tej operacji w bieżących plikach dziennika powtórzeń, zwalnia blokady i odpowiada komunikatem committed, przesyłanym do KG Jeżeli węzeł jest koordynatorem lokalnym wówczas po otrzymaniu commit sam rozsyła ten komunikat do podległych mu węzłów, a następnie odbiera od nich potwierdzenie zatwierdzenia transakcji. Po ich otrzymaniu

KL

zatwierdza swoją transakcję lokalną i przesyła komunikat cormntted do

KG

Po odebraniu potwierdzeń zatwierdzenia transakcji od wszystkich węzłów następuje przejście do ostatniej fazy zatwierdzania

Wymiana komunikatów fazy zatwierdzania

BANK1

koordynator globalny

1. commit

węzeł zatwierdzania

BANK2 2. committed 3. commit 6. commmitted BANK3

koordynator lokalny

4. commit 4. commit 5. committed 5. commmitted BANK4

uczestnik

BANK5

uczestnik

Faza zakończenia

Faza zakończenia

(ang.forgetphase)jest

realizowana w następujących krokach: • • • Po odebraniu od wszystkich węzłów komunikatu committed, koordynator globalny wysyła o tym informację do węzła zatwierdzania

WZ

usuwa informację z systemu lokalnego o zatwierdzonej transakcji. Po jej usunięciu informuje o tym

KG KG

usuwa informację o transakcji z systemu lokalnego

Awarie transakcji rozproszonych powstawać na skutek : mogą • • • • • • błędów w oprogramowaniu aplikacyjnym, awarii procesów użytkowników, awarii drugoplanowych procesów systemowych instancji bazy danych, awarii sieci komputerowej, awarii zasilania, awarii sprzętu, np. procesora, pamięci operacyjnej i nośników danych

Awarie transakcji rozproszonych powstawać na skutek : mogą • Jeżeli awaria któregoś z węzłów nastąpi w czasie realizowania transakcji rozproszonej wówczas taka transakcja momentu zdalnym będzie w tzw.

stanie zawieszenia

usunięcia awarii, nawiązania połączenia ze węzłem i doprowadzenia transakcji do końca do • Transakcję w stanie zawieszenia można odtworzyć na dwa sposoby: – automatycznie — uruchamiając dedykowany do tego celu proces systemowy, – manualnie przeszukując węzły i zatwierdzając lub wycofując ich lokalne transakcje

Automatyczne odtwarzanie transakcji • Odtwarzaniem transakcji zajmuje się tzw. drugoplanowy proces odtwarzający RECO jest to proces instancji bazy danych • Proces RECO będzie automatycznie odtwarzał transakcje rozproszone w stanie zawieszenia jeżeli w bazie danych włączono odtwarzanie automatyczne Realizuje to polecenie:

alter system enable distributed recovery;

Automatyczne odtwarzanie transakcji

update rachunki ....

update rachunki@bank2 ....

węzeł zatwierdzania

BANK2 BANK1

koordynator globalny

update rachunki@bank3 ....

BANK3

uczestnik

Stan węzła w systemie

• węzeł zatwierdzania zatwierdził swoją lokalną transakcję; stan transakcji rozproszonej przechowywany w

WZ

określony jest jako

zatwierdzona

• koordynator globalny odebrał potwierdzenie zatwierdzenia transakcji od WZ • uczestnik odebrał komunikat commit od koordynatora globalnego - po jego odebraniu węzeł uległ awarii (np. z powodu zaniku napięcia zasilania) węzeł nie opowiedział komunikatem committed

RECO

okresowo próbuje nawiązywać połączenie z węzłem

BANK3

• Po ponownym uruchomieniu bazy danych

BANK3,

baza ta jest odtwarzana za pomocą standardowych mechanizmów systemowych • Nawiązane zostaje połączenie między procesem

RECO

a bazą

BANK3

• Korzystając z informacji o stanie transakcji rozproszonej, przechowywanej przez węzeł zatwierdzania, tj. transakcji

zatwierdzona,

proces

RECO

powoduje zatwierdzenie lokalnej transakcji w węźle

BANK3.

• Jeżeli w systemie wyłączono automatyczne odtwarzanie transakcji, wówczas jedynym sposobem doprowadzenia zawieszonej transakcji do końca jest interwencja administratora systemu • Musi on przeszukać węzły, stwierdzić, które transakcje są w stanie zawieszenia, i zatwierdzić lub wycofać je za pomocą poleceń SQL, zgodnie ze stanem transakcji rozproszonej przechowywanym w węźle zatwierdzania

Producent SZBD Oracle dostarcza mechanizm programowego symulowania awarii transakcji rozproszonych

• • • • • • • • • •

Awaria węzła zatwierdzania po odebraniu przez koordynator globalny komunikatów prepared Awaria węzła uczestnika po odebraniu przez koordynator globalny komunikatów prepared Awaria węzła uczestnika przed przygotowaniem się do zatwierdzania Awaria węzła uczestnika po przygotowaniu się do zatwierdzania Awaria węzła zatwierdzania przed zatwierdzeniem transakcji Awaria węzła zatwierdzania po zatwierdzeniu transakcji Awaria węzła uczestnika przed zatwierdzeniem transakcji Awaria węzła uczestnika po zatwierdzeniu transakcji Awaria węzła zatwierdzania przed przejściem do fazy zakończenia Awaria węzła uczestnika przed przejściem do fazy zakończenia

Hurtownie danych

• Hurtownia danych - zestaw narzędzi pozwalających kierownikom, dyrektorom i analitykom szybciej i skuteczniej podejmować decyzje • hurtownia danych – zorientowana podmiotowo, zintegrowana, zróżnicowana czasowo i trwała kolekcja danych przeznaczona do wspomagania procesu podejmowania decyzji przez kierownictwo Inmon (1993 r.)

Korzyści ze stosowania hurtowni danych

• • •

Potencjalnie wysokie dochody z inwestycji Przewaga nad konkurencją Większa wydajność korporacyjnych decydentów

Problemy z hurtowniami danych

• Niedoszacowanie zasobów potrzebnych do wprowadzania danych • Ukryte problemy z systemami źródłowymi • Brak wpisów potrzebnych danych • Rosnące wymagania użytkowników • Trudności z ujednoliceniem danych • Wysokie zapotrzebowanie na zasoby • Własność danych • Złożona pielęgnacja systemu • Długoterminowość projektów • Złożoność integracji

klienci

Architektura scentralizowana

Centralna hurtownia danych źródło

. . .

źródło

Architektura federacyjna

klienci Finanse Marketing Dystrybucja źródło Wirtualna hurtownia danych . . .

źródło

Architektura warstwowa

Hurtownia danych przedsiębiorstwa Tematyczne hurtownie danych (podsumowania, wybrane dane

Źródłem danych dostarczanych do hurtowni mogą być:

• dane komputera centralnego przechowywane w hierarchicznych i sieciowych bazach danych. • Dane wydziałowe przechowywane w firmowych systemach plików oraz relacyjnych SZBD • Dane prywatne znajdujące się na stacjach roboczych i prywatnych serwerach • Zewnętrzne systemy – internet – bazy danych dostępne komercyjnie – bazy danych powiązane z dostawcami lub klientami organizacji

Typowy schemat hurtowni danych

Źródło danych operacyjnych 1 Narzędzia do tworzenia raportów i zapytań Zarządca hurtowni DOPŁYW Metadane Mocna skumulowane dane Lekko skumulowane dane Szczegółowe dane Narzędzia dostępne dla użytkowników Zarządca zapytań Zarządca wprowadzania danych Dane archiwalne i kopie zapasowe

Podstawowym zadaniem hurtowni jest zarządzanie pięcioma głównymi przepływami danych, a mianowicie: • • • • •

dopływ wznoszenie się

kumulacja

– –

pakowanie dystrybucja odpływ wypływ

udostępnianie

dostarczanie przepływ metadanych

Metamodel MDIS (Metadata Interchange Specification)

Wymiar Poziom Baza danych Relacja Podschemat Rekord Element