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