SlideShare a Scribd company logo
1 of 18
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Oracle. Projektowanie
                                         rozproszonych baz danych
           KATALOG KSI¥¯EK
                                         Autorzy: Robert Wrembel, Bartosz Bêbel
                      KATALOG ONLINE     ISBN: 83-7197-951-7
                                         Format: B5, stron: 304
       ZAMÓW DRUKOWANY KATALOG


              TWÓJ KOSZYK
                                         W typowych zastosowaniach systemów baz danych wykorzystuje siê architekturê
                    DODAJ DO KOSZYKA
                                         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
         CENNIK I INFORMACJE             pracy. W takich przypadkach stosuje siê tzw. rozproszone bazy danych.
                                         Wiele problemów zwi¹zanych z projektowaniem i zarz¹dzaniem scentralizowanymi
                   ZAMÓW INFORMACJE
                     O NOWO CIACH        bazami danych, m.in. projektowanie struktury bazy, przetwarzanie i optymalizacja
                                         zapytañ, zarz¹dzanie wspó³bie¿no ci¹ transakcji staje siê znacznie trudniejsze
                       ZAMÓW CENNIK      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 æ
                 CZYTELNIA               oprogramowania. Niniejsza ksi¹¿ka stanowi kompendium wiedzy niezbêdnej do
                                         projektowania rozproszonych baz danych, opartych na Oracle, a tak¿e potrzebnej
          FRAGMENTY KSI¥¯EK ONLINE       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
Wydawnictwo Helion                       systemu Oracle), szerokiego grona informatyków, zajmuj¹cych siê projektowaniem
ul. Chopina 6                            rozproszonych systemów informatycznych opartych na bazach danych, studentów
44-100 Gliwice                           kierunków zwi¹zanych z informatyk¹ oraz wszystkich tych, którzy interesuj¹ siê
tel. (32)230-98-63                       problematyk¹ rozproszonych baz danych.
e-mail: helion@helion.pl
Spis treści
              Wstęp ............................................................................................... 9
Rozdział 1. Architektura rozproszonej bazy danych ............................................. 13
              Architektura rozproszonej bazy danych............................................................................13
                 Specjalizowane oprogramowanie sieciowe ................................................................14
                 Łącznik bazy danych...................................................................................................14
                 Perspektywa ................................................................................................................15
                 Synonim ......................................................................................................................15
                 Migawka .....................................................................................................................15
              Nazewnictwo baz danych w sieci......................................................................................15
                 Domena i nazwa globalna...........................................................................................16
                 Nazwa usługi bazy danych..........................................................................................17
Rozdział 2. Oprogramowanie komunikacji sieciowej Oracle Net........................... 19
              Komunikacja: aplikacja — baza danych...........................................................................20
              Dostęp do zbioru nazw usług ............................................................................................20
                 Lokalny zbiór nazw usług...........................................................................................22
                 Katalogowa baza danych LDAP.................................................................................23
                 Serwer nazw — Oracle Names ...................................................................................24
                 Adresowanie serwera ..................................................................................................24
                 Zewnętrzny serwis katalogowy...................................................................................25
              Konfigurowanie lokalnego zbioru nazw usług..................................................................25
                 Plik sqlnet.ora .............................................................................................................25
                 Plik tnsnames.ora ........................................................................................................26
                 Net Manager — konfigurowanie środowiska klienta .................................................29
              Konfigurowanie katalogowej bazy danych .......................................................................29
                 Elementy schematu katalogowej bazy danych ...........................................................30
                 Instalacja Oracle Internet Directory............................................................................32
                 Narzędzia Oracle Internet Directory...........................................................................33
                 Konfigurowanie katalogowej bazy danych dla Oracle Net ........................................36
              Konfigurowanie procesu listener ......................................................................................42
                 Plik konfiguracyjny listener.ora..................................................................................42
                 Zarządzanie procesami nasłuchu ................................................................................45
                 Testowanie połączenia z procesem nasłuchu..............................................................48
                 Net Manager — konfigurowanie procesu listener ......................................................49
                 Nazewnictwo usług baz danych — podsumowanie....................................................50
4                                                                  Oracle. Projektowanie rozproszonych baz danych


               Connection Manager .........................................................................................................50
                  Heterogeniczność protokołów ....................................................................................51
                  Koncentracja połączeń ................................................................................................51
                  Współdziałanie z zaporą sieciową ..............................................................................52
                  Translacja adresów sieciowych...................................................................................56
                  Zarządzanie Connection Managerem .........................................................................58
Rozdział 3. Procesy Oracle komunikacji sieciowej .............................................. 59
               Dedykowany proces usługowy..........................................................................................59
               Czuwający proces usługowy .............................................................................................60
                   Konfigurowanie procesu nasłuchu..............................................................................61
               Współdzielony proces usługowy.......................................................................................62
                   Konfigurowanie współdzielonych procesów usługowych................................................63
               Rozmiar pamięci procesów usługowych...........................................................................64
               Informacje o aktualnej architekturze pracy instancji bazy danych ...................................66
               Zarządzanie parametrami pracy instancji w architekturze
                 współdzielonych procesów usługowych.........................................................................68
               Wybór typu procesu usługowego......................................................................................69
               Wykrywanie nieaktywnych połączeń................................................................................70
Rozdział 4. Zdalny dostęp do danych ................................................................. 71
               Łącznik bazy danych.........................................................................................................71
                   Definiowanie łącznika ................................................................................................71
                   Informacje słownikowe...............................................................................................75
                   Nazwy łączników a nazwa globalna bazy danych ......................................................76
                   Zarządzanie łącznikami ..............................................................................................78
               Perspektywa ......................................................................................................................78
                   Definiowanie perspektywy .........................................................................................79
                   Wyzwalacz instead-of perspektywy ...........................................................................80
                   Informacje słownikowe...............................................................................................82
               Synonim ............................................................................................................................82
                   Definiowanie synonimu ..............................................................................................82
                   Informacje słownikowe...............................................................................................83
Rozdział 5. Zarządzanie transakcjami rozproszonymi........................................... 85
               Transakcja — pojęcia podstawowe...................................................................................85
                   Własności transakcji ...................................................................................................86
                   Synchronizacja transakcji ...........................................................................................86
                   Blokowanie danych.....................................................................................................87
                   Tryby pracy transakcji ................................................................................................88
               Transakcja rozproszona — pojęcia podstawowe ..............................................................88
                   Węzły uczestniczące w transakcji rozproszonej .........................................................89
                   Graf wywołań transakcji .............................................................................................90
               Protokół zatwierdzania dwufazowego ..............................................................................91
                   Faza przygotowania ....................................................................................................91
                   Faza zatwierdzania......................................................................................................92
                   Faza zakończenia ........................................................................................................93
               Awarie transakcji rozproszonych ......................................................................................93
                   Automatyczne odtwarzanie transakcji ........................................................................94
                   Manualne odtwarzanie transakcji ...............................................................................95
                   Programowe symulowanie awarii...............................................................................96
               Opisywanie transakcji .......................................................................................................97
               Analizowanie informacji na temat transakcji rozproszonych ...........................................98
                   Perspektywa DBA_2PC_PENDING ..........................................................................99
                   Perspektywa DBA_2PC_NEIGHBORS...................................................................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........................................................ 111
               Odświe anie replik..........................................................................................................111
               Migawka — perspektywa zmaterializowana ..................................................................112
                  Moment wypełniania migawki danymi ....................................................................114
                  Specyfikacja sposobu odświe ania ...........................................................................114
                  Moment i częstotliwość odświe ania........................................................................117
                  Typ migawki .............................................................................................................121
                  Implementacja migawki............................................................................................122
                  Rejestrowanie migawki w zdalnej bazie danych ......................................................123
                  Fizyczne parametry składowania migawki...............................................................124
                  Modyfikowanie i usuwanie migawki........................................................................126
                  Informacje słownikowe.............................................................................................127
               Dziennik migawki ...........................................................................................................129
                  Definiowanie dziennika ............................................................................................129
                  Implementacja dziennika ..........................................................................................132
                  Fizyczne parametry składowania dziennika .............................................................133
                  Modyfikowanie i usuwanie dziennika ......................................................................134
                  Informacje słownikowe.............................................................................................134
               Grupa odświe ania ..........................................................................................................136
                  Zarządzanie grupą odświe ania ................................................................................136
                  Informacje słownikowe.............................................................................................137
Rozdział 7. Zaawansowana replikacja .............................................................. 139
               Obiekty zaawansowanej replikacji..................................................................................140
               Typy środowisk zaawansowanej replikacji.....................................................................141
                  Replikacja multimaster .............................................................................................141
                  Replikacja migawkowa.............................................................................................141
                  Replikacja hybrydowa (mieszana)............................................................................141
               Propagacja zmian ............................................................................................................141
               Zarządzanie środowiskiem replikacji..............................................................................142
               Schemat tabel z przykładów............................................................................................143
               Replikacja multimaster....................................................................................................143
                  Kiedy stosować replikację multimaster? ..................................................................144
                  Architektura replikacji multimaster ..........................................................................145
                  Proces replikacji multimaster....................................................................................152
                  Parametry konfiguracyjne węzła w replikacji multimaster ......................................157
                  Tworzenie środowiska replikacji multimaster ..........................................................157
                  Replikacja proceduralna............................................................................................170
               Replikacja migawkowa ...................................................................................................172
                  Kiedy stosować replikację migawkową? ..................................................................174
                  Architektura replikacji migawkowej.........................................................................174
                  Proces replikacji migawkowej ..................................................................................177
                  Tworzenie środowiska replikacji migawkowej ........................................................178
               Wykrywanie i rozwiązywanie konfliktów ......................................................................187
                  Rodzaje konfliktów...................................................................................................188
                  Wykrywanie konfliktów ...........................................................................................190
                  Rozwiązywanie konfliktów ......................................................................................190
               Monitorowanie środowiska zaawansowanej replikacji...................................................201
                  Lista transakcji w kolejce odroczonych transakcji ...................................................201
                  Lista transakcji w kolejce błędów.............................................................................201
                  Lista wywołań replikowanych procedur...................................................................202
                  Harmonogram zadań.................................................................................................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......................................................204
                  Usunięcie nadrzędnej grupy replikacji......................................................................204
                  Usunięcie migawki z grupy migawek.......................................................................205
                  Usunięcie grupy migawek.........................................................................................205
               Replication Management Tool ........................................................................................206
                  Uprawnieni u ytkownicy ..........................................................................................207
                  Budowa narzędzia.....................................................................................................207
                  Przegląd funkcji narzędzia ........................................................................................207
                  Tworzenie środowiska replikacji multimaster
                    przy u yciu Replication Management Tool ...........................................................209
Rozdział 8. Oracle9i Lite — rozproszona baza danych
            na urządzeniach mobilnych............................................................. 219
               Cechy i architektura systemu Oracle9i Lite ................................................................220
                  Klient i serwer Lite..................................................................................................220
                  Branch Office............................................................................................................221
               Mobile Development Kit — projektowanie aplikacji dla Lite........................................222
                  Narzędzia programowe .............................................................................................222
                  Udostępnianie aplikacji.............................................................................................223
               Mobile Server — zarządzanie u ytkownikami i aplikacjami mobilnymi.......................231
                  Zarządzanie u ytkownikami .....................................................................................231
                  Zarządzanie aplikacjami ...........................................................................................232
                  Instalowanie aplikacji na urządzeniu mobilnym.......................................................232
               Synchronizacja danych i aplikacji...................................................................................236
               Wstępna ocena Oracle9i Lite ..........................................................................................238
Rozdział 9. Optymalizacja zapytań rozproszonych ............................................. 239
               Rodzaje optymalizacji poleceń........................................................................................240
               Wybór optymalizatora i celu optymalizacji ....................................................................240
               Generowanie statystyk ....................................................................................................241
               Wskazówki dla optymalizatora kosztowego ...................................................................242
               Algorytmy łączenia tabel ................................................................................................243
                  Nested-loops .............................................................................................................243
                  Sort-merge.................................................................................................................243
                  Hash-join...................................................................................................................244
               Analiza planu wykonania zapytania................................................................................244
                  Polecenie explain plan ..............................................................................................244
                  Dyrektywa autotrace .................................................................................................246
                  SQLTRACE i tkprof .................................................................................................247
               Wykonywanie zapytań rozproszonych............................................................................248
                  Środowisko testowe ..................................................................................................249
                  Filtrowanie danych z jednej tabeli zdalnej................................................................250
                  Grupowanie i sortowanie danych z tabeli zdalnej ....................................................251
                  Łączenie tabeli lokalnej i zdalnej..............................................................................252
                  Łączenie tabel w tej samej zdalnej bazie danych......................................................254
                  Łączenie tabeli lokalnej i wielu tabel zdalnych ........................................................255
                  Wykorzystanie wskazówek w łączeniu tabel............................................................259
                  Podzapytania .............................................................................................................263
Spis treści                                                                                                                               7


Rozdział 10. Partycjonowanie danych ................................................................ 265
               Algorytmy partycjonowania danych ...............................................................................266
               Partycjonowanie tabel .....................................................................................................267
                   Partycjonowanie bazujące na wartości .....................................................................267
                   Partycjonowanie haszowe.........................................................................................270
                   Partycjonowanie hybrydowe.....................................................................................271
                   Fizyczne parametry składowania tabel partycjonowanych.......................................272
                   Wykorzystanie tabel partycjonowanych w poleceniach select i DML .....................273
                   Zarządzanie tabelami partycjonowanymi .................................................................273
                   Informacje słownikowe.............................................................................................276
               Partycjonowanie indeksów..............................................................................................278
                   Typy indeksów..........................................................................................................279
                   Zarządzanie indeksami partycjonowanymi...............................................................280
                   Informacje słownikowe.............................................................................................281
               Bibliografia .................................................................................... 283
               Skorowidz...................................................................................... 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 poleceń SQL;
        wykonywanie poleceń SQL;
        odczytywanie ądanych danych z dysku i umieszczanie ich w pamięci SGA
        — por. [WJZ99, LoKo02, LoTh02, O9Con];
        przekazywanie wyników poleceń SQL do aplikacji u ytkownikó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 niniejszym 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 aktywnych 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
*156  FEUTYVQUJKDC
2146  
                
              
            

          5+A.+56A.+56'0'4 
            
5+A.+56 
              
5+A'5% 
                
).1$#.A$0#/'  .#$++22
                
14#%.'A*1/'  %QTCENGQTC
                
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 NUPTEVN UVCTV
        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.
          % NUPTEVN UVCTV
          
          4QRQEúEKG VPUNUPT RTQUú EGMCè 
          605.504 HQT DKV 9KPFQYU 8GTUKQP   2TQFWEVKQP
          2NKM RCTCOGVTÎY U[UVGOQY[EJ LGUV %QTCENGQTCPGVYQTMCFOKPNKUVGPGTQTC
          56#0 0#5 7%*7
          
          #NKCU                    .+56'0'4
62                                         Oracle. Projektowanie rozproszonych baz danych


       
       0CU WEJ RWPMVÎY MQ EQY[EJ  RQFUWOQYCPKG
         
'5%4+26+10
#4'55
24161%1.VER
*156FEUTYVQUJKDC
2146
       2QFUWOQYCPKG WU WI
       7U WIC .#$++22 OC NKEDú KPUVCPELK TÎYPæ 
       +PUVCPELC .#$  UVCP 70-0190 OC FNC VGL WU WIK  RTQEGFWT
ú [ QDU WIK

     Szczegółową informację o procesach usługowych mo na uzyskać, wydając polecenie:
       NUPTENV UGTXKEGU

     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 wszystkie 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.
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 .
       UJCTGFAUGTXGTU              OVUAUGTXGTU
       OCZAUJCTGFAUGTXGTU         OVUAOCZAUGTXGTU
       OCZAFKURCVEJGTU             OVUAOCZAFKURCVEJGTU




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łączeń 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.
          UGNGEV UGUUUKF UGUUWUGTPCOG
                 UPCOGPCOG UVCVXCNWG
          HTQO X UGUUKQP UGUU
               X UGUUVCV UVCV
               X UVCVPCOG UPCOG
          YJGTG UGUUUKFUVCVUKF
          CPF UVCVUVCVKUVKE UPCOGUVCVKUVKE
          CPF   UPCOGPCOG KP 
 UGUUKQP WIC OGOQT[      UGUUKQP WIC OGOQT[ OCZ 
          CPF UGUUWUGTPCOG KU PQV PWNN
          QTFGT D[ UGUUUKF

        Przykładowy wynik zapytania przedstawiono poni ej.
          5+          75'40#/'     0#/'                           8#.7'
                 
                      5;5          UGUUKQP WIC OGOQT[            
                      5;5          UGUUKQP WIC OGOQT[ OCZ        
                     27%*#6'-     UGUUKQP WIC OGOQT[             
                     27%*#6'-     UGUUKQP WIC OGOQT[ OCZ         
                     5*4'-        UGUUKQP WIC OGOQT[             
                     5*4'-        UGUUKQP WIC OGOQT[ OCZ        
                     $1.'-        UGUUKQP WIC OGOQT[             
                     $1.'-        UGUUKQP WIC OGOQT[ 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 wykorzystano 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.
       % NUPTEVN UGTXKEGU

       .504%6. HQT DKV 9KPFQYU 8GTUKQP   2TQFWEVKQP 
       
       
           2TQEGFWTC
[ QDU WIK
               '+%#6' WUVCPQYKQPQ QFOÎYKQPQ UVCPTGCF[
                 .1%#. 5'48'4
               WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[
                 +52#6%*'4 OCEJKPG %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ć polecenie UJQY RCTCOGVGTU
     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. UJQY RCTCOGVGTU FKURCVEJGTU
       0#/'                                   6;2'          8#.7'
             
       FKURCVEJGTU                            UVTKPI
       OCZAFKURCVEJGTU                        KPVGIGT       
       OVUAFKURCVEJGTU                        UVTKPI
       OVUAOCZAFKURCVEJGTU                    KPVGIGT       

     W drugim sposobie wykorzystywane jest polecenie NUPTEVN UGTXKEGU, 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
       2QFUWOQYCPKG WU WI
       7U WIC .#$++22 OC NKEDú KPUVCPELK TÎYPæ 
         +PUVCPELC .#$  UVCP 70-0190 OC FNC VGL WU WIK  RTQEGFWT
ú [
         QDU WIK

           2TQEGFWTC
[ QDU WIK
              '+%#6' WUVCNQPQ QFOÎYKQPQ
                .1%#. 5'48'4
         +PUVCPELC .#$  UVCP 4'#; OC FNC VGL WU WIK  RTQEGFWT
ú [
Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej                                      67


            QDU WIK
              2TQEGFWTC
[ QDU WIK
                  WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[
                   +52#6%*'4 OCEJKPG %549615*+$# RKF 
                   
#4'55
24161%1.VER
*156FEUTYVQUJKDC
2146
                  WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[
                   +52#6%*'4 OCEJKPG %549615*+$# RKF 
                   
#4'55
24161%1.VER
*156FEUTYVQUJKDC
2146
                  WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[
                   +52#6%*'4 OCEJKPG %549615*+$# RKF 
                   
#4'55
24161%1.VER
*156FEUTYVQUJKDC
2146
                  WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[
                   +52#6%*'4 OCEJKPG %549615*+$# RKF 
                   
#4'55
24161%1.VER
*156FEUTYVQUJKDC
2146
                 '+%#6' WUVCPQYKQPQ QFOÎYKQPQ UVCPTGCF[
                   .1%#. 5'48'4
          2QNGEGPKG CMQ EQPG RQYQFGPKGO

        W systemach Unix wydanie polecenia RU (np. RU GH) 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. UGNGEV PCOG PGVYQTM UVCVWU EQPHAKPFZ HTQO X FKURCVEJGT

          0#/' 0'6914-                       56#675 %10(A+0:
             
           
#4'55
24161%1.VER
*156 9#+6             
               FEUTYVQUJKDC
2146

           
#4'55
24161%1.VER
*156 9#+6            
               FEUTYVQUJKDC
2146

           
#4'55
24161%1.VER
*156 9#+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 CNVGT U[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. CNVGT U[UVGO UGV UJCTGFAUGTXGTU

     Liczbę i parametry pracy ekspedytorów modyfikuje się w Oracle9i poleceniem:
       CNVGT U[UVGO UGV FKURCVEJGTU  
+0':EQPHAKPFZ
RCTCOGVT[

     We wcześniejszych wersjach systemu FKURCVEJGTU nale y zastąpić przez OVUAFKURCVEJGTU.

     Przykładowo, poni sze polecenie dodaje do systemu jeden ekspedytor o indeksie 3.
       53. CNVGT U[UVGO UGV FKURCVEJGTU
              
+0':
              
#4'55
24161%1.6%2
*156FEUTYVQUJKDC
2146
              
+52#6%*'45 

     Dodany ekspedytor pojawia się w systemie i jest widoczny za pomocą V$DISPATCHER.
       53. UGNGEV PCOG PGVYQTM UVCVWU EQPHAKPFZ HTQO X FKURCVEJGT

       0#/' 0'6914-                       56#675 %10(A+0:
          
        
#4'55
24161%1.VER
*156 9#+6             
            FEUTYVQUJKDC
2146

        
#4'55
24161%1.VER
*156 9#+6             
            FEUTYVQUJKDC
2146

        
#4'55
24161%1.VER
*156 9#+6             
            FEUTYVQUJKDC
2146

        
#4'55
24161%1.6%2
*156 9#+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 systemu z pewnym opóźnieniem.
          53. CNVGT U[UVGO UGV FKURCVEJGTU
             
+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 ej.
          .#$UJCTGF++22 
            
'5%4+26+10 
              
#4'55A.+56 
                
#4'55  
24161%1.  6%2
*156  FEUTYVQUJKDC
2146  
              
              
%100'%6A#6# 
                
5'48'4  5*#4'
                
5'48+%'A0#/'  .#$
              
            

          .#$FGFKECVGF++22 
            
'5%4+26+10 
              
#4'55A.+56 
                
#4'55  
24161%1.  6%2
*156  FEUTYVQUJKDC
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 wartoś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.

More Related Content

What's hot

Bazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawBazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawWydawnictwo Helion
 
Oracle Database 10g RMAN. Archiwizacja i odzyskiwanie danych
Oracle Database 10g RMAN. Archiwizacja i odzyskiwanie danychOracle Database 10g RMAN. Archiwizacja i odzyskiwanie danych
Oracle Database 10g RMAN. Archiwizacja i odzyskiwanie danychWydawnictwo Helion
 
Wprowadzenie do systemów baz danych
Wprowadzenie do systemów baz danychWprowadzenie do systemów baz danych
Wprowadzenie do systemów baz danychWydawnictwo Helion
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active DirectoryWydawnictwo Helion
 
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychPHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychWydawnictwo Helion
 
Oracle9i. Przewodnik dla początkujących
Oracle9i. Przewodnik dla początkującychOracle9i. Przewodnik dla początkujących
Oracle9i. Przewodnik dla początkującychWydawnictwo Helion
 
Serwery internetowe Red Hat Linux
Serwery internetowe Red Hat LinuxSerwery internetowe Red Hat Linux
Serwery internetowe Red Hat LinuxWydawnictwo Helion
 

What's hot (18)

Bazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstawBazy danych i MySQL. Od podstaw
Bazy danych i MySQL. Od podstaw
 
Wprowadzenie do baz danych
Wprowadzenie do baz danychWprowadzenie do baz danych
Wprowadzenie do baz danych
 
Oracle Database 10g RMAN. Archiwizacja i odzyskiwanie danych
Oracle Database 10g RMAN. Archiwizacja i odzyskiwanie danychOracle Database 10g RMAN. Archiwizacja i odzyskiwanie danych
Oracle Database 10g RMAN. Archiwizacja i odzyskiwanie danych
 
Access 2007 PL. Kurs
Access 2007 PL. KursAccess 2007 PL. Kurs
Access 2007 PL. Kurs
 
Wprowadzenie do systemów baz danych
Wprowadzenie do systemów baz danychWprowadzenie do systemów baz danych
Wprowadzenie do systemów baz danych
 
Projektowanie struktur Active Directory
Projektowanie struktur Active DirectoryProjektowanie struktur Active Directory
Projektowanie struktur Active Directory
 
Access 2003 PL. Kurs
Access 2003 PL. KursAccess 2003 PL. Kurs
Access 2003 PL. Kurs
 
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danychPHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
PHP, Microsoft IIS i SQL Server. Projektowanie i programowanie baz danych
 
MySQL. Almanach
MySQL. AlmanachMySQL. Almanach
MySQL. Almanach
 
Po prostu Access 2003 PL
Po prostu Access 2003 PLPo prostu Access 2003 PL
Po prostu Access 2003 PL
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
 
Transact-SQL. Czarna księga
Transact-SQL. Czarna księgaTransact-SQL. Czarna księga
Transact-SQL. Czarna księga
 
Praktyczny kurs SQL
Praktyczny kurs SQLPraktyczny kurs SQL
Praktyczny kurs SQL
 
Oracle9i. Przewodnik dla początkujących
Oracle9i. Przewodnik dla początkującychOracle9i. Przewodnik dla początkujących
Oracle9i. Przewodnik dla początkujących
 
MySQL
MySQLMySQL
MySQL
 
Serwery internetowe Red Hat Linux
Serwery internetowe Red Hat LinuxSerwery internetowe Red Hat Linux
Serwery internetowe Red Hat Linux
 
M4j2
M4j2M4j2
M4j2
 
Po prostu Access 2002/XP PL
Po prostu Access 2002/XP PLPo prostu Access 2002/XP PL
Po prostu Access 2002/XP PL
 

Viewers also liked

Viewers also liked (9)

Linux w sieci
Linux w sieciLinux w sieci
Linux w sieci
 
Word w biurze i nie tylko
Word w biurze i nie tylkoWord w biurze i nie tylko
Word w biurze i nie tylko
 
Sieci komputerowe. Budowa i działanie
Sieci komputerowe. Budowa i działanieSieci komputerowe. Budowa i działanie
Sieci komputerowe. Budowa i działanie
 
Visual C# .NET. Encyklopedia
Visual C# .NET. EncyklopediaVisual C# .NET. Encyklopedia
Visual C# .NET. Encyklopedia
 
Po prostu Flash MX
Po prostu Flash MXPo prostu Flash MX
Po prostu Flash MX
 
Java. Wprowadzenie
Java. WprowadzenieJava. Wprowadzenie
Java. Wprowadzenie
 
SQL w mgnieniu oka
SQL w mgnieniu okaSQL w mgnieniu oka
SQL w mgnieniu oka
 
Techniki obróbki zdjęć cyfrowych. Praktyczne projekty
Techniki obróbki zdjęć cyfrowych. Praktyczne projektyTechniki obróbki zdjęć cyfrowych. Praktyczne projekty
Techniki obróbki zdjęć cyfrowych. Praktyczne projekty
 
Mikroprocesory jednoukładowe PIC
Mikroprocesory jednoukładowe PICMikroprocesory jednoukładowe PIC
Mikroprocesory jednoukładowe PIC
 

Similar to Oracle. Projektowanie rozproszonych baz danych

Access 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danychAccess 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danychWydawnictwo Helion
 
Oracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwościOracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwościWydawnictwo Helion
 
Visual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaVisual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaWydawnictwo Helion
 
Oracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQLOracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQLWydawnictwo Helion
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIWydawnictwo Helion
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
 

Similar to Oracle. Projektowanie rozproszonych baz danych (15)

Delphi 7 i bazy danych
Delphi 7 i bazy danychDelphi 7 i bazy danych
Delphi 7 i bazy danych
 
SQL. Optymalizacja
SQL. OptymalizacjaSQL. Optymalizacja
SQL. Optymalizacja
 
Access 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danychAccess 2002. Tworzenie baz danych
Access 2002. Tworzenie baz danych
 
MySQL. Opis języka
MySQL. Opis językaMySQL. Opis języka
MySQL. Opis języka
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
SQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowySQL. Leksykon kieszonkowy
SQL. Leksykon kieszonkowy
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
 
Oracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwościOracle Database 10g. Nowe możliwości
Oracle Database 10g. Nowe możliwości
 
Visual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga ekspertaVisual Basic .NET. Bazy danych. Księga eksperta
Visual Basic .NET. Bazy danych. Księga eksperta
 
100 sposobów na Access
100 sposobów na Access100 sposobów na Access
100 sposobów na Access
 
Oracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQLOracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQL
 
MySQL. Podstawy
MySQL. PodstawyMySQL. Podstawy
MySQL. Podstawy
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
 
Java. Rozmówki
Java. RozmówkiJava. Rozmówki
Java. Rozmówki
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

Oracle. Projektowanie rozproszonych baz danych

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Oracle. Projektowanie rozproszonych baz danych KATALOG KSI¥¯EK Autorzy: Robert Wrembel, Bartosz Bêbel KATALOG ONLINE ISBN: 83-7197-951-7 Format: B5, stron: 304 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK W typowych zastosowaniach systemów baz danych wykorzystuje siê architekturê DODAJ DO KOSZYKA 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 CENNIK I INFORMACJE pracy. W takich przypadkach stosuje siê tzw. rozproszone bazy danych. Wiele problemów zwi¹zanych z projektowaniem i zarz¹dzaniem scentralizowanymi ZAMÓW INFORMACJE O NOWO CIACH bazami danych, m.in. projektowanie struktury bazy, przetwarzanie i optymalizacja zapytañ, zarz¹dzanie wspó³bie¿no ci¹ transakcji staje siê znacznie trudniejsze ZAMÓW CENNIK 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 æ CZYTELNIA oprogramowania. Niniejsza ksi¹¿ka stanowi kompendium wiedzy niezbêdnej do projektowania rozproszonych baz danych, opartych na Oracle, a tak¿e potrzebnej FRAGMENTY KSI¥¯EK ONLINE 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 Wydawnictwo Helion systemu Oracle), szerokiego grona informatyków, zajmuj¹cych siê projektowaniem ul. Chopina 6 rozproszonych systemów informatycznych opartych na bazach danych, studentów 44-100 Gliwice kierunków zwi¹zanych z informatyk¹ oraz wszystkich tych, którzy interesuj¹ siê tel. (32)230-98-63 problematyk¹ rozproszonych baz danych. e-mail: helion@helion.pl
  • 2. Spis treści Wstęp ............................................................................................... 9 Rozdział 1. Architektura rozproszonej bazy danych ............................................. 13 Architektura rozproszonej bazy danych............................................................................13 Specjalizowane oprogramowanie sieciowe ................................................................14 Łącznik bazy danych...................................................................................................14 Perspektywa ................................................................................................................15 Synonim ......................................................................................................................15 Migawka .....................................................................................................................15 Nazewnictwo baz danych w sieci......................................................................................15 Domena i nazwa globalna...........................................................................................16 Nazwa usługi bazy danych..........................................................................................17 Rozdział 2. Oprogramowanie komunikacji sieciowej Oracle Net........................... 19 Komunikacja: aplikacja — baza danych...........................................................................20 Dostęp do zbioru nazw usług ............................................................................................20 Lokalny zbiór nazw usług...........................................................................................22 Katalogowa baza danych LDAP.................................................................................23 Serwer nazw — Oracle Names ...................................................................................24 Adresowanie serwera ..................................................................................................24 Zewnętrzny serwis katalogowy...................................................................................25 Konfigurowanie lokalnego zbioru nazw usług..................................................................25 Plik sqlnet.ora .............................................................................................................25 Plik tnsnames.ora ........................................................................................................26 Net Manager — konfigurowanie środowiska klienta .................................................29 Konfigurowanie katalogowej bazy danych .......................................................................29 Elementy schematu katalogowej bazy danych ...........................................................30 Instalacja Oracle Internet Directory............................................................................32 Narzędzia Oracle Internet Directory...........................................................................33 Konfigurowanie katalogowej bazy danych dla Oracle Net ........................................36 Konfigurowanie procesu listener ......................................................................................42 Plik konfiguracyjny listener.ora..................................................................................42 Zarządzanie procesami nasłuchu ................................................................................45 Testowanie połączenia z procesem nasłuchu..............................................................48 Net Manager — konfigurowanie procesu listener ......................................................49 Nazewnictwo usług baz danych — podsumowanie....................................................50
  • 3. 4 Oracle. Projektowanie rozproszonych baz danych Connection Manager .........................................................................................................50 Heterogeniczność protokołów ....................................................................................51 Koncentracja połączeń ................................................................................................51 Współdziałanie z zaporą sieciową ..............................................................................52 Translacja adresów sieciowych...................................................................................56 Zarządzanie Connection Managerem .........................................................................58 Rozdział 3. Procesy Oracle komunikacji sieciowej .............................................. 59 Dedykowany proces usługowy..........................................................................................59 Czuwający proces usługowy .............................................................................................60 Konfigurowanie procesu nasłuchu..............................................................................61 Współdzielony proces usługowy.......................................................................................62 Konfigurowanie współdzielonych procesów usługowych................................................63 Rozmiar pamięci procesów usługowych...........................................................................64 Informacje o aktualnej architekturze pracy instancji bazy danych ...................................66 Zarządzanie parametrami pracy instancji w architekturze współdzielonych procesów usługowych.........................................................................68 Wybór typu procesu usługowego......................................................................................69 Wykrywanie nieaktywnych połączeń................................................................................70 Rozdział 4. Zdalny dostęp do danych ................................................................. 71 Łącznik bazy danych.........................................................................................................71 Definiowanie łącznika ................................................................................................71 Informacje słownikowe...............................................................................................75 Nazwy łączników a nazwa globalna bazy danych ......................................................76 Zarządzanie łącznikami ..............................................................................................78 Perspektywa ......................................................................................................................78 Definiowanie perspektywy .........................................................................................79 Wyzwalacz instead-of perspektywy ...........................................................................80 Informacje słownikowe...............................................................................................82 Synonim ............................................................................................................................82 Definiowanie synonimu ..............................................................................................82 Informacje słownikowe...............................................................................................83 Rozdział 5. Zarządzanie transakcjami rozproszonymi........................................... 85 Transakcja — pojęcia podstawowe...................................................................................85 Własności transakcji ...................................................................................................86 Synchronizacja transakcji ...........................................................................................86 Blokowanie danych.....................................................................................................87 Tryby pracy transakcji ................................................................................................88 Transakcja rozproszona — pojęcia podstawowe ..............................................................88 Węzły uczestniczące w transakcji rozproszonej .........................................................89 Graf wywołań transakcji .............................................................................................90 Protokół zatwierdzania dwufazowego ..............................................................................91 Faza przygotowania ....................................................................................................91 Faza zatwierdzania......................................................................................................92 Faza zakończenia ........................................................................................................93 Awarie transakcji rozproszonych ......................................................................................93 Automatyczne odtwarzanie transakcji ........................................................................94 Manualne odtwarzanie transakcji ...............................................................................95 Programowe symulowanie awarii...............................................................................96 Opisywanie transakcji .......................................................................................................97 Analizowanie informacji na temat transakcji rozproszonych ...........................................98 Perspektywa DBA_2PC_PENDING ..........................................................................99 Perspektywa DBA_2PC_NEIGHBORS...................................................................101
  • 4. 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........................................................ 111 Odświe anie replik..........................................................................................................111 Migawka — perspektywa zmaterializowana ..................................................................112 Moment wypełniania migawki danymi ....................................................................114 Specyfikacja sposobu odświe ania ...........................................................................114 Moment i częstotliwość odświe ania........................................................................117 Typ migawki .............................................................................................................121 Implementacja migawki............................................................................................122 Rejestrowanie migawki w zdalnej bazie danych ......................................................123 Fizyczne parametry składowania migawki...............................................................124 Modyfikowanie i usuwanie migawki........................................................................126 Informacje słownikowe.............................................................................................127 Dziennik migawki ...........................................................................................................129 Definiowanie dziennika ............................................................................................129 Implementacja dziennika ..........................................................................................132 Fizyczne parametry składowania dziennika .............................................................133 Modyfikowanie i usuwanie dziennika ......................................................................134 Informacje słownikowe.............................................................................................134 Grupa odświe ania ..........................................................................................................136 Zarządzanie grupą odświe ania ................................................................................136 Informacje słownikowe.............................................................................................137 Rozdział 7. Zaawansowana replikacja .............................................................. 139 Obiekty zaawansowanej replikacji..................................................................................140 Typy środowisk zaawansowanej replikacji.....................................................................141 Replikacja multimaster .............................................................................................141 Replikacja migawkowa.............................................................................................141 Replikacja hybrydowa (mieszana)............................................................................141 Propagacja zmian ............................................................................................................141 Zarządzanie środowiskiem replikacji..............................................................................142 Schemat tabel z przykładów............................................................................................143 Replikacja multimaster....................................................................................................143 Kiedy stosować replikację multimaster? ..................................................................144 Architektura replikacji multimaster ..........................................................................145 Proces replikacji multimaster....................................................................................152 Parametry konfiguracyjne węzła w replikacji multimaster ......................................157 Tworzenie środowiska replikacji multimaster ..........................................................157 Replikacja proceduralna............................................................................................170 Replikacja migawkowa ...................................................................................................172 Kiedy stosować replikację migawkową? ..................................................................174 Architektura replikacji migawkowej.........................................................................174 Proces replikacji migawkowej ..................................................................................177 Tworzenie środowiska replikacji migawkowej ........................................................178 Wykrywanie i rozwiązywanie konfliktów ......................................................................187 Rodzaje konfliktów...................................................................................................188 Wykrywanie konfliktów ...........................................................................................190 Rozwiązywanie konfliktów ......................................................................................190 Monitorowanie środowiska zaawansowanej replikacji...................................................201 Lista transakcji w kolejce odroczonych transakcji ...................................................201 Lista transakcji w kolejce błędów.............................................................................201 Lista wywołań replikowanych procedur...................................................................202 Harmonogram zadań.................................................................................................202
  • 5. 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......................................................204 Usunięcie nadrzędnej grupy replikacji......................................................................204 Usunięcie migawki z grupy migawek.......................................................................205 Usunięcie grupy migawek.........................................................................................205 Replication Management Tool ........................................................................................206 Uprawnieni u ytkownicy ..........................................................................................207 Budowa narzędzia.....................................................................................................207 Przegląd funkcji narzędzia ........................................................................................207 Tworzenie środowiska replikacji multimaster przy u yciu Replication Management Tool ...........................................................209 Rozdział 8. Oracle9i Lite — rozproszona baza danych na urządzeniach mobilnych............................................................. 219 Cechy i architektura systemu Oracle9i Lite ................................................................220 Klient i serwer Lite..................................................................................................220 Branch Office............................................................................................................221 Mobile Development Kit — projektowanie aplikacji dla Lite........................................222 Narzędzia programowe .............................................................................................222 Udostępnianie aplikacji.............................................................................................223 Mobile Server — zarządzanie u ytkownikami i aplikacjami mobilnymi.......................231 Zarządzanie u ytkownikami .....................................................................................231 Zarządzanie aplikacjami ...........................................................................................232 Instalowanie aplikacji na urządzeniu mobilnym.......................................................232 Synchronizacja danych i aplikacji...................................................................................236 Wstępna ocena Oracle9i Lite ..........................................................................................238 Rozdział 9. Optymalizacja zapytań rozproszonych ............................................. 239 Rodzaje optymalizacji poleceń........................................................................................240 Wybór optymalizatora i celu optymalizacji ....................................................................240 Generowanie statystyk ....................................................................................................241 Wskazówki dla optymalizatora kosztowego ...................................................................242 Algorytmy łączenia tabel ................................................................................................243 Nested-loops .............................................................................................................243 Sort-merge.................................................................................................................243 Hash-join...................................................................................................................244 Analiza planu wykonania zapytania................................................................................244 Polecenie explain plan ..............................................................................................244 Dyrektywa autotrace .................................................................................................246 SQLTRACE i tkprof .................................................................................................247 Wykonywanie zapytań rozproszonych............................................................................248 Środowisko testowe ..................................................................................................249 Filtrowanie danych z jednej tabeli zdalnej................................................................250 Grupowanie i sortowanie danych z tabeli zdalnej ....................................................251 Łączenie tabeli lokalnej i zdalnej..............................................................................252 Łączenie tabel w tej samej zdalnej bazie danych......................................................254 Łączenie tabeli lokalnej i wielu tabel zdalnych ........................................................255 Wykorzystanie wskazówek w łączeniu tabel............................................................259 Podzapytania .............................................................................................................263
  • 6. Spis treści 7 Rozdział 10. Partycjonowanie danych ................................................................ 265 Algorytmy partycjonowania danych ...............................................................................266 Partycjonowanie tabel .....................................................................................................267 Partycjonowanie bazujące na wartości .....................................................................267 Partycjonowanie haszowe.........................................................................................270 Partycjonowanie hybrydowe.....................................................................................271 Fizyczne parametry składowania tabel partycjonowanych.......................................272 Wykorzystanie tabel partycjonowanych w poleceniach select i DML .....................273 Zarządzanie tabelami partycjonowanymi .................................................................273 Informacje słownikowe.............................................................................................276 Partycjonowanie indeksów..............................................................................................278 Typy indeksów..........................................................................................................279 Zarządzanie indeksami partycjonowanymi...............................................................280 Informacje słownikowe.............................................................................................281 Bibliografia .................................................................................... 283 Skorowidz...................................................................................... 287
  • 7. 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 poleceń SQL; wykonywanie poleceń SQL; odczytywanie ądanych danych z dysku i umieszczanie ich w pamięci SGA — por. [WJZ99, LoKo02, LoTh02, O9Con]; przekazywanie wyników poleceń SQL do aplikacji u ytkownikó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 niniejszym 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
  • 8. 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 aktywnych procesów.
  • 9. 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 *156 FEUTYVQUJKDC 2146 5+A.+56A.+56'0'4 5+A.+56 5+A'5% ).1$#.A$0#/' .#$++22 14#%.'A*1/' %QTCENGQTC 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 NUPTEVN UVCTV 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. % NUPTEVN UVCTV 4QRQEúEKG VPUNUPT RTQUú EGMCè 605.504 HQT DKV 9KPFQYU 8GTUKQP 2TQFWEVKQP 2NKM RCTCOGVTÎY U[UVGOQY[EJ LGUV %QTCENGQTCPGVYQTMCFOKPNKUVGPGTQTC 56#0 0#5 7%*7 #NKCU .+56'0'4
  • 10. 62 Oracle. Projektowanie rozproszonych baz danych 0CU WEJ RWPMVÎY MQ EQY[EJ RQFUWOQYCPKG '5%4+26+10 #4'55 24161%1.VER *156FEUTYVQUJKDC 2146 2QFUWOQYCPKG WU WI 7U WIC .#$++22 OC NKEDú KPUVCPELK TÎYPæ +PUVCPELC .#$ UVCP 70-0190 OC FNC VGL WU WIK RTQEGFWT ú [ QDU WIK Szczegółową informację o procesach usługowych mo na uzyskać, wydając polecenie: NUPTENV UGTXKEGU 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 wszystkie 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.
  • 11. 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.
  • 12. 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 . UJCTGFAUGTXGTU OVUAUGTXGTU OCZAUJCTGFAUGTXGTU OVUAOCZAUGTXGTU OCZAFKURCVEJGTU OVUAOCZAFKURCVEJGTU 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-
  • 13. 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łączeń 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. UGNGEV UGUUUKF UGUUWUGTPCOG UPCOGPCOG UVCVXCNWG HTQO X UGUUKQP UGUU X UGUUVCV UVCV X UVCVPCOG UPCOG YJGTG UGUUUKFUVCVUKF CPF UVCVUVCVKUVKE UPCOGUVCVKUVKE CPF UPCOGPCOG KP UGUUKQP WIC OGOQT[ UGUUKQP WIC OGOQT[ OCZ CPF UGUUWUGTPCOG KU PQV PWNN QTFGT D[ UGUUUKF Przykładowy wynik zapytania przedstawiono poni ej. 5+ 75'40#/' 0#/' 8#.7' 5;5 UGUUKQP WIC OGOQT[ 5;5 UGUUKQP WIC OGOQT[ OCZ 27%*#6'- UGUUKQP WIC OGOQT[ 27%*#6'- UGUUKQP WIC OGOQT[ OCZ 5*4'- UGUUKQP WIC OGOQT[ 5*4'- UGUUKQP WIC OGOQT[ OCZ $1.'- UGUUKQP WIC OGOQT[ $1.'- UGUUKQP WIC OGOQT[ 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 wykorzystano 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.
  • 14. 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. % NUPTEVN UGTXKEGU .504%6. HQT DKV 9KPFQYU 8GTUKQP 2TQFWEVKQP 2TQEGFWTC [ QDU WIK '+%#6' WUVCPQYKQPQ QFOÎYKQPQ UVCPTGCF[ .1%#. 5'48'4 WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[ +52#6%*'4 OCEJKPG %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ć polecenie UJQY RCTCOGVGTU 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. UJQY RCTCOGVGTU FKURCVEJGTU 0#/' 6;2' 8#.7' FKURCVEJGTU UVTKPI OCZAFKURCVEJGTU KPVGIGT OVUAFKURCVEJGTU UVTKPI OVUAOCZAFKURCVEJGTU KPVGIGT W drugim sposobie wykorzystywane jest polecenie NUPTEVN UGTXKEGU, 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 2QFUWOQYCPKG WU WI 7U WIC .#$++22 OC NKEDú KPUVCPELK TÎYPæ +PUVCPELC .#$ UVCP 70-0190 OC FNC VGL WU WIK RTQEGFWT ú [ QDU WIK 2TQEGFWTC [ QDU WIK '+%#6' WUVCNQPQ QFOÎYKQPQ .1%#. 5'48'4 +PUVCPELC .#$ UVCP 4'#; OC FNC VGL WU WIK RTQEGFWT ú [
  • 15. Rozdział 3. ♦ Procesy Oracle komunikacji sieciowej 67 QDU WIK 2TQEGFWTC [ QDU WIK WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[ +52#6%*'4 OCEJKPG %549615*+$# RKF #4'55 24161%1.VER *156FEUTYVQUJKDC 2146 WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[ +52#6%*'4 OCEJKPG %549615*+$# RKF #4'55 24161%1.VER *156FEUTYVQUJKDC 2146 WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[ +52#6%*'4 OCEJKPG %549615*+$# RKF #4'55 24161%1.VER *156FEUTYVQUJKDC 2146 WUVCNQPQ QFOÎYKQPQ DKG æEG OCMU UVCPTGCF[ +52#6%*'4 OCEJKPG %549615*+$# RKF #4'55 24161%1.VER *156FEUTYVQUJKDC 2146 '+%#6' WUVCPQYKQPQ QFOÎYKQPQ UVCPTGCF[ .1%#. 5'48'4 2QNGEGPKG CMQ EQPG RQYQFGPKGO W systemach Unix wydanie polecenia RU (np. RU GH) 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. UGNGEV PCOG PGVYQTM UVCVWU EQPHAKPFZ HTQO X FKURCVEJGT 0#/' 0'6914- 56#675 %10(A+0: #4'55 24161%1.VER *156 9#+6 FEUTYVQUJKDC 2146 #4'55 24161%1.VER *156 9#+6 FEUTYVQUJKDC 2146 #4'55 24161%1.VER *156 9#+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
  • 16. 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 CNVGT U[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. CNVGT U[UVGO UGV UJCTGFAUGTXGTU Liczbę i parametry pracy ekspedytorów modyfikuje się w Oracle9i poleceniem: CNVGT U[UVGO UGV FKURCVEJGTU +0':EQPHAKPFZ RCTCOGVT[ We wcześniejszych wersjach systemu FKURCVEJGTU nale y zastąpić przez OVUAFKURCVEJGTU. Przykładowo, poni sze polecenie dodaje do systemu jeden ekspedytor o indeksie 3. 53. CNVGT U[UVGO UGV FKURCVEJGTU +0': #4'55 24161%1.6%2 *156FEUTYVQUJKDC 2146 +52#6%*'45 Dodany ekspedytor pojawia się w systemie i jest widoczny za pomocą V$DISPATCHER. 53. UGNGEV PCOG PGVYQTM UVCVWU EQPHAKPFZ HTQO X FKURCVEJGT 0#/' 0'6914- 56#675 %10(A+0: #4'55 24161%1.VER *156 9#+6 FEUTYVQUJKDC 2146 #4'55 24161%1.VER *156 9#+6 FEUTYVQUJKDC 2146 #4'55 24161%1.VER *156 9#+6 FEUTYVQUJKDC 2146 #4'55 24161%1.6%2 *156 9#+6 FEUTYVQUJKDC 2146
  • 17. 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 systemu z pewnym opóźnieniem. 53. CNVGT U[UVGO UGV FKURCVEJGTU +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 ej. .#$UJCTGF++22 '5%4+26+10 #4'55A.+56 #4'55 24161%1. 6%2 *156 FEUTYVQUJKDC 2146 %100'%6A#6# 5'48'4 5*#4' 5'48+%'A0#/' .#$ .#$FGFKECVGF++22 '5%4+26+10 #4'55A.+56 #4'55 24161%1. 6%2 *156 FEUTYVQUJKDC 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 wartością parametru 5'48'4.
  • 18. 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.