You are on page 1of 18

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

Oracle. Projektowanie
rozproszonych baz danych
Autorzy: Robert Wrembel, Bartosz Bbel
ISBN: 83-7197-951-7
Format: B5, stron: 304

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

W typowych zastosowaniach systemw baz danych wykorzystuje si architektur


scentralizowan, w ktrej system zarzdzania baz i wszystkie dane znajduj si w tym
samym wle sieci informatycznej. Istnieje jednak wiele zastosowa, w ktrych
scentralizowane bazy danych nie zapewniaj wymaganej funkcjonalnoci i efektywnoci
pracy. W takich przypadkach stosuje si tzw. rozproszone bazy danych.
Wiele problemw zwizanych z projektowaniem i zarzdzaniem scentralizowanymi
bazami danych, m.in. projektowanie struktury bazy, przetwarzanie i optymalizacja
zapyta, zarzdzanie wspbienoci transakcji staje si znacznie trudniejsze
w przypadku baz rozproszonych.
Najpopularniejszymi systemami umoliwiajcymi tworzenie rozproszonych baz danych
s systemy firmy Oracle. Funkcjonalno Oracle pociga za sob du zoono
oprogramowania. Niniejsza ksika stanowi kompendium wiedzy niezbdnej do
projektowania rozproszonych baz danych, opartych na Oracle, a take potrzebnej
do administrowania takimi bazami.
Tematy poruszone w ksice to m.in.:
Architektura rozproszonych baz danych
Oprogramowanie komunikacji sieciowej Oracle Net
Procesy komunikacji sieciowej Oracle
Zarzdzanie transakcjami rozproszonymi
Replikacja danych: migawki i zaawansowane sposoby replikacji
Oracle9i Lite rozproszona baza danych dla urzdze mobilnych
Optymalizacja zapyta rozproszonych
Partycjonowanie tabel i indeksw

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Ksika jest adresowana do administratorw rozproszonych baz danych (nie tylko


systemu Oracle), szerokiego grona informatykw, zajmujcych si projektowaniem
rozproszonych systemw informatycznych opartych na bazach danych, studentw
kierunkw zwizanych z informatyk oraz wszystkich tych, ktrzy interesuj si
problematyk rozproszonych baz danych.

Spis treci
Wstp ............................................................................................... 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 usugi bazy danych..........................................................................................17

Rozdzia 2. Oprogramowanie komunikacji sieciowej Oracle Net........................... 19


Komunikacja: aplikacja baza danych...........................................................................20
Dostp do zbioru nazw usug ............................................................................................20
Lokalny zbir nazw usug...........................................................................................22
Katalogowa baza danych LDAP.................................................................................23
Serwer nazw Oracle Names ...................................................................................24
Adresowanie serwera ..................................................................................................24
Zewntrzny serwis katalogowy...................................................................................25
Konfigurowanie lokalnego zbioru nazw usug..................................................................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
Narzdzia Oracle Internet Directory...........................................................................33
Konfigurowanie katalogowej bazy danych dla Oracle Net ........................................36
Konfigurowanie procesu listener ......................................................................................42
Plik konfiguracyjny listener.ora..................................................................................42
Zarzdzanie procesami nasuchu ................................................................................45
Testowanie poczenia z procesem nasuchu..............................................................48
Net Manager konfigurowanie procesu listener ......................................................49
Nazewnictwo usug baz danych podsumowanie....................................................50

Oracle. Projektowanie rozproszonych baz danych


Connection Manager .........................................................................................................50
Heterogeniczno protokow ....................................................................................51
Koncentracja pocze ................................................................................................51
Wspdziaanie z zapor sieciow ..............................................................................52
Translacja adresw sieciowych...................................................................................56
Zarzdzanie Connection Managerem .........................................................................58

Rozdzia 3. Procesy Oracle komunikacji sieciowej .............................................. 59


Dedykowany proces usugowy..........................................................................................59
Czuwajcy proces usugowy .............................................................................................60
Konfigurowanie procesu nasuchu..............................................................................61
Wspdzielony proces usugowy.......................................................................................62
Konfigurowanie wspdzielonych procesw usugowych................................................63
Rozmiar pamici procesw usugowych...........................................................................64
Informacje o aktualnej architekturze pracy instancji bazy danych ...................................66
Zarzdzanie parametrami pracy instancji w architekturze
wspdzielonych procesw usugowych.........................................................................68
Wybr typu procesu usugowego......................................................................................69
Wykrywanie nieaktywnych pocze................................................................................70

Rozdzia 4. Zdalny dostp do danych ................................................................. 71


cznik bazy danych.........................................................................................................71
Definiowanie cznika ................................................................................................71
Informacje sownikowe...............................................................................................75
Nazwy cznikw a nazwa globalna bazy danych ......................................................76
Zarzdzanie cznikami ..............................................................................................78
Perspektywa ......................................................................................................................78
Definiowanie perspektywy .........................................................................................79
Wyzwalacz instead-of perspektywy ...........................................................................80
Informacje sownikowe...............................................................................................82
Synonim ............................................................................................................................82
Definiowanie synonimu ..............................................................................................82
Informacje sownikowe...............................................................................................83

Rozdzia 5. Zarzdzanie transakcjami rozproszonymi........................................... 85


Transakcja pojcia podstawowe...................................................................................85
Wasnoci transakcji ...................................................................................................86
Synchronizacja transakcji ...........................................................................................86
Blokowanie danych.....................................................................................................87
Tryby pracy transakcji ................................................................................................88
Transakcja rozproszona pojcia podstawowe ..............................................................88
Wzy uczestniczce w transakcji rozproszonej .........................................................89
Graf wywoa transakcji .............................................................................................90
Protok zatwierdzania dwufazowego ..............................................................................91
Faza przygotowania ....................................................................................................91
Faza zatwierdzania......................................................................................................92
Faza zakoczenia ........................................................................................................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 treci

5
Przykadowa sesja odtwarzania transakcji rozproszonej ................................................102
Szeregowanie transakcji rozproszonej i transakcji w lokalnych bazach danych ............109

Rozdzia 6. Replikacja danych migawki........................................................ 111


Odwieanie replik..........................................................................................................111
Migawka perspektywa zmaterializowana ..................................................................112
Moment wypeniania migawki danymi ....................................................................114
Specyfikacja sposobu odwieania ...........................................................................114
Moment i czstotliwo odwieania........................................................................117
Typ migawki .............................................................................................................121
Implementacja migawki............................................................................................122
Rejestrowanie migawki w zdalnej bazie danych ......................................................123
Fizyczne parametry skadowania migawki...............................................................124
Modyfikowanie i usuwanie migawki........................................................................126
Informacje sownikowe.............................................................................................127
Dziennik migawki ...........................................................................................................129
Definiowanie dziennika ............................................................................................129
Implementacja dziennika ..........................................................................................132
Fizyczne parametry skadowania dziennika .............................................................133
Modyfikowanie i usuwanie dziennika ......................................................................134
Informacje sownikowe.............................................................................................134
Grupa odwieania ..........................................................................................................136
Zarzdzanie grup odwieania ................................................................................136
Informacje sownikowe.............................................................................................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
Zarzdzanie rodowiskiem replikacji..............................................................................142
Schemat tabel z przykadw............................................................................................143
Replikacja multimaster....................................................................................................143
Kiedy stosowa replikacj multimaster? ..................................................................144
Architektura replikacji multimaster ..........................................................................145
Proces replikacji multimaster....................................................................................152
Parametry konfiguracyjne wza 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 rozwizywanie konfliktw ......................................................................187
Rodzaje konfliktw...................................................................................................188
Wykrywanie konfliktw ...........................................................................................190
Rozwizywanie konfliktw ......................................................................................190
Monitorowanie rodowiska zaawansowanej replikacji...................................................201
Lista transakcji w kolejce odroczonych transakcji ...................................................201
Lista transakcji w kolejce bdw.............................................................................201
Lista wywoa replikowanych procedur...................................................................202
Harmonogram zada.................................................................................................202

Oracle. Projektowanie rozproszonych baz danych


Podstawowe operacje administracyjne rodowiska zaawansowanej replikacji ..............203
Zmiana wza definicyjnego dla nadrzdnej grupy replikacji ..................................203
Usunicie wza nadrzdnego ze rodowiska zaawansowanej replikacji.................203
Usunicie obiektu z nadrzdnej grupy replikacji......................................................204
Usunicie nadrzdnej grupy replikacji......................................................................204
Usunicie migawki z grupy migawek.......................................................................205
Usunicie grupy migawek.........................................................................................205
Replication Management Tool ........................................................................................206
Uprawnieni uytkownicy ..........................................................................................207
Budowa narzdzia.....................................................................................................207
Przegld funkcji narzdzia........................................................................................207
Tworzenie rodowiska replikacji multimaster
przy uyciu Replication Management Tool ...........................................................209

Rozdzia 8. Oracle9i Lite rozproszona baza danych


na urzdzeniach 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
Narzdzia programowe .............................................................................................222
Udostpnianie aplikacji.............................................................................................223
Mobile Server zarzdzanie uytkownikami i aplikacjami mobilnymi.......................231
Zarzdzanie uytkownikami .....................................................................................231
Zarzdzanie aplikacjami ...........................................................................................232
Instalowanie aplikacji na urzdzeniu mobilnym.......................................................232
Synchronizacja danych i aplikacji...................................................................................236
Wstpna ocena Oracle9i Lite ..........................................................................................238

Rozdzia 9. Optymalizacja zapyta rozproszonych ............................................. 239


Rodzaje optymalizacji polece........................................................................................240
Wybr optymalizatora i celu optymalizacji ....................................................................240
Generowanie statystyk ....................................................................................................241
Wskazwki 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 wskazwek w czeniu tabel............................................................259
Podzapytania .............................................................................................................263

Spis treci

Rozdzia 10. Partycjonowanie danych ................................................................ 265


Algorytmy partycjonowania danych ...............................................................................266
Partycjonowanie tabel .....................................................................................................267
Partycjonowanie bazujce na wartoci .....................................................................267
Partycjonowanie haszowe.........................................................................................270
Partycjonowanie hybrydowe.....................................................................................271
Fizyczne parametry skadowania tabel partycjonowanych.......................................272
Wykorzystanie tabel partycjonowanych w poleceniach select i DML .....................273
Zarzdzanie tabelami partycjonowanymi .................................................................273
Informacje sownikowe.............................................................................................276
Partycjonowanie indeksw..............................................................................................278
Typy indeksw..........................................................................................................279
Zarzdzanie indeksami partycjonowanymi...............................................................280
Informacje sownikowe.............................................................................................281

Bibliografia .................................................................................... 283


Skorowidz...................................................................................... 287

Rozdzia 3.

Procesy Oracle
komunikacji sieciowej
Komunikacja midzy kad aplikacj uytkownika a baz danych odbywa si za porednictwem tzw. procesu usugowego (ang. server process). Jego rol jest obsuga da
uytkownikw. Do jego zada m.in. naley:
 wykonywanie analizy skadniowej i optymalizacja polece SQL;
 wykonywanie polece SQL;
 odczytywanie danych danych z dysku i umieszczanie ich w pamici SGA

por. [WJZ99, LoKo02, LoTh02, O9Con];


 przekazywanie wynikw polece SQL do aplikacji uytkownikw.

W SZBD Oracle procesy usugowe mog pracowa w trzech nastpujcych konfiguracjach: procesw dedykowanych, procesw czuwajcych i procesw wspdzielonych.
Wszystkie trzy typy procesw omwione zostan w niniejszym rozdziale.

Dedykowany proces usugowy


W standardowej konfiguracji klient-serwer, dla kadej aplikacji uytkownika jest tworzony jeden proces usugowy, za pomoc ktrego realizowany jest dla tej aplikacji dostp
do bazy danych. Jest to tzw. architektura systemu z dedykowanymi procesami usugowymi (ang. dedicated servers). Zostaa ona przedstawiona na rysunku 3.1.
W powyszej architekturze komunikacja midzy aplikacj uytkownika a baz danych
przebiega w czterech nastpujcych krokach. W kroku 1. przez aplikacj uytkownika
zostaje nawizane poczenie z konkretnym procesem nasuchujcym listener. Po
odebraniu dania listener tworzy nowy dedykowany proces usugowy do obsugi
da uytkownika (krok 2.). W kroku 3. listener przesya do aplikacji adres i numer

60

Oracle. Projektowanie rozproszonych baz danych

Rysunek 3.1.
Komunikacja
midzy aplikacj
uytkownika
a baz danych
w architekturze
z dedykowanymi
procesami usugowymi

portu komunikacyjnego dedykowanego procesu usugowego. Po otrzymaniu tego


adresu zostaje nawizane przez aplikacj bezporednie poczenie ze wskazanym procesem usugowym (krok 4.).
Standardowa konfiguracja listenera, omwiona w rozdziale 2., zapewnia prac w architekturze dedykowanych procesw usugowych.

Czuwajcy proces usugowy


Rozszerzenie konfiguracji systemu z serwerami dedykowanymi stanowi tzw. architektura z czuwajcymi procesami usugowymi (ang. prespawned servers). W tym
przypadku listener, po jego uruchomieniu, tworzy pul aktywnych procesw usugowych, gotowych do obsugi da uytkownikw. W momencie pojawienia si dania jeden z wolnych procesw czuwajcych przydzielany jest do obsugi tego dania.
Poniewa proces czuwajcy jest natychmiast gotowy do pracy, odpowied systemu jest
szybsza. Przykadowa architektura systemu z czuwajcymi procesami usugowymi
zostaa przedstawiona na rysunku 3.2.
Rysunek 3.2.
Komunikacja
midzy aplikacj
uytkownika
a baz danych
w architekturze
czuwajcych
procesw usugowych

Komunikacja midzy aplikacj uytkownika a baz danych przebiega podobnie, jak


w przypadku przedstawionym na rysunku 3.1. W kroku 1. przez aplikacj uytkownika
zostaje nawizane poczenie z procesem listener. Po odebraniu dania przez proces
listener zostaje wybrany jeden z dostpnych procesw usugowych (krok 2.), a jego
adres i numer portu jest przekazywany do aplikacji (krok 3.). Po otrzymaniu tego adresu
przez aplikacj zostaje nawizane bezporednie poczenie ze wskazanym procesem
usugowym (krok 4.). W kroku 5. przez proces listener tworzony jest nowy proces
usugowy, ktry zostaje dodany do puli dostpnych aktywnych procesw.

Rozdzia 3. Procesy Oracle komunikacji sieciowej

61

Konfigurowanie procesu nasuchu


W celu skonfigurowania listenera w architekturze z czuwajcymi procesami usugowymi naley w pliku listener.ora umieci zbir parametrw, okrelajcych dla kadego
protokou m.in. maksymaln liczb procesw usugowych, pul aktywnych procesw
i czas istnienia procesu po jego wykorzystaniu. Przykadow zawarto pliku listener.ora
przedstawiono poniej.


  

  

 

  
   
 
  !



 

 

   

"# #$ #%!&& 

 $  '()*(%!

 $ #%!

 +$, !-

 +

 +  

   

. -

$/ 





W powyszym przykadzie dla instancji LAB92 wyspecyfikowano maksymalnie 20


procesw czuwajcych (parametr 
 ). Dla pocze za pomoc protokou TCP/IP pula aktywnych procesw wynosi 10 (parametr   ). Parametr

  oznacza czas istnienia (w minutach) procesu usugowego po jego wykorzystaniu przez aplikacj uytkownika. Po upyniciu tego czasu proces jest usuwany
z systemu.
Liczba czuwajcych procesw usugowych, tworzonych w momencie startowania procesu nasuchowego, jest widoczna na ekranie po wydaniu polecenia 
 !"#. Poniej przedstawiono fragment informacji wywietlanych w czasie
startowania listenera, skonfigurowanego jak wyej. Mona zauway, e po uruchomieniu listenera tworzonych jest 11 procesw usugowych, z ktrych 10 jest czuwajcych.
'(0)1)
&&&
2324*1)1'3242*56&&&
78!+1'9*1%&!&-&&- :1
)53;*<=*;=>* '()*(%!(1*5(;1()*1*&
?/ /

)

62

Oracle. Projektowanie rozproszonych baz danych


&&&
@:3:15<5A=3:;1*&&&

  
 
  3
 
  !
:;1*:@:B&&&
/@:BC#%!&& C;)2411><1D&
11>1/E+

  

Szczegow informacj o procesach usugowych mona uzyska, wydajc polecenie:


)1)*F*

Architektura systemu z dedykowanymi procesami czuwajcymi powinna by stosowana dla niewielkiej i redniej liczby uytkownikw. Liczba uytkownikw, przy ktrej
konfiguracja ta zapewnia efektywny dostp do bazy danych, zaley od mocy obliczeniowej i pamici RAM wza. Kady nowy proces uytkownika wymaga uruchomienia
odrbnego procesu usugowego, ktry zajmuje czas procesora i alokuje swoj pami.
Oznacza to, e nawet silny obliczeniowo wze dla duej liczby rwnoczenie pracujcych uytkownikw wykorzysta wszystkie swoje zasoby, co z kolei obniy efektywno systemu. Z tych wzgldw Oracle obsuguje tak zwan architektur ze wspdzielonymi procesami usugowymi.

Wspdzielony proces usugowy


Instancj bazy danych mona rwnie uruchomi w konfiguracji ze wspdzielonymi
procesami usugowymi (ang. shared servers), zwanej wczeniej wielowtkow (ang.
multi-threaded servers). W konfiguracji tej pojedynczy proces usugowy obsuguje
dania wielu aplikacji uytkownikw, natomiast aplikacja czy si najpierw z tzw.
procesem ekspedytora (ang. dispatcher). Zadaniem ekspedytora jest kierowanie da
aplikacji (np. wykonanie polecenia SQL, wywoanie procedury skadowanej) do wolnego procesu usugowego.
W konfiguracji wspdzielonej serwer moe wykorzystywa wiele ekspedytorw i wiele
wspdzielonych procesw usugowych. Liczba wspdzielonych procesw usugowych
jest dostosowywana dynamicznie przez SZBD, w zalenoci od liczby da uytkownikw.
dania uytkownikw, ktre zostay przyjte przez ekspedytor, trafiaj do tzw. kolejki
zada do obsugi (ang. request queue). Dla danej instancji bazy danych istnieje tylko
jedna taka kolejka i jest ona wspdzielona przez wszystkie ekspedytory. Zadania z tej
kolejki s nastpnie pobierane i obsugiwane przez wspdzielone procesy usugowe.
Kolejka tych zada jest obsugiwana zgodnie z algorytmem FIFO (first-in-first-out),
czyli zadania s obsugiwane w kolejnoci ich pojawiania si w kolejce. Obsuone
zadania (np. wyniki zapytania) trafiaj do odpowiednich kolejek zada obsuonych
(ang. response queues). Kady ekspedytor posiada prywatn kolejk takich zada.
Informacje z kolejki zada obsuonych s nastpnie przesyane przez ekspedytor do
odpowiedniego procesu uytkownika. Kolejka zada do obsugi, jak i kolejka zada
obsuonych znajduje si w pamici SGA instancji bazy danych.

Rozdzia 3. Procesy Oracle komunikacji sieciowej

63

Rysunek 3.3 przedstawia przykadow architektur pracy wspdzielonych procesw


usugowych. dania uytkownikw s kierowane do wspdzielonych procesw usugowych P1 i P2 przez jeden ekspedytor D001.
Rysunek 3.3.
Wspdzielone
procesy usugowe

Komunikacja midzy procesem uytkownika a baz danych zostaa zilustrowana na


rysunku 3.4. W czasie uruchamiania instancji bazy danych por. [WJZ99, LoKo02,
LoTh02, O9Con] uruchamiane s procesy ekspedytorw i tworzona jest pula procesw usugowych. Adresy dostpnych ekspedytorw s rejestrowane w procesie listener.
W kroku 1. danie uytkownika jest odbierane przez proces listener. Po odebraniu
dania przez proces listener zostaje wybrany najmniej obciony ekspedytor (krok 2.),
a nastpnie do procesu klienta zostaje wysane danie przeczenia si na wskazany
ekspedytor wraz z jego adresem i numerem portu komunikacji (krok 3.). W kroku 4.
zostaje przez aplikacj uytkownika nawizane bezporednie poczenie ze wskazanym
ekspedytorem. Kadorazowo po nawizaniu poczenia z now aplikacj uytkownika
do listenera zostaje przez ekspedytora wysana informacja o jego obcieniu (krok 5.).
Rysunek 3.4.
Komunikacja
midzy aplikacj
uytkownika
a baz danych
w architekturze
wspdzielonych
procesw usugowych

Konfigurowanie wspdzielonych procesw usugowych


W celu skonfigurowania instancji bazy danych w architekturze ze wspdzielonymi
procesami usugowymi naley w pliku konfiguracyjnym instancji bazy danych initSID.ora por. [O9Dba, WJZ99] umieci zbir dodatkowych parametrw.

64

Oracle. Projektowanie rozproszonych baz danych

Przykadowy zbir tych parametrw przedstawiono poniej. Pierwszy wiersz definiuje


zbir 4 ekspedytorw ($% &) dla protokou TCP/IP ($ $). Kady
z ekspedytorw moe obsugiwa maksymalnie 100 pocze ($$ ).
Drugi wiersz definiuje 1 ekspedytor dla protokou SPX/IPX. Ekspedytor moe obsugiwa maksymalnie 20 pocze. W wersjach wczeniejszych ni Oracle9i zamiast
parametru $% naleao wykorzystywa
 $%.
   C
   
   G
  --C
   C
   ,
   
  !-C

Dodatkowo, specyfikujc parametry ekspedytora mona jawnie poda adres komputera,


na ktrym ekspedytor bdzie pracowa, i jawnie zaalokowa dla niego numer portu.
Poniszy listing definiuje trzy ekspedytory pracujce na komputerze o nazwie dcs-rwtoshiba. Kady z nich posiada jednak inny port komunikacji: D000 pracuje na porcie
3400, D001 na 3401, a D002 na 3402.
   C
 
  3
 

 8G--
   
  --C
   C
 
  3
 

 8G-
   
  --C
   C
 
  3
 

 8G-!
   
  --C

W pliku initSID.ora poszczeglne sekcje $% musz by pisane w jednym


wierszu.

Liczba wspdzielonych procesw usugowych, wykorzystywanych przez instancj, jest


kontrolowana za pomoc dwch parametrw inicjujcych: % ' (
 '
w wersjach wczeniejszych ni Oracle9i) i
 % ' (

 '
w wersjach wczeniejszych ni Oracle9i). Pierwszy z nich okrela minimaln liczb
procesw usugowych, tworzonych w czasie startowania instancji bazy danych i utrzymywanych przez ni w czasie pracy. Drugi parametr okrela maksymaln liczb tych
procesw. Maksymaln liczb ekspedytorw okrela parametr
 $% (


$% w wersjach wczeniejszych ni Oracle9i). Przykadowo, ponisze
parametry definiuj & procesw usugowych jako minimum i   jako maksimum,
a maksymalna liczba ekspedytorw ustalona jest na .
**F* G-H;*F*
;I**F* !-H;;I*F*
;I3* -H;;I3*

Rozmiar pamici
procesw usugowych
W architekturze wspdzielonych procesw usugowych standardowo kady proces
alokuje pami w obszarze wspdzielonym (ang. shared pool) pamici SGA por.
[O9Con, O9Dba, LoKo02, LoTh02]. Rozwizanie takie nie jest jednak zalecane, ponie-

Rozdzia 3. Procesy Oracle komunikacji sieciowej

65

wa wpywa na zmniejszenie efektywnoci dziaania bazy danych. Z tego powodu dla


procesw usugowych Oracle Corp. zaleca alokowanie odrbnego obszaru pamici
poza SGA. Rozmiarem tego obszaru steruje parametr konfiguracyjny instancji (
  ((  w wersjach wczeniejszych ni Oracle9i). Rozmiar tego obszaru dobiera si szacunkowo na podstawie dotychczasowego wykorzystania pamici
przez procesy usugowe i liczby rwnoczesnych docze do bazy danych.
Informacje na temat wykorzystania pamici przez procesy usugowe mona odczyta
za pomoc poniszego zapytania, skierowanego do dynamicznych tabel systemowych
V$SESSION, V$SESSTAT i V$STATNAME.
*)**&J*&:*1;*J
1;*&1;*J&F):*
7;FK*1*J
FK*J
FK1;*1;*
***& &
1&H 1;*&H
11;*&1;*1
L*1:B;*;=LJL*1:B;*;=;IL
1*&:*1;*11:))
*=*&M

Przykadowy wynik zapytania przedstawiono poniej.


 /$$9/

%N*1:B;*;=88OOP
%N*1:B;*;=;IGP%QGG
! / E*1:B;*;=QP%P! / E*1:B;*;=;IQP%P E*1:B;*;=G8 PO
 E*1:B;*;=;I Q!Q P
Q#E*1:B;*;= %P-G
Q#E*1:B;*;=;I8%QOG

SID oznacza identyfikator sesji, USERNAME nazw uytkownika bazy danych,


NAME opis wartoci kolumny VALUE. VALUE reprezentuje rozmiar zaalokowanej
pamici, mierzony w bajtach. session uga memory reprezentuje aktualnie wykorzystywany przez proces usugowy rozmiar pamici, natomiast session uga memory max reprezentuje maksymalny rozmiar pamici, jaki wykorzystano w ramach biecej sesji.
Na podstawie powyszego wyniku widzimy, e sesja o numerze 15 wykorzystaa
maksymalnie 572756B pamici, natomiast aktualnie wykorzystuje 43568B. Jeeli
w systemie spodziewanych jest 100 rwnoczesnych sesji o podobnej charakterystyce,
wwczas rozmiar (   naley wyliczy jako: 572756 100.
Minimaln liczb ekspedytorw mona ustali na podstawie maksymalnej liczby pocze obsugiwanych przez jeden proces usugowy i na podstawie oczekiwanej liczby
rwnoczesnych pocze. Maksymalna liczba pocze obsugiwanych przez proces
usugowy zaley od systemu operacyjnego. Mona j odczyta po uruchomieniu instancji w trybie wspdzielonych procesw usugowych, korzystajc z polecenia 
")*". Jeeli w sekcji $% nie umiecimy parametru $$, wwczas
przyjta zostanie maksymalna dozwolona liczba pocze w systemie operacyjnym.

66

Oracle. Projektowanie rozproszonych baz danych

Przykadowo, w poniszy listingu maksymalna liczba procesw wynosi 1002 (warto


dla Windows XP). Zaleca si jednak unikanie maksymalnego obciania ekspedytorw.
'(0)1)*F*
 78!+1'9*1%&!&-&&- :1&&&&
&&&&&&&
&&&&&&&
 *:
=@:B'
C    C:11'-;<1'-1'*=
 9
C ---C:)1'-;<1'-*RD*'-
! "##1'*=
   S;1*' +#J3'!--0

 
  3
 
 8G--

Informacje o aktualnej architekturze


pracy instancji bazy danych
Informacje o aktualnej architekturze pracy instancji mona uzyska na kilka sposobw.
Pierwszy z nich wymaga doczenia si do bazy danych z poziomu SQL*Plus jako
uytkownik z uprawnieniami DBA. Nastpnie naley wyda polecenie +! ,""
-* +". Jeeli nie skonfigurowano instancji w architekturze wspdzielonych
procesw usugowych, wwczas warto parametru inicjujcego $% bdzie
pusta, jak przedstawiono w poniszym listingu. Parametry
 $% i


$% przyjmuj w takim przypadku wartoci domylne.
T03;**3*
$N 9/

3*1B
;I3*1*B*
;3*1B
;;I3*1*B*

W drugim sposobie wykorzystywane jest polecenie ")*", jak podano


poniej. W poniszym listingu znajduje si przykadowy opis czterech ekspedytorw
o nazwach D000, D001, D002, D003. Pierwszy z nich obsuguje 2 poczenia ("D000"
ustalono:2). Kolejne 2 poczenia s obsugiwane przez procesy dedykowane ("DEDICATED" ustanowiono:2).
 0*F*
?D2=42
  
 
   
 

  !
:;1*:@:B&&&
/@:BC#%!&& C;)2411><1D&
11>C#%!CJ1/E+J;)*>:@:B3*:
4J=
@:B&&&
 *:
=@:B'
C    C:)1'-;<1' 9
11>C#%!CJ1 NJ;)*>:@:B 3*:
4J=

Rozdzia 3. Procesy Oracle komunikacji sieciowej

67

@:B&&&
 *:
=@:B'
$##%:)1'-;<1'-*RD*'-;5&'--1'*=
   S;1*' +#J3'!8%!0

 
  3
 
 8GG-
$##:)1'-;<1'-*RD*'-;5&'--1'*=
   S;1*' +#J3'8-G-0

 
  3
 
 8G8%
$##:)1'-;<1'-*RD*'-;5&'--1'*=
   S;1*' +#J3'!G!0

 
  3
 
 8G8O
$###
&";<1'-*RD*'-;5&'--1'*=
   S;1*' +#J3'!!G0

 
  3
 
 8G8P
$'$()*'$
&+&";<1'-1'*=
 9
)**1*25A21*32*1*;

W systemach Unix wydanie polecenia  (np. ."/) umoliwia wywietlenie procesw systemowych. Instancja w architekturze wspdzielonych procesw usugowych
bdzie posiadaa procesy ekspedytorw o nazwach ora_dxxx_SID.
Kolejnym rdem informacji na temat architektury wspdzielonych procesw usugowych s dynamiczne tabele systemowe, m.in. V$DISPATCHER i V$SHARED_SERVER
por. [O9Ref]. Pierwsza z nich udostpnia nazwy i parametry ekspedytorw, a druga
nazwy i parametry wspdzielonych procesw usugowych. Przykadowe zapytanie do V$DISPATCHER i jego wynik przedstawiono poniej.
T0*)*1;*J1*5J:J171I7;FK3*M
$+E/ U ,

---
 
  3
 +
 8G--
--
 
  3
 +

 8G-
--!
 
  3
 +!

 8G-!

Atrybut name oznacza nazw ekspedytora, network przechowuje parametry wyspecyfikowane w omwionej wczeniej sekcji , status przechowuje aktualny stan
pracy ekspedytora. status moe przyj m.in. jedn z nastpujcych wartoci: WAIT
ekspedytor oczekuje na danie poczenia, SEND ekspedytor wysya wiadomo,
RECEIVE ekspedytor otrzymuje danie, CONNECT nawizywane jest poczenie z aplikacj uytkownika, DISCONNECT poczenie jest przerywane. Warto
atrybutu CONF_INDX okrela numer parametru inicjujcego $%, ktry posuy do utworzenia ekspedytora. Ekspedytor utworzony na podstawie wartoci pierwszego w kolejnoci parametru otrzymuje warto rwn 0, ekspedytor utworzony na
podstawie drugiego parametru otrzymuje warto 1 itp. Powyszy wynik otrzymano
dla parametrw $% okrelonych w sposb przedstawiony poniej.
   C
 
  3
 

 8G--
   
  --C

68

Oracle. Projektowanie rozproszonych baz danych


   C
 
  3
 

 8G-
   
  --C
   C
 
  3
 

 8G-!
   
  --C

Zarzdzanie parametrami
pracy instancji w architekturze
wspdzielonych procesw usugowych
W czasie pracy instancji bazy danych mona dynamicznie modyfikowa liczb dziaajcych wspdzielonych procesw usugowych i ekspedytorw. Suy do tego celu
polecenie "0",. Przykadowo w Oracle9i za pomoc poniszego polecenia
aktualna liczba procesw usugowych ustalana jest na 1. We wczeniejszych wersjach
systemu +"- ")" naley zastpi przez , ")".
T0)*=*;***F* 8-M

Liczb i parametry pracy ekspedytorw modyfikuje si w Oracle9i poleceniem:


)*=*;*3* L
 , 171I
3;*=M

We wczeniejszych wersjach systemu -* +" naley zastpi przez , -* +".
Przykadowo, ponisze polecenie dodaje do systemu jeden ekspedytor o indeksie 3.
T0)*=*;*3*
!L
 , 8
8
 
   
 
 8G-8
G
   LM

Dodany ekspedytor pojawia si w systemie i jest widoczny za pomoc V$DISPATCHER.


T0*)*1;*J1*5J:J171I7;FK3*M
$+E/ U ,

---
 
  3
 +
 8G--
--
 
  3
 +

 8G-
--!
 
  3
 +!

 8G-!
--8
 
   
 +8

 8G-8

Rozdzia 3. Procesy Oracle komunikacji sieciowej

69

Kolejne przykadowe polecenie umoliwia usunicie ekspedytora o indeksie 3. Po jego


wykonaniu ekspedytor zostanie fizycznie usunity z systemu z pewnym opnieniem.
T0)*=*;*3*
!L
 , 8
   
   -LM

Wybr typu procesu usugowego


Jeeli instancja pracuje w trybie wspdzielonych procesw usugowych, wwczas
przez aplikacj moe zosta wskazane, czy do jej obsugi ma by wykorzystany dedykowany proces usugowy, czy wspdzielony. Wyboru tego dokonuje si, konfigurujc plik tnsnames.ora. Opisany wczeniej parametr ' z wartoci DEDICATE
lub SHARED steruje wyborem procesu usugowego. Poprzez wprowadzenie do pliku
tnsnames.ora dwch rnych nazw usug, wskazujcych na t sam baz danych, lecz
z rn wartoci parametru ', moe by dokonany wybr procesu obsugujcego aplikacj wanie przez wskazanie odpowiedniej usugi. Przykadowy fragment pliku
tnsnames.ora zawierajcy tak konfiguracj przedstawiono poniej.
#%!*&& 

  

 

  
   
 
  !


  

9  

9 $ #%!


#%!**&& 

  

 

  
   
 
  !


  

9     

9 $ #%!



Jeeli w pliku sqlnet.ora zostanie umieszczony parametr  $ ' ,
wwczas dla wszystkich pocze aplikacji bd alokowane procesy dedykowane, nawet
jeli w definicji usugi parametr ' przyjmuje warto SHARED. Brak parametru
 $ ' lub wpis  $ ' 22 powoduje alokowanie procesw usugowych zgodnie z konfiguracj instancji i wartoci parametru '.

70

Oracle. Projektowanie rozproszonych baz danych

Wykrywanie nieaktywnych pocze


Raz nawizane poczenie midzy procesem usugowym a aplikacj wykorzystuje
zasoby systemowe. W przypadku zerwania poczenia z aplikacj, np. na skutek braku
poczenia sieciowego, awarii komputera uytkownika lub aplikacji, proces j obsugujcy staje si nieaktywny (ang. dead) i powinien zosta usunity z systemu. Czsto
w przypadku tego typu awarii dane w bazie s blokowane przez transakcj uytkownika. Usunicie nieaktywnego procesu powoduje wycofanie transakcji i zwolnienie
wszystkich wykorzystywanych przez ni blokad.
Proces testowania aktywnoci aplikacji uytkownika (ang. dead connection detection)
jest realizowany przez Oracle Net. Oprogramowanie to wysya pakiety testowe za pomoc kadego z pocze. Czstotliwo prbkowania jest okrelona parametrem konfiguracyjnym 34  
 pliku sqlnet.ora. Jego warto podaje si w minutach.
Przykadowo, wpis 34  
  oznacza prbkowanie co 10 minut. Jest to
warto zalecana w dokumentacji Oracle [O9NAG]. W domylnej konfiguracji plik
sqlnet.ora nie zawiera parametru 34  
, a wic nieaktywne poczenia
nie s wykrywane.

You might also like