Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00280 008347 10493226 na godz. na dobę w sumie
Oracle. Projektowanie rozproszonych baz danych - książka
Oracle. Projektowanie rozproszonych baz danych - książka
Autor: , Liczba stron: 304
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-951-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> oracle - programowanie
Porównaj ceny (książka, ebook, audiobook).
W typowych zastosowaniach systemów baz danych wykorzystuje się architekturę scentralizowaną, w której system zarządzania bazą i wszystkie dane znajdują się w tym samym węźle sieci informatycznej. Istnieje jednak wiele zastosowań, w których scentralizowane bazy danych nie zapewniają wymaganej funkcjonalności i efektywności pracy. W takich przypadkach stosuje się tzw. rozproszone bazy danych.

Wiele problemów związanych z projektowaniem i zarządzaniem scentralizowanymi bazami danych, m.in. projektowanie struktury bazy, przetwarzanie i optymalizacja zapytań, zarządzanie współbieżnością transakcji staje się znacznie trudniejsze w przypadku baz rozproszonych.

Najpopularniejszymi systemami umożliwiającymi tworzenie rozproszonych baz danych są systemy firmy Oracle. Funkcjonalność Oracle pociąga za sobą dużą złożoność oprogramowania. Niniejsza książka stanowi kompendium wiedzy niezbędnej do projektowania rozproszonych baz danych, opartych na Oracle, a także potrzebnej do administrowania takimi bazami.

Tematy poruszone w książce to m.in.: Książka jest adresowana do administratorów rozproszonych baz danych (nie tylko systemu Oracle), szerokiego grona informatyków, zajmujących się projektowaniem rozproszonych systemów informatycznych opartych na bazach danych, studentów kierunków związanych z informatyką oraz wszystkich tych, którzy interesują się problematyką rozproszonych baz danych.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE Oracle. Projektowanie rozproszonych baz danych Autorzy: Robert Wrembel, Bartosz Bêbel ISBN: 83-7197-951-7 Format: B5, stron: 304 W typowych zastosowaniach systemów baz danych wykorzystuje siê architekturê scentralizowan¹, w której system zarz¹dzania baz¹ i wszystkie dane znajduj¹ siê w tym samym wêĥle sieci informatycznej. Istnieje jednak wiele zastosowañ, w których scentralizowane bazy danych nie zapewniaj¹ wymaganej funkcjonalnoġci i efektywnoġci pracy. W takich przypadkach stosuje siê tzw. rozproszone bazy danych. ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK Wiele problemów zwi¹zanych z projektowaniem i zarz¹dzaniem scentralizowanymi bazami danych, m.in. projektowanie struktury bazy, przetwarzanie i optymalizacja zapytañ, zarz¹dzanie wspó³bie¿noġci¹ transakcji staje siê znacznie trudniejsze w przypadku baz rozproszonych. CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Najpopularniejszymi systemami umo¿liwiaj¹cymi tworzenie rozproszonych baz danych s¹ systemy firmy Oracle. Funkcjonalnoġæ Oracle poci¹ga za sob¹ du¿¹ z³o¿onoġæ oprogramowania. Niniejsza ksi¹¿ka stanowi kompendium wiedzy niezbêdnej do projektowania rozproszonych baz danych, opartych na Oracle, a tak¿e potrzebnej do administrowania takimi bazami. Tematy poruszone w ksi¹¿ce to m.in.: • Architektura rozproszonych baz danych • Oprogramowanie komunikacji sieciowej Oracle Net • Procesy komunikacji sieciowej Oracle • Zarz¹dzanie transakcjami rozproszonymi • Replikacja danych: migawki i zaawansowane sposoby replikacji • Oracle9i Lite — rozproszona baza danych dla urz¹dzeñ mobilnych • Optymalizacja zapytañ rozproszonych • Partycjonowanie tabel i indeksów Ksi¹¿ka jest adresowana do administratorów rozproszonych baz danych (nie tylko systemu Oracle), szerokiego grona informatyków, zajmuj¹cych siê projektowaniem rozproszonych systemów informatycznych opartych na bazach danych, studentów kierunków zwi¹zanych z informatyk¹ oraz wszystkich tych, którzy interesuj¹ siê problematyk¹ rozproszonych baz danych. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści Wstęp ...................................................z............................................ 9 Rozdział 1. Architektura rozproszonej bazy danych ............................................. 13 Architektura rozproszonej bazy danych...................................................a.........................13 Specjalizowane oprogramowanie sieciowe ...................................................a.............14 Łącznik bazy danych...................................................a................................................14 Perspektywa ...................................................a...................................................a..........15 Synonim ...................................................a...................................................a................15 Migawka ...................................................a...................................................a...............15 Nazewnictwo baz danych w sieci...................................................a...................................15 Domena i nazwa globalna...................................................a........................................16 Nazwa usługi bazy danych...................................................a.......................................17 Rozdział 2. Oprogramowanie komunikacji sieciowej Oracle Net........................... 19 Komunikacja: aplikacja — baza danych...................................................a........................20 Dostęp do zbioru nazw usług ...................................................a.........................................20 Lokalny zbiór nazw usług...................................................a........................................22 Katalogowa baza danych LDAP...................................................a..............................23 Serwer nazw — Oracle Names ...................................................a................................24 Adresowanie serwera ...................................................a...............................................24 Zewnętrzny serwis katalogowy...................................................a................................25 Konfigurowanie lokalnego zbioru nazw usług...................................................a...............25 Plik sqlnet.ora ...................................................a...................................................a.......25 Plik tnsnames.ora ...................................................a...................................................a..26 Net Manager — konfigurowanie środowiska klienta .................................................29 Konfigurowanie katalogowej bazy danych ...................................................a....................29 Elementy schematu katalogowej bazy danych ...................................................a........30 Instalacja Oracle Internet Directory...................................................a.........................32 Narzędzia Oracle Internet Directory...................................................a........................33 Konfigurowanie katalogowej bazy danych dla Oracle Net ........................................36 Konfigurowanie procesu listener ...................................................a...................................42 Plik konfiguracyjny listener.ora...................................................a...............................42 Zarządzanie procesami nasłuchu ...................................................a.............................45 Testowanie połączenia z procesem nasłuchu...................................................a...........48 Net Manager — konfigurowanie procesu listener ...................................................a...49 Nazewnictwo usług baz danych — podsumowanie...................................................a.50 4 Oracle. Projektowanie rozproszonych baz danych Connection Manager ...................................................a...................................................a...50 Heterogeniczność protokołów ...................................................a.................................51 Koncentracja połączeń ...................................................a.............................................51 Współdziałanie z zaporą sieciową ...................................................a...........................52 Translacja adresów sieciowych...................................................a................................56 Zarządzanie Connection Managerem ...................................................a......................58 Rozdział 3. Procesy Oracle komunikacji sieciowej .............................................. 59 Dedykowany proces usługowy..................................................a........................................59 Czuwający proces usługowy ...................................................a..........................................60 Konfigurowanie procesu nasłuchu...................................................a...........................61 Współdzielony proces usługowy...................................................a....................................62 Konfigurowanie współdzielonych procesów usługowych................................................63 Rozmiar pamięci procesów usługowych...................................................a........................64 Informacje o aktualnej architekturze pracy instancji bazy danych ...................................66 Zarządzanie parametrami pracy instancji w architektaurze współdzielonych procesów usługowych...................................................a......................68 Wybór typu procesu usługowego...................................................a...................................69 Wykrywanie nieaktywnych połączeń...................................................a.............................70 Rozdział 4. Zdalny dostęp do danych ...................................................z.............. 71 Łącznik bazy danych...................................................a...................................................a...71 Definiowanie łącznika ...................................................a.............................................71 Informacje słownikowe...................................................a............................................75 Nazwy łączników a nazwa globalna bazy danych...................................................a...76 Zarządzanie łącznikami ...................................................a...........................................78 Perspektywa ...................................................a...................................................a................78 Definiowanie perspektywy ...................................................a......................................79 Wyzwalacz instead-of perspektywy ...................................................a........................80 Informacje słownikowe...................................................a............................................82 Synonim ...................................................a...................................................a......................82 Definiowanie synonimu ...................................................a...........................................82 Informacje słownikowe...................................................a............................................83 Rozdział 5. Zarządzanie transakcjami rozproszonymi........................................... 85 Transakcja — pojęcia podstawowe...................................................a................................85 Własności transakcji ...................................................a................................................86 Synchronizacja transakcji ...................................................a........................................86 Blokowanie danych...................................................a..................................................87 Tryby pracy transakcji ...................................................a.............................................88 Transakcja rozproszona — pojęcia podstawowe ...................................................a...........88 Węzły uczestniczące w transakcji rozproszonej ...................................................a......89 Graf wywołań transakcji ...................................................a..........................................90 Protokół zatwierdzania dwufazowego ...................................................a...........................91 Faza przygotowania ...................................................a.................................................91 Faza zatwierdzania...................................................a...................................................a92 Faza zakończenia ...................................................a...................................................a..93 Awarie transakcji rozproszonych ...................................................a...................................93 Automatyczne odtwarzanie transakcji ...................................................a.....................94 Manualne odtwarzanie transakcji ...................................................a............................95 Programowe symulowanie awarii...................................................a............................96 Opisywanie transakcji ...................................................a...................................................a.97 Analizowanie informacji na temat transakcji rozproszonych ...........................................98 Perspektywa DBA_2PC_PENDING ...................................................a.......................99 Perspektywa DBA_2PC_NEIGHBORS...................................................a................101 Spis treści 5 Przykładowa sesja odtwarzania transakcji rozproszonej ................................................102 Szeregowanie transakcji rozproszonej i transakcji w lokalnych bazach danych ............109 Rozdział 6. Replikacja danych — migawki...................................................z..... 111 Odświeżanie replik...................................................a...................................................a....111 Migawka — perspektywa zmaterializowana ...................................................a...............112 Moment wypełniania migawki danymi ...................................................a.................114 Specyfikacja sposobu odświeżania ...................................................a........................114 Moment i częstotliwość odświeżania...................................................a.....................117 Typ migawki ...................................................a...................................................a.......121 Implementacja migawki...................................................a.........................................122 Rejestrowanie migawki w zdalnej bazie danych ...................................................a...123 Fizyczne parametry składowania migawki...................................................a............124 Modyfikowanie i usuwanie migawki...................................................a.....................126 Informacje słownikowe...................................................a..........................................127 Dziennik migawki ...................................................a...................................................a.....129 Definiowanie dziennika ...................................................a.........................................129 Implementacja dziennika ...................................................a.......................................132 Fizyczne parametry składowania dziennika ...................................................a..........133 Modyfikowanie i usuwanie dziennika ...................................................a...................134 Informacje słownikowe...................................................a..........................................134 Grupa odświeżania ...................................................a...................................................a....136 Zarządzanie grupą odświeżania ...................................................a.............................136 Informacje słownikowe...................................................a..........................................137 Rozdział 7. Zaawansowana replikacja ...................................................z........... 139 Obiekty zaawansowanej replikacji...................................................a...............................140 Typy środowisk zaawansowanej replikacji...................................................a..................141 Replikacja multimaster ...................................................a..........................................141 Replikacja migawkowa...................................................a..........................................141 Replikacja hybrydowa (mieszana)...................................................a.........................141 Propagacja zmian ...................................................a...................................................a......141 Zarządzanie środowiskiem replikacji...................................................a...........................142 Schemat tabel z przykładów...................................................a.........................................143 Replikacja multimaster...................................................a.................................................143 Kiedy stosować replikację multimaster? ...................................................a...............144 Architektura replikacji multimaster ...................................................a.......................145 Proces replikacji multimaster...................................................a.................................152 Parametry konfiguracyjne węzła w replikacji multimaster ......................................157 Tworzenie środowiska replikacji multimaster ...................................................a.......157 Replikacja proceduralna...................................................a.........................................170 Replikacja migawkowa ...................................................a................................................172 Kiedy stosować replikację migawkową? ...................................................a...............174 Architektura replikacji migawkowej...................................................a......................174 Proces replikacji migawkowej ...................................................a...............................177 Tworzenie środowiska replikacji migawkowej ...................................................a.....178 Wykrywanie i rozwiązywanie konfliktów ...................................................a...................187 Rodzaje konfliktów...................................................a................................................188 Wykrywanie konfliktów ...................................................a........................................190 Rozwiązywanie konfliktów ...................................................a...................................190 Monitorowanie środowiska zaawansowanej replikacji...................................................a201 Lista transakcji w kolejce odroczonych transakcji ...................................................a201 Lista transakcji w kolejce błędów...................................................a..........................201 Lista wywołań replikowanych procedur...................................................a................202 Harmonogram zadań...................................................a..............................................202 6 Oracle. Projektowanie rozproszonych baz danych Podstawowe operacje administracyjne środowiska zaawansowanej replikacji ..............203 Zmiana węzła definicyjnego dla nadrzędnej grupy replikacji ..................................203 Usunięcie węzła nadrzędnego ze środowiska zaawansowanej replikacji.................203 Usunięcie obiektu z nadrzędnej grupy replikacji...................................................a...204 Usunięcie nadrzędnej grupy replikacji...................................................a...................204 Usunięcie migawki z grupy migawek...................................................a....................205 Usunięcie grupy migawek...................................................a......................................205 Replication Management Tool ...................................................a.....................................206 Uprawnieni użytkownicy ...................................................a.......................................207 Budowa narzędzia...................................................a..................................................207 Przegląd funkcji narzędzia...................................................a.....................................207 Tworzenie środowiska replikacji multimaster przy użyciu Replication Management Tool ...................................................a........209 Rozdział 8. Oracle9i Lite — rozproszona baza danych na urządzeniach mobilnych ...................................................z.......... 219 Cechy i architektura systemu Oracle9i Lite ...................................................a.............220 Klient i serwer Lite...................................................a...............................................220 Branch Office...................................................a...................................................a......221 Mobile Development Kit — projektowanie aplikacji dla Lite........................................222 Narzędzia programowe ...................................................a..........................................222 Udostępnianie aplikacji...................................................a..........................................223 Mobile Server — zarządzanie użytkownikami i aplikacjami mobilnymi.......................231 Zarządzanie użytkownikami ...................................................a..................................231 Zarządzanie aplikacjami ...................................................a........................................232 Instalowanie aplikacji na urządzeniu mobilnym...................................................a....232 Synchronizacja danych i aplikacji...................................................a................................236 Wstępna ocena Oracle9i Lite ...................................................a.......................................238 Rozdział 9. Optymalizacja zapytań rozproszonych ............................................. 239 Rodzaje optymalizacji poleceń...................................................a.....................................240 Wybór optymalizatora i celu optymalizacji ...................................................a.................240 Generowanie statystyk ...................................................a.................................................241 Wskazówki dla optymalizatora kosztowego ...................................................a................242 Algorytmy łączenia tabel ...................................................a.............................................243 Nested-loops ...................................................a...................................................a.......243 Sort-merge...................................................a...................................................a...........243 Hash-join...................................................a...................................................a.............244 Analiza planu wykonania zapytania...................................................a.............................244 Polecenie explain plan ...................................................a...........................................244 Dyrektywa autotrace ...................................................a..............................................246 SQLTRACE i tkprof ...................................................a..............................................247 Wykonywanie zapytań rozproszonych...................................................a.........................248 Środowisko testowe ...................................................a...............................................249 Filtrowanie danych z jednej tabeli zdalnej...................................................a.............250 Grupowanie i sortowanie danych z tabeli zdalnej ...................................................a.251 Łączenie tabeli lokalnej i zdalnej...................................................a...........................252 Łączenie tabel w tej samej zdalnej bazie danych...................................................a...254 Łączenie tabeli lokalnej i wielu tabel zdalnych ...................................................a.....255 Wykorzystanie wskazówek w łączeniu tabel...................................................a.........259 Podzapytania ...................................................a...................................................a.......263 Spis treści 7 Rozdział 10. Partycjonowanie danych ...................................................z............. 265 Algorytmy partycjonowania danych ...................................................a............................266 Partycjonowanie tabel ...................................................a..................................................267 Partycjonowanie bazujące na wartości ...................................................a..................267 Partycjonowanie haszowe...................................................a......................................270 Partycjonowanie hybrydowe...................................................a..................................271 Fizyczne parametry składowania tabel partycjonowanych.......................................272 Wykorzystanie tabel partycjonowanych w poleceniach select i DML.....................273 Zarządzanie tabelami partycjonowanymi ...................................................a..............273 Informacje słownikowe...................................................a..........................................276 Partycjonowanie indeksów...................................................a...........................................278 Typy indeksów...................................................a...................................................a....279 Zarządzanie indeksami partycjonowanymi...................................................a............280 Informacje słownikowe...................................................a..........................................281 Bibliografia ...................................................z................................. 283 Skorowidz...................................................z................................... 287 Rozdział 3. Procesy Oracle komunikacji sieciowej Komunikacja między każdą aplikacją użytkownika a bazą danych odbywa się za pośred- nictwem tzw. procesu usługowego (ang. server process). Jego rolą jest obsługa żądań użytkowników. Do jego zadań m.in. należy:  wykonywanie analizy składniowej i optymalizacja poljeceń SQL;  wykonywanie poleceń SQL;  odczytywanie żądanych danych z dysku i umieszczaniej ich w pamięci SGA — por. [WJZ99, LoKo02, LoTh02, O9Con];  przekazywanie wyników poleceń SQL do aplikacji użytkowjników. W SZBD Oracle procesy usługowe mogą pracować w trzech następujących konfigu- racjach: procesów dedykowanych, procesów czuwających i procesów współdzielonych. Wszystkie trzy typy procesów omówione zostaną w niniejjszym rozdziale. Dedykowany proces usługowy W standardowej konfiguracji klient-serwer, dla każdej aplikacji użytkownika jest two- rzony jeden proces usługowy, za pomocą którego realizowany jest dla tej aplikacji dostęp do bazy danych. Jest to tzw. architektura systemu z dedykowanymi procesami usłu- gowymi (ang. dedicated servers). Została ona przedstawiona na rysunku 3.1. W powyższej architekturze komunikacja między aplikacją użytkownika a bazą danych przebiega w czterech następujących krokach. W kroku 1. przez aplikację użytkownika zostaje nawiązane połączenie z konkretnym procesem nasłuchującym — listener. Po odebraniu żądania listener tworzy nowy dedykowany proces usługowy do obsługi żądań użytkownika (krok 2.). W kroku 3. listener przesyła do aplikacji adres i numer 60 Oracle. Projektowanie rozproszonych baz danych Rysunek 3.1. Komunikacja między aplikacją użytkownika a bazą danych w architekturze z dedykowanymi procesami usługowymi portu komunikacyjnego dedykowanego procesu usługowego. Po otrzymaniu tego adresu zostaje nawiązane przez aplikację bezpośrednie połączenie ze wskazanym pro- cesem usługowym (krok 4.). Standardowa konfiguracja listenera, omówiona w rozdziale 2., zapewnia pracę w archi- tekturze dedykowanych procesów usługowych. Czuwający proces usługowy Rozszerzenie konfiguracji systemu z serwerami dedykowanymi stanowi tzw. archi- tektura z czuwającymi procesami usługowymi (ang. prespawned servers). W tym przypadku listener, po jego uruchomieniu, tworzy pulę aktywnych procesów usługo- wych, gotowych do obsługi żądań użytkowników. W momencie pojawienia się żąda- nia jeden z wolnych procesów czuwających przydzielany jest do obsługi tego żądania. Ponieważ proces czuwający jest natychmiast gotowy do pracy, odpowiedź systemu jest szybsza. Przykładowa architektura systemu z czuwającymi procesami usługowymi została przedstawiona na rysunku 3.2. Rysunek 3.2. Komunikacja między aplikacją użytkownika a bazą danych w architekturze czuwających procesów usługowych Komunikacja między aplikacją użytkownika a bazą danych przebiega podobnie, jak w przypadku przedstawionym na rysunku 3.1. W kroku 1. przez aplikację użytkownika zostaje nawiązane połączenie z procesem listener. Po odebraniu żądania przez proces listener zostaje wybrany jeden z dostępnych procesów usługowych (krok 2.), a jego adres i numer portu jest przekazywany do aplikacji (krok 3.). Po otrzymaniu tego adresu przez aplikację zostaje nawiązane bezpośrednie połączenie ze wskazanym procesem usługowym (krok 4.). W kroku 5. przez proces listener tworzony jest nowy proces usługowy, który zostaje dodany do puli dostępnych aktjywnych procesów. Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej 61 Konfigurowanie procesu nasłuchu W celu skonfigurowania listenera w architekturze z czuwającymi procesami usługo- wymi należy w pliku listener.ora umieścić zbiór parametrów, określających dla każdego protokołu m.in. maksymalną liczbę procesów usługowych, pulę aktywnych procesów i czas istnienia procesu po jego wykorzystaniu. Przykładową zawartość pliku listener.ora przedstawiono poniżej. .+56 0 4  5 4+26+10A.+56  5 4+26+10  # 4 55A.+56  # 4 55 24161 1.6 2 *156FEUTYVQUJKDC 2146    5+ A.+56A.+56 0 4  5+ A.+56  5+ A 5   ).1$#.A $0#/ .#$++22  14# . A*1/   QTCENG QTC  5+ A0#/ .#$  24 52#90A/#:  24 52#90A.+56  24 52#90A 5   24161 1.6 2  211.A5+   6+/ 176     W powyższym przykładzie dla instancji LAB92 wyspecyfikowano maksymalnie 20 procesów czuwających (parametr 24 52#90 A/#:). Dla połączeń za pomocą pro- tokołu TCP/IP pula aktywnych procesów wynosi 10 (parametr 211.A5+ ). Parametr 6+/ 176 oznacza czas istnienia (w minutach) procesu usługowego po jego wykorzy- staniu przez aplikację użytkownika. Po upłynięciu tego czasu proces jest usuwany z systemu. Liczba czuwających procesów usługowych, tworzonych w momencie startowania pro- cesu nasłuchowego, jest widoczna na ekranie po wydaniu polecenia NUPTEVNUVCTV PCYCARTQEGUW. Poniżej przedstawiono fragment informacji wyświetlanych w czasie startowania listenera, skonfigurowanego jak wyżej. Można zauważyć, że po uruchomie- niu listenera tworzonych jest 11 procesów usługowych, z których 10 jest czuwających.  NUPTEVNUVCTV  4QRQEúEKGVPUNUPTRTQUúEGMCè 605.504HQTDKV9KPFQYU8GTUKQP2TQFWEVKQP 2NKMRCTCOGVTÎYU[UVGOQY[EJLGUV  QTCENG QTC PGVYQTM CFOKP NKUVGPGTQ TC 56#00#5Đ7 *7  #NKCU.+56 0 4 62 Oracle. Projektowanie rozproszonych baz danych  0CUđWEJRWPMVÎYMQēEQY[EJRQFUWOQYCPKG  5 4+26+10 # 4 55 24161 1.VER *156FEUTYVQUJKDC 2146 2QFUWOQYCPKGWUđWI 7UđWIC.#$++22OCNKEDúKPUVCPELKTÎYPæ +PUVCPELC.#$UVCP70-0190OCFNCVGLWUđWIKRTQEGFWT ú[ QDUđWIK Szczegółową informację o procesach usługowych można uzjyskać, wydając polecenie: NUPTENVUGTXKEGU Architektura systemu z dedykowanymi procesami czuwającymi powinna być stosowa- na dla niewielkiej i średniej liczby użytkowników. Liczba użytkowników, przy której konfiguracja ta zapewnia efektywny dostęp do bazy danych, zależy od mocy oblicze- niowej i pamięci RAM węzła. Każdy nowy proces użytkownika wymaga uruchomienia odrębnego procesu usługowego, który zajmuje czas procesora i alokuje swoją pamięć. Oznacza to, że nawet silny obliczeniowo węzeł dla dużej liczby równocześnie pracu- jących użytkowników wykorzysta wszystkie swoje zasoby, co z kolei obniży efektyw- ność systemu. Z tych względów Oracle obsługuje tak zwaną architekturę ze współ- dzielonymi procesami usługowymi. Współdzielony proces usługowy Instancję bazy danych można również uruchomić w konfiguracji ze współdzielonymi procesami usługowymi (ang. shared servers), zwanej wcześniej wielowątkową (ang. multi-threaded servers). W konfiguracji tej pojedynczy proces usługowy obsługuje żądania wielu aplikacji użytkowników, natomiast aplikacja łączy się najpierw z tzw. procesem ekspedytora (ang. dispatcher). Zadaniem ekspedytora jest kierowanie żądań aplikacji (np. wykonanie polecenia SQL, wywołanie procedury składowanej) do wol- nego procesu usługowego. W konfiguracji współdzielonej serwer może wykorzystywać wiele ekspedytorów i wiele współdzielonych procesów usługowych. Liczba współdzielonych procesów usługowych jest dostosowywana dynamicznie przez SZBD, w zależności od liczby żądań użyt- kowników. Żądania użytkowników, które zostały przyjęte przez ekspedytor, trafiają do tzw. kolejki zadań do obsługi (ang. request queue). Dla danej instancji bazy danych istnieje tylko jedna taka kolejka i jest ona współdzielona przez wsjzystkie ekspedytory. Zadania z tej kolejki są następnie pobierane i obsługiwane przez współdzielone procesy usługowe. Kolejka tych zadań jest obsługiwana zgodnie z algorytmem FIFO (first-in-first-out), czyli zadania są obsługiwane w kolejności ich pojawiania się w kolejce. Obsłużone zadania (np. wyniki zapytania) trafiają do odpowiednich kolejek zadań obsłużonych (ang. response queues). Każdy ekspedytor posiada prywatną kolejkę takich zadań. Informacje z kolejki zadań obsłużonych są następnie przesyłane przez ekspedytor do odpowiedniego procesu użytkownika. Kolejka zadań do obsługi, jak i kolejka zadań obsłużonych znajduje się w pamięci SGA instancji bazy danych. Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej 63 Rysunek 3.3 przedstawia przykładową architekturę pracy współdzielonych procesów usługowych. Żądania użytkowników są kierowane do współdzielonych procesów usłu- gowych P1 i P2 przez jeden ekspedytor D001. Rysunek 3.3. Współdzielone procesy usługowe Komunikacja między procesem użytkownika a bazą danych została zilustrowana na rysunku 3.4. W czasie uruchamiania instancji bazy danych — por. [WJZ99, LoKo02, LoTh02, O9Con] — uruchamiane są procesy ekspedytorów i tworzona jest pula proce- sów usługowych. Adresy dostępnych ekspedytorów są rejestrowane w procesie listener. W kroku 1. żądanie użytkownika jest odbierane przez proces listener. Po odebraniu żądania przez proces listener zostaje wybrany najmniej obciążony ekspedytor (krok 2.), a następnie do procesu klienta zostaje wysłane żądanie przełączenia się na wskazany ekspedytor wraz z jego adresem i numerem portu komunikacji (krok 3.). W kroku 4. zostaje przez aplikację użytkownika nawiązane bezpośrednie połączenie ze wskazanym ekspedytorem. Każdorazowo po nawiązaniu połączenia z nową aplikacją użytkownika do listenera zostaje przez ekspedytora wysłana informacja o jego obciążeniu (krok 5.). Rysunek 3.4. Komunikacja między aplikacją użytkownika a bazą danych w architekturze współdzielonych procesów usługowych Konfigurowanie współdzielonych procesów usługowych W celu skonfigurowania instancji bazy danych w architekturze ze współdzielonymi procesami usługowymi należy w pliku konfiguracyjnym instancji bazy danych init- SID.ora — por. [O9Dba, WJZ99] — umieścić zbiór dodatkowych parametrów.j 64 Oracle. Projektowanie rozproszonych baz danych Przykładowy zbiór tych parametrów przedstawiono poniżej. Pierwszy wiersz definiuje zbiór 4 ekspedytorów ( +52#6 * 45) dla protokołu TCP/IP (24161 1.6 2). Każdy z ekspedytorów może obsługiwać maksymalnie 100 połączeń ( 100 6+105). Drugi wiersz definiuje 1 ekspedytor dla protokołu SPX/IPX. Ekspedytor może obsłu- giwać maksymalnie 20 połączeń. W wersjach wcześniejszych niż Oracle9i zamiast parametru +52#6 * 45 należało wykorzystywać /65A +52#6 * 45. +52#6 * 45 24161 1.6 2  +52#6 * 45  100 6 +105  +52#6 * 45 24161 1.52:  +52#6 * 45  100 6 +105  Dodatkowo, specyfikując parametry ekspedytora można jawnie podać adres komputera, na którym ekspedytor będzie pracował, i jawnie zaalokować dla niego numer portu. Poniższy listing definiuje trzy ekspedytory pracujące na komputerze o nazwie dcs-rw- toshiba. Każdy z nich posiada jednak inny port komunikacji: D000 pracuje na porcie 3400, D001 na 3401, a D002 na 3402. +52#6 * 45 # 4 55 24161 1.VER *156FEUTY VQUJKDC 2146 +52#6 * 45 100 6+105  +52#6 * 45 # 4 55 24161 1.VER *156FEUTY VQUJKDC 2146 +52#6 * 45 100 6+105  +52#6 * 45 # 4 55 24161 1.VER *156FEUTY VQUJKDC 2146 +52#6 * 45 100 6+105  W pliku initSID.ora poszczególne sekcje +52#6 * 45 muszą być pisane w jednym wierszu. Liczba współdzielonych procesów usługowych, wykorzystywanych przez instancję, jest kontrolowana za pomocą dwóch parametrów inicjujących: 5*#4 A5 48 45 (/65A5 48 45 w wersjach wcześniejszych niż Oracle9i) i /#:A5*#4 A5 48 45 (/65A/#:A5 48 45 w wersjach wcześniejszych niż Oracle9i). Pierwszy z nich określa minimalną liczbę procesów usługowych, tworzonych w czasie startowania instancji bazy danych i utrzy- mywanych przez nią w czasie pracy. Drugi parametr określa maksymalną liczbę tych procesów. Maksymalną liczbę ekspedytorów określa parametr /#:A +52#6 * 45 (/65A/#: A +52#6 * 45 w wersjach wcześniejszych niż Oracle9i). Przykładowo, poniższe parametry definiują  procesów usługowych jako minimum i  jako maksimum, a maksymalna liczba ekspedytorów ustalona jest na . UJCTGFAUGTXGTUOVUAUGTXGTU OCZAUJCTGFAUGTXGTUOVUAOCZAUGTXGTU OCZAFKURCVEJGTUOVUAOCZAFKURCVEJGTU Rozmiar pamięci procesów usługowych W architekturze współdzielonych procesów usługowych standardowo każdy proces alokuje pamięć w obszarze współdzielonym (ang. shared pool) pamięci SGA — por. [O9Con, O9Dba, LoKo02, LoTh02]. Rozwiązanie takie nie jest jednak zalecane, ponie- Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej 65 waż wpływa na zmniejszenie efektywności działania bazy danych. Z tego powodu dla procesów usługowych Oracle Corp. zaleca alokowanie odrębnego obszaru pamięci poza SGA. Rozmiarem tego obszaru steruje parametr konfiguracyjny instancji .#4) A 211.A5+ (.#4) A211. w wersjach wcześniejszych niż Oracle9i). Rozmiar tego ob- szaru dobiera się szacunkowo na podstawie dotychczasowego wykorzystania pamięci przez procesy usługowe i liczby równoczesnych dołączejń do bazy danych. Informacje na temat wykorzystania pamięci przez procesy usługowe można odczytać za pomocą poniższego zapytania, skierowanego do dynamicznych tabel systemowych V$SESSION, V$SESSTAT i V$STATNAME. UGNGEVUGUUUKFUGUUWUGTPCOG UPCOGPCOGUVCVXCNWG HTQOXUGUUKQPUGUU XUGUUVCVUVCV XUVCVPCOGUPCOG YJGTGUGUUUKFUVCVUKF CPFUVCVUVCVKUVKEUPCOGUVCVKUVKE CPFUPCOGPCOGKP UGUUKQPWICOGOQT[  UGUUKQPWICOGOQT[OCZ CPFUGUUWUGTPCOGKUPQVPWNN QTFGTD[UGUUUKF Przykładowy wynik zapytania przedstawiono poniżej. 5+ 75 40#/ 0#/ 8#.7  5;5UGUUKQPWICOGOQT[ 5;5UGUUKQPWICOGOQT[OCZ 27 *#6 -UGUUKQPWICOGOQT[ 27 *#6 -UGUUKQPWICOGOQT[OCZ 5*4 -UGUUKQPWICOGOQT[ 5*4 -UGUUKQPWICOGOQT[OCZ $1. -UGUUKQPWICOGOQT[ $1. -UGUUKQPWICOGOQT[OCZ SID oznacza identyfikator sesji, USERNAME — nazwę użytkownika bazy danych, NAME — opis wartości kolumny VALUE. VALUE reprezentuje rozmiar zaalokowanej pamięci, mierzony w bajtach. session uga memory reprezentuje aktualnie wykorzysty- wany przez proces usługowy rozmiar pamięci, natomiast session uga memory max re- prezentuje maksymalny rozmiar pamięci, jaki wykorzyjstano w ramach bieżącej sesji. Na podstawie powyższego wyniku widzimy, że sesja o numerze 15 wykorzystała maksymalnie 572756B pamięci, natomiast aktualnie wykorzystuje 43568B. Jeżeli w systemie spodziewanych jest 100 równoczesnych sesji o podobnej charakterystyce, wówczas rozmiar .#4) A211.A5+ należy wyliczyć jako: 572756 ∗ 100. Minimalną liczbę ekspedytorów można ustalić na podstawie maksymalnej liczby połą- czeń obsługiwanych przez jeden proces usługowy i na podstawie oczekiwanej liczby równoczesnych połączeń. Maksymalna liczba połączeń obsługiwanych przez proces usługowy zależy od systemu operacyjnego. Można ją odczytać po uruchomieniu instan- cji w trybie współdzielonych procesów usługowych, korzystając z polecenia NUPTEVN UGTXKEGU. Jeżeli w sekcji +52#6 * 45 nie umieścimy parametru 100 6+105, wówczas przyjęta zostanie maksymalna dozwolona liczba połączeń w systemie operacyjnym. 66 Oracle. Projektowanie rozproszonych baz danych Przykładowo, w poniższy listingu maksymalna liczba procesów wynosi 1002 (wartość dla Windows XP). Zaleca się jednak unikanie maksymalnego obciążania ekspedytorów.  NUPTEVNUGTXKEGU .504 6.HQTDKV9KPFQYU8GTUKQP2TQFWEVKQP   2TQEGFWTC [ QDUđWIK  + #6 WUVCPQYKQPQQFOÎYKQPQUVCPTGCF[ .1 #.5 48 4  WUVCNQPQQFOÎYKQPQDKGľæEGOCMUUVCPTGCF[  +52#6 * 4OCEJKPG 549615*+$#RKF  # 4 55 24161 1.VER *156FEUTYVQUJKDC 2146 Informacje o aktualnej architekturze pracy instancji bazy danych Informacje o aktualnej architekturze pracy instancji można uzyskać na kilka sposobów. Pierwszy z nich wymaga dołączenia się do bazy danych z poziomu SQL*Plus jako użytkownik z uprawnieniami DBA. Następnie należy wydaćj polecenie UJQYRCTCOGVGTU FKURCVEJGTU. Jeżeli nie skonfigurowano instancji w architekturze współdzielonych procesów usługowych, wówczas wartość parametru inicjującego +52#6 * 45 będzie pusta, jak przedstawiono w poniższym listingu. Parametry /#:A +52#6 * 45 i /65A/#:A +52#6 * 45 przyjmują w takim przypadku wartości domyślne. 53. UJQYRCTCOGVGTUFKURCVEJGTU 0#/ 6;2 8#.7   FKURCVEJGTUUVTKPI OCZAFKURCVEJGTUKPVGIGT OVUAFKURCVEJGTUUVTKPI OVUAOCZAFKURCVEJGTUKPVGIGT W drugim sposobie wykorzystywane jest polecenie NUPTEVNUGTXKEGU, jak podano poniżej. W poniższym listingu znajduje się przykładowy opis czterech ekspedytorów o nazwach D000, D001, D002, D003. Pierwszy z nich obsługuje 2 połączenia ( D000 ustalono:2). Kolejne 2 połączenia są obsługiwane przez procesy dedykowane ( DEDI- CATED ustanowiono:2). .504 6. UGTXKEGU ĐæE[UKú 5 4+26+10 # 4 55 24161 1.6 2 *156FEUTYVQUJKDC 2146 2QFUWOQYCPKGWUđWI 7UđWIC.#$++22OCNKEDúKPUVCPELKTÎYPæ +PUVCPELC.#$UVCP70-0190OCFNCVGLWUđWIKRTQEGFWT ú[ QDUđWIK 2TQEGFWTC [ QDUđWIK  + #6 WUVCNQPQQFOÎYKQPQ .1 #.5 48 4 +PUVCPELC.#$UVCP4 # ;OCFNCVGLWUđWIKRTQEGFWT ú[ Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej 67 QDUđWIK 2TQEGFWTC [ QDUđWIK  WUVCNQPQQFOÎYKQPQDKGľæEGOCMUUVCPTGCF[  +52#6 * 4OCEJKPG 549615*+$#RKF  # 4 55 24161 1.VER *156FEUTYVQUJKDC 2146  WUVCNQPQQFOÎYKQPQDKGľæEGOCMUUVCPTGCF[  +52#6 * 4OCEJKPG 549615*+$#RKF  # 4 55 24161 1.VER *156FEUTYVQUJKDC 2146  WUVCNQPQQFOÎYKQPQDKGľæEGOCMUUVCPTGCF[  +52#6 * 4OCEJKPG 549615*+$#RKF  # 4 55 24161 1.VER *156FEUTYVQUJKDC 2146  WUVCNQPQQFOÎYKQPQDKGľæEGOCMUUVCPTGCF[  +52#6 * 4OCEJKPG 549615*+$#RKF  # 4 55 24161 1.VER *156FEUTYVQUJKDC 2146  + #6 WUVCPQYKQPQQFOÎYKQPQUVCPTGCF[ .1 #.5 48 4 2QNGEGPKGCMQēEQPGRQYQFGPKGO W systemach Unix wydanie polecenia RU (np. RUGH) umożliwia wyświetlenie proce- sów systemowych. Instancja w architekturze współdzielonych procesów usługowych będzie posiadała procesy ekspedytorów o nazwach ora_dxxx_SID. Kolejnym źródłem informacji na temat architektury współdzielonych procesów usługo- wych są dynamiczne tabele systemowe, m.in. V$DISPATCHER i V$SHARED_SERVER — por. [O9Ref]. Pierwsza z nich udostępnia nazwy i parametry ekspedytorów, a druga — nazwy i parametry współdzielonych procesów usługowych. Przykładowe zapyta- nie do V$DISPATCHER i jego wynik przedstawiono poniżej. 53. UGNGEVPCOGPGVYQTMUVCVWUEQPHAKPFZHTQOXFKURCVEJGT 0#/ 0 6914-56#675 10(A+0 :    # 4 55 24161 1.VER *1569#+6 FEUTYVQUJKDC 2146  # 4 55 24161 1.VER *1569#+6 FEUTYVQUJKDC 2146  # 4 55 24161 1.VER *1569#+6 FEUTYVQUJKDC 2146 Atrybut name oznacza nazwę ekspedytora, network przechowuje parametry wyspecy- fikowane w omówionej wcześniej sekcji # 4 55, status przechowuje aktualny stan pracy ekspedytora. status może przyjąć m.in. jedną z następujących wartości: WAIT — ekspedytor oczekuje na żądanie połączenia, SEND — ekspedytor wysyła wiadomość, RECEIVE — ekspedytor otrzymuje żądanie, CONNECT — nawiązywane jest połą- czenie z aplikacją użytkownika, DISCONNECT — połączenie jest przerywane. Wartość atrybutu CONF_INDX określa numer parametru inicjującego +52#6 * 45, który posłu- żył do utworzenia ekspedytora. Ekspedytor utworzony na podstawie wartości pierw- szego w kolejności parametru otrzymuje wartość równą 0, ekspedytor utworzony na podstawie drugiego parametru otrzymuje wartość 1 itp. Powyższy wynik otrzymano dla parametrów +52#6 * 45 określonych w sposób przedstawiony poniżej. +52#6 * 45 # 4 55 24161 1.VER *156FEUTY åVQUJKDC 2146 +52#6 * 45 100 6+105  68 Oracle. Projektowanie rozproszonych baz danych +52#6 * 45 # 4 55 24161 1.VER *156FEUTY åVQUJKDC 2146 +52#6 * 45 100 6+105  +52#6 * 45 # 4 55 24161 1.VER *156FEUTY åVQUJKDC 2146 +52#6 * 45 100 6+105  Zarządzanie parametrami pracy instancji w architekturze współdzielonych procesów usługowych W czasie pracy instancji bazy danych można dynamicznie modyfikować liczbę dzia- łających współdzielonych procesów usługowych i ekspedytorów. Służy do tego celu polecenie CNVGTU[UVGO. Przykładowo w Oracle9i za pomocą poniższego polecenia aktualna liczba procesów usługowych ustalana jest na . We wcześniejszych wersjach systemu UJCTGFAUGTXGTU należy zastąpić przez OVUAUGTXGTU. 53. CNVGTU[UVGOUGVUJCTGFAUGTXGTU Liczbę i parametry pracy ekspedytorów modyfikuje się jw Oracle9i poleceniem: CNVGTU[UVGOUGVFKURCVEJGTU +0 :EQPHAKPFZ RCTCOGVT[  We wcześniejszych wersjach systemu FKURCVEJGTU należy zastąpić przez OVUAFKURCVEJGTU. Przykładowo, poniższe polecenie dodaje do systemu jedjen ekspedytor o indeksie 3. 53. CNVGTU[UVGOUGVFKURCVEJGTU  +0 :  # 4 55 24161 1.6 2 *156FEUTYVQUJKDC 2146  +52#6 * 45  Dodany ekspedytor pojawia się w systemie i jest widjoczny za pomocą V$DISPATCHER. 53. UGNGEVPCOGPGVYQTMUVCVWUEQPHAKPFZHTQOXFKURCVEJGT 0#/ 0 6914-56#675 10(A+0 :    # 4 55 24161 1.VER *1569#+6 FEUTYVQUJKDC 2146  # 4 55 24161 1.VER *1569#+6 FEUTYVQUJKDC 2146  # 4 55 24161 1.VER *1569#+6 FEUTYVQUJKDC 2146  # 4 55 24161 1.6 2 *1569#+6 FEUTYVQUJKDC 2146 Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej 69 Kolejne przykładowe polecenie umożliwia usunięcie ekspedytora o indeksie 3. Po jego wykonaniu ekspedytor zostanie fizycznie usunięty z jsystemu z pewnym opóźnieniem. 53. CNVGTU[UVGOUGVFKURCVEJGTU  +0 : 24161 1.6 2 +52#6 * 45  Wybór typu procesu usługowego Jeżeli instancja pracuje w trybie współdzielonych procesów usługowych, wówczas przez aplikację może zostać wskazane, czy do jej obsługi ma być wykorzystany dedy- kowany proces usługowy, czy współdzielony. Wyboru tego dokonuje się, konfiguru- jąc plik tnsnames.ora. Opisany wcześniej parametr 5 48 4 z wartością DEDICATE lub SHARED steruje wyborem procesu usługowego. Poprzez wprowadzenie do pliku tnsnames.ora dwóch różnych nazw usług, wskazujących na tę samą bazę danych, lecz z różną wartością parametru 5 48 4, może być dokonany wybór procesu obsługujące- go aplikację właśnie przez wskazanie odpowiedniej usługi. Przykładowy fragment pliku tnsnames.ora zawierający taką konfigurację przedstawiono poniżejj. .#$UJCTGF++22  5 4+26+10  # 4 55A.+56  # 4 55 24161 1.6 2 *156FEUTYVQUJKDC 2146   100 6A #6#  5 48 45*#4  5 48+ A0#/ .#$   .#$FGFKECVGF++22  5 4+26+10  # 4 55A.+56  # 4 55 24161 1.6 2 *156FEUTYVQUJKDC 2146   100 6A #6#  5 48 4 + #6  5 48+ A0#/ .#$   Jeżeli w pliku sqlnet.ora zostanie umieszczony parametr 75 A + #6 A5 48 410, wówczas dla wszystkich połączeń aplikacji będą alokowane procesy dedykowane, nawet jeśli w definicji usługi parametr 5 48 4 przyjmuje wartość SHARED. Brak parametru 75 A + #6 A5 48 4 lub wpis 75 A + #6 A5 48 41(( powoduje alokowanie pro- cesów usługowych zgodnie z konfiguracją instancji i wjartością parametru 5 48 4. 70 Oracle. Projektowanie rozproszonych baz danych Wykrywanie nieaktywnych połączeń Raz nawiązane połączenie między procesem usługowym a aplikacją wykorzystuje zasoby systemowe. W przypadku zerwania połączenia z aplikacją, np. na skutek braku połączenia sieciowego, awarii komputera użytkownika lub aplikacji, proces ją obsłu- gujący staje się nieaktywny (ang. dead) i powinien zostać usunięty z systemu. Często w przypadku tego typu awarii dane w bazie są blokowane przez transakcję użytkow- nika. Usunięcie nieaktywnego procesu powoduje wycofanie transakcji i zwolnienie wszystkich wykorzystywanych przez nią blokad. Proces testowania aktywności aplikacji użytkownika (ang. dead connection detection) jest realizowany przez Oracle Net. Oprogramowanie to wysyła pakiety testowe za pomo- cą każdego z połączeń. Częstotliwość próbkowania jest określona parametrem kon- figuracyjnym 53.0 6 :2+4 A6+/ pliku sqlnet.ora. Jego wartość podaje się w minutach. Przykładowo, wpis 53.0 6 :2+4 A6+/  oznacza próbkowanie co 10 minut. Jest to wartość zalecana w dokumentacji Oracle [O9NAG]. W domyślnej konfiguracji plik sqlnet.ora nie zawiera parametru 53.0 6 :2+4 A6+/ , a więc nieaktywne połączenia nie są wykrywane.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Oracle. Projektowanie rozproszonych baz danych
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: