Bazy rozproszone Systemy baz danych

advertisement
Maria Dems
Bazy rozproszone
Maria Dems
Systemy baz danych
Komponenty SBD:
• Platforma sprzętowo-operacyjna
• Baza danych
• Funkcje (programy) użytkownika
• System Zarządzania Bazą Danych
SO
BD
FU
SZBD
Warstwy Systemu baz danych:
a warstwa danych,
a warstwa Systemu Zarządzania Bazami Danych,
a warstwa oprogramowania użytkowego.
2
1
Maria Dems
Architektura systemów baz
danych
*
*
*
*
*
W a r ia n ty r o z w ią z a ń :
S c e n tr a liz o w a n a B D
W ie lo d o s tę p n a
BD
S ie ć lo k a ln a
A r c h ite k tu r a k lie n t /s e r w e r
S ie ć r o z le g ła (r o z p r o s z o n a B D )
aSystemy jednostanowiskowe
Układ warstw w systemie jednostanowiskowym
3
Systemy jednostanowiskowe
baz danych
BD, FU
SO, SZBD
użytkownik
ż k
ik
użytkownik 2
użytkownik n
Baza scentralizowana:
sprzęt oprogramowanie i użytkownik
sprzęt,
==> w jednym miejscu
Baza wielodostępna:
sprzęt, oprogramowanie i użytkownicy
==> w jednym miejscu, dostęp dzielony
4
2
Maria Dems
Systemy sieciowe BD
Podział warstw systemu:
awarstwa danych znajduje się na wydzielonym
komputerze
(serwer
plików),
k
t
(
likó )
awarstwa SZBD i oprogramowania użytkowego - na
każdym komputerze z oprogramowaniem bazy danych
Układ warstw w
systemie sieciowym
5
Systemy sieciowe BD
SO
BD
SZBD, FU
SZBD, FU
Baza w sieci lokalnej - BD, SO ==> w jednym miejscu,
SZBD, programy, użytkownicy oddzieleni
FU
SO , SZBD
BD
FU
FU
Architektura
klient/serwer:
rozdzielenie
programów od
pozostałych
elementów
6
3
Maria Dems
Architektura klient - serwer
Klient - komputer lub stacja robocza włączona do
sieci,
sieci która pozwala
po ala na dostęp do BD
Serwer - komputer (superkomputer, minikomputer,
stacja robocza, zasoby LAN) udostępniający
zasoby sieci (serwery transakcji i serwery danych)
Korzyści stosowania architektury K/S:
∗ dostęp do elementów sieci
∗ otwarta architektura
∗ indywidualizacja przetwarzania klientów
∗ integracja zasobów i BD
∗ rozwiązywanie problemów komunikacyjnych
w ramach architektury K/S (przetwarzanie jedno- ,
i wielotorowe, serwery równoległe)
7
Architektura klient - serwer
Klient
Serwer
Program
aplikacyjny (FU)
Pamięć
dzielona
Zdalnie dostępny
interfejs BD
Serwer BD
(SZBD+BD)
Interfejs
sieci
Interfejs
sieci
8
4
Maria Dems
Rozproszona baza danych
SO, SZBD,
BD, FU
SO, SZBD
BD, FU
SO, SZBD,
BD, FU
Rozproszone BD:
Wiele baz połączonych ze sobą
9
Rozproszona baza danych
Wrocław
Warszaw a
BD
BD
Sieć komunikacyjna
Szczecin
Kraków
BD
BD
Przykład R*BD
10
5
Maria Dems
Pojęcie rozproszonych baz danych
Rozproszona BD (ang. Distributed Database) - SBD, w
którym wiele węzłów przetwarzania połączono w sieć
i istnieje możliwość dostępu z dowolnego miejsca do
całej BD
Przesłanki realizacji Rozproszonej Bazy Danych:
arozproszenie systemu informacyjnego
arozwój teleprzetwarzania
ahierarchizacja przetwarzania danych
apoprawa parametrów eksploatacyjnych
Bazy rozproszone dzielimy na: jednorodne homogeniczne, niejednorodne - heterogeniczne i
federacyjne
11
Zasady „rozpraszania” BD wg
Date’a
0. Fundamentalna (Rozproszona BD jak zwykła BD)
1.
1 Lokalna
L k l autonomia
i węzła
ł (local
(l l autonomy))
2. Równorzędność wszystkich węzłów (no reliance on a
central site)
3. Ciągłość przetwarzania (continuous operation)
4. Niezależność lokalizacji danych w BD (location
independence)
5. Niezależność fragmentacji BD (fragmentation
independence)
6. Niezależność replikacji BD (replication independence)
12
6
Maria Dems
Zasady „rozpraszania” BD
wg Date’a
7. Rozproszone przetwarzanie zapytań (distributed
query processing)
i )
8. Rozproszone zarządzanie transakcjami (distributed
transaction management)
9. Niezależność sprzętowa BD (hardware independence)
10. Niezależność „operacyjna” BD (operation system
independence)
11. Niezależność sieci komputerowej BD (network
indepenedence)
12. Niezależność SZBD (DBMS independence)
13
Właściwości Rozproszonej BD
aRozproszona BD stanowi kolekcję logicznie
powiązanych i współużytkowanych danych
aBD jest podzielona na szereg fragmentów
aFragmenty mogą być replikowane
aFragment/repliki są alokowane w węzłach
aWęzły są połączone w sieć o uzgodnionych zasadach
współpracy
aDane w każdym węźle są pod kontrolą SZBD
(autonomia)
aPrzetwarzania Rozproszonej BD odbywa się na dwóch
poziomach: globalnym i lokalnym
aKażdy SZBD w Rozproszonej BD uczestniczy
przynajmniej w jednej globalnej aplikacji
14
7
Maria Dems
Rozłożenie danych
w rozproszonym systemie BD
W systemach rozproszonych rozróżniamy dwa modele
da
yc : dane rozproszone
ozp oszone i dane replikowane.
eplikowane. Dane
a e
danych:
rozproszone pomiędzy bazy lokalne mogą być rozłożone
poprzez fragmentaryzację. Rozróżnia się:
a fragmentaryzację pionową - podzbiory kolumn w tabeli,
a fragmentaryzację poziomą - podzbiory wierszy w tabeli.
Działanie
Rozkład danych
Fragmentaryzacja pozioma
Selekcja
Scalenie danych
Suma (UNION)
Fragmentaryzacja pionowa
Rzut na podzbiór kolumn
zawierający klucz główny
Złączenie naturalne w oparciu
o wartość klucza głównego
15
Dane rozproszone
a Każdy serwer w systemie rozproszonym odpowiada za swoje
ęp do danych
y jjest możliwy
y z wielu miejsc
j p
p
dane. Dostęp
poprzez
sieć. W systemie istnieje tylko jedna kopia każdej z danych.
a Czas odpowiedzi dla operacji na lokalnych danych jest krótki.
Gdy jedno ze zdalnych stanowisk jest niedostępne, można
korzystać z danych z innych serwerów.
a Częste korzystanie ze zdalnych danych wiąże się ze spadkiem
eefektywności
e tyw ośc p
przetwarzania.
etwa a a. W wypad
wypadku
u awa
awarii jed
jednego
ego zee
stanowisk, zakończenie transakcji może nie być możliwe do
chwili usunięcia uszkodzenia.
a Model jest odpowiedni gdy przeważająca część przetwarzania
dotyczy danych lokalnych, a odwołania do innych serwerów są
stosunkowo rzadkie.
16
8
Maria Dems
Dane replikowane
aKażde stanowisko posiada kopie wszystkich
potrzebnych na tym stanowisku danych,
danych w związku z
czym te same dane są powielone w kilku miejscach.
Model ten wymaga większej liczby zasobów i jest
odpowiedni gdy te same dane są wykorzystywane na
wielu różnych stanowiskach.
aReplikacja
p
j
danych
y
poprawia
p
p
efektywność
y
wykonywania zapytań oraz zwiększa dostępność
danych i odporność na awarie.
17
Właściwości Rozproszonej BD
Podstawowe własności rozproszonej bazy danych są
następujące:
aprzezroczystość geograficzna – użytkownik nie musi
wiedzieć, w którym miejscu są przechowywane dane,
aprzezroczystość fragmentaryzacji - użytkownik nie musi
wiedzieć, w jaki sposób są podzielone dane,
apr e roc ystość replikacji - użytkownik nie musi
aprzezroczystość
wiedzieć, w jaki sposób są replikowane dane, jakie i w
ilu bazach składowych.
18
9
Maria Dems
Właściwości Rozproszonej BD
Niezależność fragmentacji danych
P racow nik
P IN
123
234
456
567
789
ydział
Wy
W1
W2
W2
W3
W3
P łaca
2000
2400
1800
1900
2500
W rocław
P IN
123
234
W ydział P łaca
W1
2000
W2
2400
Kraków
P IN
456
567
789
W ydział
W2
W3
W3
P łaca
1800
1900
2500
19
Właściwości rozproszonej BD
Niezależność „replikacji” danych
Wrocław
PIN Wydzia
y
Płaca
PIN
ł
123 W1
2000 456
234 W2
2400 567
789
PIN
456
567
789
Wydzia Płaca PIN
ł
W2
1800 123
W3
1900 234
W3
2500
Kraków
Wydział
y
Płaca
W2
W3
W3
1800
1900
2500
Wydzia Płaca
ł
W1
2000
W2
2400
20
10
Maria Dems
Komponenty rozproszonej BD
Globalny
katalog
systemowy
Globalny
katalog
k t l
systemowy
SZR*BD
Węzeł 1
SZR*BD
Sieć komputerowa
Moduł
komunika
komunikacyjny
Węzeł 2
Moduł
komunika- SZBD
cyjny
BD
21
Zalety i wady rozproszonej BD
Za
alepsza obsługa struktur
organizacyjnych
awspólny dostęp i lokalna
autonomia węzłów
apoprawa dostępności BD
apoprawa wiarygodności
BD
a i k
azwiększenie
i wydajności
d j ś i
przetwarzania
alepszy wskaźnik efektykoszty
amodularyzacja rozwoju
BD
Przeciw
aduża złożoność
awyższe koszty utrzymania
aobniżenie bezpieczeństwa
atrudniejsze sterowanie
poprawnością
aniedostatek standardów i
doświadczeń
abardziej złożone
projektowanie
aproblemy związane z
wydajnością sieci
22
rozległych
11
Maria Dems
Reguły Rozproszonej BD
a Autonomia lokalnych BD: Lokalne dane powinny podlegać
lokalnym regułom własności i powinny być zarządzane lokalnie.
p zą
pprzetwarzania
z
z
g miejsca:
j
a Brak ppodporządkowania
do konkretnego
Spełnienie tej reguły umożliwia uniknięcie wąskich gardeł, dzięki
decentralizacji wszystkich funkcji rozproszonego SZBD.
a Ciągłość funkcjonowania: Przestoje w wykonywaniu operacji nie
powinny być skutkiem dodania nowych miejsc lub ich usunięcia
a Niezależność od lokalizacji: Użytkownicy lub aplikacje nie muszą
wiedzieć, gdzie dane są fizycznie przechowywane.
a Niezależność od rozczłonkowania: Fragmenty jednego zbioru
danych mogą być przechowywane i zarządzane przez
rozproszony SZBD jako jedna całość
a Niezależność od replikacji: Pojawienie się replik danych nie
powinno wpływać na postępowanie użytkowników ani na
23
konieczność przeróbek aplikacji.
Reguły Rozproszonej BD
a Rozproszone przetwarzanie zapytań: System powinien zapewniać
sprawne przetwarzanie rozproszonych zapytań umożliwiające
zredukowanie zarówno czasu przetwarzania, jak i obciążenia
sieci transmisji danych.
a Zarządzanie rozproszonymi transakcjami: Zasady zarządzania
transakcjami oraz sterowania współbieżnością powinny
obowiązywać dla operacji w rozproszonej bazie danych.
a Niezależność od sprzętu i systemu operacyjnego: Dowolne
p g
rozproszonego
p
g SZBD p
powinno p
pracować na
oprogramowanie
różnych platformach.
a Niezależność od sieci: Aplikacje działające na rozproszonej bazie
danych nie powinny być uzależnione od protokołów sieciowych.
a Niezależność od SZBD: Powinno być możliwe przyłączenie do
rozproszonej bazy danych lokalnej bazy danych zarządzanej
24
przez dowolny lokalny SZBD.
12
Maria Dems
System Zarządzania
Rozproszoną Bazą Danych
SZRBD posiada pełną funkcjonalność scentralizowanego
SZBD.
aUmożliwia połączenie rozproszonych zasobów w jedną
całość,
a Utrzymuje spójność tych zasobów,
zasobów
a Udostępnia zasoby użytkownikom,
a Ukrywa rozproszenie zasobów.
25
System Zarządzania
Rozproszoną Bazą Danych
a Ze względu na awarie, SZBD nie powinien się znajdować
w jednym miejscu, lecz zarówno dane jak i
oprogramowanie powinny być rozproszone.
a Katalog systemowy rozproszonej bazy danych powinien
zawierać informacje o położeniu fragmentów i replikacji.
a W systemie rozproszonym optymalizator zapytań
powinien móc użyć informacji topologicznych o sieci, przy
podejmowaniu decyzji, jak najlepiej wykonać dane
zapytanie
a Zwielokrotnienie
problemów
związanych
ze
współbieżnością
oraz
problemów
propagowania
aktualizacji do szeregu różnych węzłów.
26
13
Maria Dems
Funkcje Systemu Zarządzania
Rozproszoną Bazą Danych
Powinny być dostępne wszystkie funkcje SZBD
obsługującego bazę scentralizowaną, tzn.:
aObsługa komunikacji zapewniającej dostęp do zasobów
Rozproszonej BD
aAdministrowanie poszerzonym katalogiem systemu
zawierającym szczegóły „rozpraszania” BD
aRozproszone
p
p
przetwarzanie zapytań
py
(z
( optymalizacją)
py
ją)
a Poszerzona obsługa współbieżnego przetwarzania
zapewniająca spójność replikowanych danych
a Poszerzona obsługa funkcji odtwarzania Rozproszonej
BD przeciwdziałająca uszkodzeniom węzłów i połączeń
27
sieciowych
Klasyfikacja rozproszonychBD
Systemy wielu baz danych
(multidatabases)
Niefederacyjne rozproszone BD
Jednorodne
BD
Rozproszone BD z
globalnym schematem
Federacyjne BD
Słabo skojarzone
(loosely coupled)
Ściśle skojarzone
(tightly coupled)
Pojedyncze
• Niefederacyjne RBD: brak autonomii.
federacje
• Słabo skojarzone FBD: brak federacyjnego (pojedynczy
schematu i zarządzania, operacje
schemat)
w zależności od aplikacji.
• Ściśle skojarzone FBD: FSZBD jest
odpowiedzialny za zarządzanie całością federacji.
Wielokrotne
federacje
(wiele
schematów)
28
14
Maria Dems
Federacyjna Baza Danych
a Jest to kolekcja heterogenicznych, autonomicznych baz danych,
p
ą
y siecią
ą komputerową,
p
ą zarządzana
ą
yj y
połączonych
Federacyjnym
Systemem Zarządzania Bazą Danych (FSZBD). Może włączać
dziesiątki, setki, tysiące lub więcej lokalnych baz danych.
a FSZBD umożliwia tworzenie aplikacji globalnych, działających na
całości federacyjnej bazy danych. Jest ona zdefiniowana
schematem federacyjnym, będącym sumą schematów eksportowych
lokalnych baz danych.
a FSZBD zapewnia warunki pracy twórców aplikacji globalnych
określane jako przezroczystość i niezależność danych.
a FSZBD może być zainstalowany w wielu węzłach sieci,
umożliwiając tworzenie aplikacji globalnych w wielu miejscach
geograficznych. Poszczególne FSZBD współpracują ze sobą celem
29
zapewnienia spójności i integralności przetwarzania.
Architektura federacyjnej BD
Aplikacje globalne
FSZBD
1
Przestrzeń
robocza
Aplikacje globalne
...
Schemat FBD
FSZBD
m
Przestrzeń
robocza
Schemat FBD
Sieć
komputerowa
Schemat
S
h
eksportowy
k
1
Osłona 1
API 1
Lokalny
SZBD 1
BD 1
Aplikacje lokalne
Schemat
S
h
eksportowy
k
2
Osłona 2
API 2
Lokalny
SZBD 2
BD 2
Aplikacje lokalne
...
Schemat
S
h
eksportowy
k
n
Osłona n
API n
Lokalny
SZBD n
BD n
Aplikacje lokalne
30
15
Maria Dems
Przyczyny heteregoniczności FBD
a Niezależność działania: twórcy systemów nie uzgadniają między
sobą ich cech. Standardy są spóźnione i niekompletne
a Konkurencja
a Różne rozwiązanie dla złożonego problemu. Różne zespoły
znajdują różne rozwiązania, bazujące często na odmiennych
celach i założeniach.
a Efektywność finansowa i kompromisy: Wytwórcy oferują
produkty
p
y o różnejj cenie, funkcjonalności
j
i jjakości
a Systemy spadkowe (legacy): Systemy, które dawno zostały
wdrożone i działają efektywnie, nie mogą być z tego działania
wyłączone. Nie jest możliwe (lub jest bardzo kosztowne)
zastąpienie ich nowymi systemami. Nowe systemy, o podobnym
przeznaczeniu, posiadają inne założenia, cechy i funkcjonalności
31
Autonomia lokalnej BD
Autonomia lokalnej bazy danych w federacji baz danych oznacza:
a Lokalne dane podlegają lokalnym priorytetom, regułom
własności, autoryzacji dostępu, bezpieczeństwa, itd. Lokalna
baza danych może odrzucić zlecenia przychodzace z federacji, o
ile naruszają one lokalne ograniczenia lub zbytnio obciażają czas
procesora lub inne lokalne zasoby.
a Lokalna baza danych może udostępniać aplikacjom działającym
na federacji baz danych tylko określoną część swoich danych i
usług. Programiści tych aplikacji nie mają jakichkolwiek
środków dostępu do pozostałych danych i usług.
a Włączenie lokalnej bazy danych do federacji nie może
powodować konieczności zmiany programów aplikacyjnych
32
działających na lokalnej BD.
16
Maria Dems
Autonomia lokalnej BD
a Federacja może przetwarzać lokalne zasoby tylko poprzez
j p
g
p
j ((API)) specyficzny
p y
y dla
interfejs
programowania
aplikacji
lokalnego systemu. Inne metody (np. bezpośredni dostęp do
plików) są niedozwolone.
a Federacja nie może żądać od lokalnej bazy danych
zmiany/rozszerzenia jej usług (np. udostępnienia lokalnego
dziennika transakcji).
Federacyjną bazę danych powinna charakteryzować:
• przezroczystość
• niezależność danych
33
a Przezroczystość lokacji i dostępu : te same metody działania na
wszystkich bazach danych objętych federacją, programy
aplikacyjnych są zwolnione z konieczności uwzględniania
informacji o położeniu danych.
a Przezroczystość implementacji danych: zwolnienie programów
aplikacyjnych z konieczności uwzględniania informacji o
implementacji i organizacji danych.
a Przezroczystość protokołów komunikacyjnych: zwolnienie
programów aplikacyjnych z konieczności uwzględniania
aktualnych protokołów komunikacyjnych.
a Przezroczystość współbieżności: umożliwienie jednoczesnej pracy
programów
g
aplikacyjnych
p
yj y bez utraty
y spójności
p j
i
wielu p
integralności danych.
a Przezroczystość skalowania: umożliwienie dodawania/usuwania
baz danych do/z federacji bez wpływu na postać programów
aplikacyjnych.
a Przezroczystość awarii: minimalizacja skutków awarii węzłów
lub linii komunikacyjnych dla programów aplikacyjnych. 34
17
Maria Dems
Niezależność danych
Możliwość działań na danych niezależnie od programów, które
na nich operują. Nie ma potrzeby zmiany kodu programów
aplikacyjnych mimo zmian organizacji lub schematów danych.
a Fizyczna niezależność danych: ukrycie detali organizacji
fizycznej i technik dostępu, dzięki czemu możliwa jest ich
zmiana bez wpływu na kod aplikacji.
a Logiczna niezależność danych: umożliwienie niektórych zmian
schematu logicznego bez wpływu na kod aplikacji, np. dodanie
atrybutów do relacji, zmiana kolejności atrybutów, zmiana ich
typów, utworzenie nowych relacji, itd.
a Ewolucja schematu (schema evolution): umożliwienie daleko
idących zmian schematu danych przy jednoczesnym utworzeniu
perspektyw (views) zachowujących stary schemat.
35
Hurtownie danych
Hurtownie danych służą do do składowania i przetwarzania
dużych ilości danych pochodzących z różnych źródeł, najczęściej
heterogenicznych
h t
i
h i rozproszonych
h oraz do
d
tworzenia
t
i
i
przechowywanie kopii bezpieczeństwa danych strategicznych.
a Z każdym z heterogenicznych źródeł informacji związana jest
warstwa oprogramowania – konwerter/monitor, integrator.
a Zadaniem modułu konwertera jest transformowanie danych z
formatu wykorzystywanego w źródle do formatu stosowanego
w hurtowni.
a Zadaniem modułu monitora jest wykrywanie zmian w danych
źródłowych i ich przekazywanie do warstwy oprogramowania
integratora (po konwersji do modelu danych hurtowni).
a Zadaniem modułu integratora jest uaktualnianie danych w
36
hurtowni.
18
Maria Dems
Problemy budowy i eksploatacji
Rozproszonej BD
aNiezawodność połączeń komunikacyjnych
aSterowanie współbieżnością - blokowanie
aObsługa katalogu zawartości BD - powielanie
aAktualizacja kopii BD - kopia pierwotna
aOptymalizacja zapytań - lokalna i globalna
Budowa RBD dla baz istniejących polega na:
„rozpraszaniu” centralnych BD
„integracji” istniejących lokalnych BD
„re-projektowaniu” BD
Budowa nowej BD: - ==> projektowanie RBD
37
Fazy projektowania RBD
Koncepcja projektowania
Koncepcja projektowania „top-down”
Analiza potrzeb
Cele
Projektowanie
schematu globalnego
Projektowanie
j
podschematów zewnętrznych
Projekt RBD
38
19
Maria Dems
Fazy projektowania RBD
Problemy zasadnicze:
adecyzje dotyczące lokalizacji:
==> SZRBD,
SZRBD SO
==> BD, aplikacji
aprojekt i parametry sieci
Problemy szczegółowe:
•
•
•
•
•
•
dlaczego fragmentować RBD,
co i jak fragmentować.
jak testować poprawność fragmentowanej BD,
czy i jak replikować BD.
jak alokować zasoby Rozproszonej BD.
jakie są czynniki istotne dla projektowania.
39
Fazy projektowania RBD
Metodyka projektowania
aZaprojektowanie schematu globalnego
aDekompozycja
p y j schematu gglobalnego
g na schematy
y
lokalne (projekty relacji + schemat fragmentacji)
aProjektowanie schematu alokacji BD
aProjekt lokalnych schematów BD
aintegracja baz lokalnych
Zalety fragmentacji:
a użytkowość
a efektywność
a współbieżność
a bezpieczeństwo
Wady fragmentacji:
a wydajność
a integralność
40
20
Maria Dems
Fazy projektowania RBD
Techniki fragmentacji
aPozioma (HF)
g
j p
pozioma ((PHF))
==> Pierwotna fragmentacja
==> Wtórna fragmentacja pozioma (WHF)
aPionowa (VF)
==> Trudniejsza w realizacji (więcej alternatyw)
==> Podejścia:
• grupowanie (atrybuty do fragmentów)
• dzielenie (relacja do fragmentów)
aMieszana (MF)
Relacja lub fragment jest dzielona przynajmniej na dwie
części, które są różnie przetwarzane, przynajmniej przez
jedną aplikację
41
Fazy projektowania RBD
Fragmentacja mieszana
R
HF
HF
R1
R2
VF
VF
VF
VF
R11
R12
R21
R22
VF
R23
42
21
Maria Dems
Fazy projektowania RBD
Kryteria poprawności fragmentacji
kompletność
odtwarzalność
rozłączność
Replikacje w rozproszonej BD
Replikacja - proces generowania i utrzymywania kopii
danych w jednym bądź wielu węzłach przetwarzania
Korzyści
K
ś i replikacji:
lik ji
• poprawa wydajności przetwarzania
• wzrost wiarygodności i dostępności do danych
• wspomaganie hurtowni danych i przetwarzania „przenośnego”
• równoważenie obciążeń
a Możliwe rozwiązania rozproszonej bazy danych:
• nie-replikowana (rozdzielona) - każdy fragment BD
umieszczony jest w jednym węźle
• częściowa replikacja - wybrane fragmenty w określonych
węzłach
• pełna replikacja - każdy fragment w każdym węźle
44
22
Maria Dems
Rodzaje replikacji w
rozproszonych BD
a Rodzaje replikacji:
- synchroniczna
- asynchroniczna
a Dodatkowe funkcje replikacji: skalowanie, transformowanie
danych, obsługa obiektów BD, mechanizmy subskrypcji i
inicjacji
a Warianty replikacji: pełna i częściowa (migawka),
a Zestaw
Zesta replik składa się z wzorca
orca ((utworzonego
t or onego z BD) i replik
poszczególnych użytkowników
a Modele własności danych:
- nadrzędny/podrzędny,
- przekazywany,
45
- swobodny.
Synteza projektowania
rozproszonej bazy danych
Relacje globalne
FRAGMENTACJA
REPLIKACJA
Relacje fragmentowane
Relacje replikowane
ALOKACJA
Relacje lokalne
46
23
Maria Dems
Projektowanie alokacji
w rozproszonej bazie danych
F={F1, F2, ...F3}
W={W1, W2, ... W3}
Z={Z1, Z2, ...Z3}
fragmenty
węzły
zapytania (aplikacje)
a fragmenty nie są indywidualnymi relacjami
a dostęp do bazy bardziej złożony
a konieczność rozważenia kosztów integralności
a konieczność rozważenia kosztów współbieżności
==> Optymalizacja:
* minimalny koszt (komunikacja, pamięć, przetwarzanie)
* wykonanie (czas reakcji)
* ograniczenia (węzły, pamięć, przetwarzanie)
47
Projektowanie alokacji
w rozproszonej bazie danych
W procedurze alokacji istotne informacje to:
a BD:
BD selektywność
l kt
ść i rozmiar
i fragmentów
f
tó
a aplikacja: typ i liczba dostępów, lokalizacja dostępu
a węzeł: koszt pamiętania i przetwarzania fragmentu w węźle
Ograniczenia przy projektowaniu alokacji są następujące:
a koszt przetwarzania zapytania
a koszt i zakres przesyłania danych
a przepustowość: suma zapytań ładowanych do węzła
<= wydajność węzła
a czas reakcji: czas realizacji zapytania
<= max. dopuszczalnego czasu
a pamięć: wymagana suma pamięci dla fragmentów
<= dostępnej pamięci.
48
24
Maria Dems
Katalog systemowy rozproszonej
bazy danych
Zawartość katalogu systemowego (KSRBD):
a dane o strukturach i użytkownikach BD (schemat i
podschematy BD, indeksy, użytkownicy itp.)
a dane dotyczące przetwarzania rozproszonego (fragmentacja,
alokacja, replikacja)
Warianty przechowywania KSRBD:
a Scentralizowany (cały katalog w wybranym węźle)
a Powielony (cały katalog w każdym węźle)
a Podzielony (każdy węzeł utrzymuje katalog dla własnych
obiektów; cały katalog jest sumą wszystkich katalogów
lokalnych)
a Mieszany (1+3; utrzymywanie własnego katalogu, kopie
przechowywane w węźle centralnym)
49
Zapytania równoległe
a Zapytania równoległe występują, jeśli w komputerze jest
więcej niż jeden procesor. SQL
`Server identyfikuje zapytania, które mogłyby być
wykonywane równolegle, za pomocą kilku wątków
systemu operacyjnego i wstawia do planu wykonania tzw.
operatory wymiany.
`Operatory wymiany zarządzają procesem redystrybucji
danych i sterowaniem przepływu – jest to tak zwany plan
wykonania zapytań równoległych. Może on korzystać z
więcej niż jednego wątku, przy czym liczbę wątków
nazywamy stopniem nierównoległości.
a SQL Server sam ustala optymalna liczbę wątków przy
każdym uruchomieniu zapytania.
50
25
Maria Dems
Zapytania rozproszone
a Zapytania rozproszone umożliwiają:
`dostęp do danych na tym samym lub innych komputerach,
`dostęp do rozproszonych danych przechowywanych na
wielu komputerach z uruchomionym SQL Serverem,
`dostęp do niejednorodnych danych z różnych relacyjnych i
nierelacyjnych baz danych, jak również do danych
przechowywanych w nierelacyjnych źródłach, takich jak
arkusze kalkulacyjne czy pliki tekstowe.
a Wymagają one obecności albo dostawcy OLE DB,
implementującego niezbędne interfejsy OLE DB (API), albo
sterownika ODBC. Jeśli korzystamy z dostawcy OLE DB,
możemy posługiwać się instrukcjami Transact-SQL, które są
takie same jak instrukcje dla normalnej tabeli SQL Servera.
51
Zapytania rozproszone
a Zapytania rozproszone są podobne do mechanizmu tabel
połączonych w MS Access. Mechanizm ten jest wbudowany w
SQL Serverze poprzez OLE DB,
DB jak interfejs do danych
zewnętrznych.
a Aby uzyskać dostęp do źródła danych zewnętrznych OLE DB z
serwera SQL trzeba podać:
`nazwę dostawcy OLE DB,
`informacje wymagane przez OLE DB do zlokalizowania
źródła danych,
`identyfikatory logowania dla źródła danych,
`nazwę obiektu (zdalnej tabeli) lub zapytania, które
spowoduje udostępnienie zestawu rekordów przez dostawcę
OLE DB.
52
26
Maria Dems
Zapytania rozproszone
a Stosowane są techniki:
`Kwerenda „ad hoc”, wykorzystująca funkcję
OPENROWSET. Należy podać potrzebne informacje do
połączenia
połąc enia zee źródłem danych
dan ch OLE DB,
DB oraz
ora nazwę
na ę obiektu
obiekt
lub zapytania generującego zestaw rekordów - stosowana,
przy dorywczym korzystaniu z danych.
`Kwerenda serwera połączonego, umożliwiająca stały dostęp
do źródła danych OLE DB, stosowana przy częstym
korzystaniu z zapytań rozproszonych. W celu uzyskania
stałego dostępu do danych można użyć nazwy dołączonego
serwera, zdefiniowanej za pomocą procedury
przechowywanej sp_addlinkedserver
sp_addlinkedserver. Serwer połączony jest
ze źródłem danych OLE DB, które jest wstępnie
rejestrowane na lokalnym serwerze SQL, a więc, przy
odwołaniu lokalny serwer zna lokalizację zdalnych danych.
53
Wykonywanie zapytań
Jawne zapytania (Ad Hoc)
Wydzielenie
istotnych danych
Rozwiązanie
Parse
Optymalizacja
Kompilacja
Parse
Wykonanie
Parse
Ukryte zapytania
Pierwsze wykonanie
Wydzielenie
istotnych
y
informacji
Rozwiązanie
Parse
Kolejne wykonanie
Optymalizacja
Kompilacja
Parse
Procedura
ukrycia
Wykonanie
Parse
Wykonanie
54
27
Maria Dems
Zapytania rozproszone
y rozproszone
p
gą być
y p
a Kwerendy
mogą
przetwarzane:
`na lokalnym serwerze,
`na zdalnym serwerze, będącym źródłem danych OLE DB,
za pośrednictwem kwerendy przekazującej
OPENQUERY
a Za pomocą zapytań rozproszonych nie można tworzyć
nowych tabel,
tabel ani modyfikować już istniejących.
istniejących Dane w
zdalnej tabeli można aktualizować lub usuwać tylko wtedy,
gdy ma ona unikatowy indeks.
55
Wykonywanie kwerendy „ad hoc”
na zdalnym źródle danych
ˆ Funkcji OPENROWSET należy używać w przypadku, gdy nie jest
przewidywany stały dostęp do źródła danych
ˆ Funkcji OPENROWSET należy używać przy dostępie do danych
zdalnych bez ustawiania serwera połączonego
OPENROWSET (‘nazwa_dostawcy’
{‘źródło_danych’; ‘id_uzytkownika’ ; ‘hasło’|’ciąg_dostawcy’},
{[katalog.][schemat.]obiekt | ‘kwerenda’})
SELECT a.*
FROM OPENROWSET('SQLOLEDB', 'LONDON1';
'newcustomer';'mypassword',
'SELECT productid, unitprice
FROM northwind.dbo.products ORDER BY unitprice')
AS a
56
28
Maria Dems
Konfigurowanie środowiska serwerów
Lokalny serwer SQL
połączonych
Serwer SQL pozwala
na dostęp do innych
źródeł danych
Serwery zdalne
muszą być połączone
z lokalnym
komputerem, na
którym znajduje się
serwer SQL
Zdalny serwer SQL
Inne źródła danych
Zdalny serwer SQL
Serwer połączony jest źródłem danych OLE DB,
57
Konfigurowanie środowiska serwerów
połaczonych
Polega na ustanowienia połączenia ze zdalnym źródłem danych i
ustanowieniu zabezpieczeń pomiędzy serwerami
a Łączenie
Ł
i ze zdalnym
d l
serwerem SQL
Sp_addlinkedserver {‘serwer’, ‘nazwa_produktu’,
‘nazwa_dostawcy’,‘źródło_danych’, ‘lokalizacja’,’ciąg_dostawcy’}
EXEC sp_addlinkedserver
@server = 'AccountingServer',
@product_name = 'SQL Server'
a Łączenie ze źródłem danych OLE DB
EXEC sp_addlinkedserver
@server = 'OracleFinance',
@product_name = 'Oracle',
@provider_name = 'MSDAORA',
@data_source = 'OracleDB'
58
29
Maria Dems
Ustanawianie zabezpieczeń dla
serwerów połączonych
a Przy wykonywaniu kwerendy rozproszonej lokalny serwer musi
zalogować się do zdalnego serwera w imieniu użytkownika
a Jeżeli konto logowania użytkownika istnieje na obu serwerach, można
go użyć do zalogowania się do zdalnego serwera
a Przy użyciu procedury sp_addlinkedsrvlogin można mapować konta
logowania i hasła pomiędzy serwerami
a Bez delegowania bezpieczeństwa, należy mapować lokalne konto
logowania na konto logowania serwera połączonego
Sp_addlinkedsrvlogin
{‘nazwazdalserw’}
[,‘użyjwłasn’
[,lokalnekonto’
[,‘zdalużytkownik’
[,‘zdalhasło’] ] ] ]
EXEC sp_addlinkedsrvlogin
@rmtsrvname = AccountingServer,
@useself = false,
@locallogin = 'Accountwriter',
@rmtuser = 'rmtAccountWriter',
@rmtpassword = 'financepass'
59
Informacje o serwerach połączonych
Systemowa
procedura przechowywana
Zwraca
sp_linkedservers
Listę serwerów połączonych zdefiniowanych na lokalnym
serwerze
sp_catalogs
Listę katalogów i opisów dla określonego serwera połączonego
sp_indexes
Informacje o indeksach dla określonej zdalnej tabeli
sp_primarykeys
Kolumny klucza podstawowego dla określonej tabeli,
jeden wiersz na kolumnę
sp_foreignkeys
p
g y
Klucz obcyy zdefiniowanyy dla określonejj zdalnejj tabeli
sp_tables_ex
Informacje dotyczące tabel z określonego serwera połączonego
sp_columns_ex
Informacje dotyczące kolumn dla tabeli połączonej,
dla wszystkich kolumn lub określonej kolumny
60
30
Maria Dems
Praca z serwerami połączonymi
a Podczas wykonywania kwerend rozproszonych należy odwołać
się do obiektów na serwerach połączonych, za pomocą czteroczęściowej nazwy w postaci:
nazwa_serwera_połączonego.nazwa_katalogu.
ł
k l
nazwa_schematu.nazwa_obiektu
a Dozwolone instrukcje języka Transact-SQL
`SELECT z klauzulą WHERE lub JOIN,
`INSERT, UPDATE, DELETE
a Niedozwolone instrukcje języka Transact-SQL
`CREATE, ALTER, DROP
`ORDER BY dla zdalnych tabel zawierających duże obiekty
`READTEXT, WRITETEXT, UPDATETEXT
a Kwerendy serwera połączonego są przetwarzane lokalnie
61
Wykonywanie kwerend na
serwerze połączonym
a Aby wykonać kwerendę przekazującą na serwerze połączonym,
należy wykonać funkcję OPENQUERY
a W miejscu nazwy tabeli w instrukcji SELECT można użyć funkcji
OPENQUERY
a Jako tabeli docelowej instrukcji INSERT, UPDATE lub DELETE
można użyć wyniku funkcji OPENQUERY
SELECT companyname
FROM AccountingServer.northwindremote.dbo.suppliers
AccountingServer northwindremote dbo suppliers
SELECT * FROM OPENQUERY
(AsiaServer, 'SELECT productid, royalty
FROM Northwind.dbo.ProductInfo')
62
31
Maria Dems
Wykonywanie procedury przechowywanej
na serwerze połączonym
Serwer lokalny
Serwer zdalny
Wywołanie procedury
przechowywanej
Parametry i wyniki
Przetwarzanie
zdalnych procedur
Klient połączony z jednym serwerem
SQL może wykonywać procedury
przechowywane na innym serwerze SQL
bez potrzeby ustanowienia połączenia z
tym serwerem
Użytkownik
EXEC accounting.master.dbo.sp_helpntgroup
EXECUTE nazwa_serwera.nazwadb.właściciel.nazwa_procedury
63
Modyfikowanie danych na serwerze
połączonym
a Transakcję rozproszoną można rozpocząć przez:
`Wykonanie instrukcji BEGIN DISTRIBUTED TRANSACTION
- LUB `Wywołanie funkcji API z klienta
a Należy rozważyć następujące fakty:
`Instrukcje BEGIN DISTRIBUTED TRANSACTION
nie mogą być zagnieżdżone
`Instrukcja ROLLBACK TRANSACTION anuluje całą
transakcję rozproszoną
`Punkty kontrolne zapisu nie są obsługiwane
obsługiwane. Jeśli serwer SQL
anuluje transakcję rozproszoną, to jest ona cała anulowana od
początku
`Pomiędzy serwerami połączonymi należy ustawić opcję sesji
XACT_ABORT - wtedy w przypadku niepowodzenia transakcja
zostanie anulowana. W przeciwnym przypadku anulowana
64
będzie tylko jedna instrukcja.
32
Maria Dems
Dystrybucja danych
MS DTC
AKTUALIZACJA
Replikacja
AKTUALIZACJA
AKTUALIZACJA
Replikacja
Program MS Distributed Transaction Coordinator kontroluje transakcje
rozproszone i zapewnia ich integralność i zgodność aktualizacji danych 65
Replikacja danych
a Replikacja danych jest to generowanie i utrzymywanie kopii danych
w jednym bądź więcej węzłach przetwarzania i ich automatyczna
synchronizacja. Zastosowania replikacji są następujące:
ą
wielokrotnymi
y
kopiami
p
danych
y
w różnych
y
`Zarządzanie
lokalizacjach.
`Przenoszenie informacji bliżej użytkowników, którzy ich
potrzebują.
`Większa autonomia punktów aktualizujących dane.
`Udział w strategii bezpieczeństwa.
`Wsparcie dla systemów wspomagania decyzji oraz hurtowni
danych.
a Można wykonać replikację między bazą źródłową (source database) i
bazą docelową (destination database), w przypadku gdy obie bazy są
na tym samym serwerze sieciowym, jak również na różnych
serwerach, połączonych siecią LAN, WAN lub poprzez Internet.
66
33
Maria Dems
Replikacja danych
a Bazy mogą być synchronizowane natychmiast, lub zmiany mogą być
zachowywane i przesyłane według potrzeb.
a Replikacje mogą być wykonywane między bazami SQL Servera, lub
innymi typami baz danych
danych, np
np. MS Access
Access, Oracle itp.
itp
a Replikacja w SQL Serverze oparta jest na technice publikacji i
subskrypcji danych.
a Serwer udostępniający dane jest publikatorem danych. Przesyła on
kopie wszystkich zmian opublikowanych danych do serwera
zajmującego się dystrybucja, tzw. dystrybutora.
a Dystrybutor zawiera bazę dystrybucji, która otrzymuje wszelkie
zmiany wprowadzane w danych, przechowuje je i przesyła do
serwerów subskrypcji (subskrybentów), obsługujących bazę
docelową, która odbiera opublikowane dane i przechowuje ich kopię.
a Subskrybent może pobierać wszystkie dane publikowane przez
serwer źródłowy lub tylko ich część. Serwer dystrybucji i publikator
67
mogą być na tym samym komputerze lub na innych.
Komponenty replikacji
Komponenty replikacji są następujące:
a Publikator – serwer udostępniający dane innym serwerom.
Przechowuje dane o wszystkich publikacjach dokonanych w bazie
y
danych.
a Dydtrybutor – serwer zawierający bazę zarządzającą dystrybucją
danych
a Subskrybent - serwer przechowujący kopie publikacji i przesyłający
lub odbierający zmiany od publikatora. Może być również
publikatorem dla innych subskrybentów.
a Artykuł – zbiór danych, który ma być replikowany i może zawierać
dane przechowywanej procedury lub tablicy przeznaczonej do
replikacji.
a Publikacja – zbiór jednego lub wielu artykułów. Subskrybenty
subskrybują publikacje, a nie artykuły.
a Subskrybcja – tworzona jest w celu pobrania publikacji
przeznaczonych do replikacji.
68
34
Maria Dems
TOPOLOGIE REPLIKACJI
(CENTRALNY WYDAWCA)
Publikator i Dystrybutor
Subskrybent
Publikator i Dystrybutor
Subskrybenci
69
TOPOLOGIE REPLIKACJI
(CENTRALNY WYDAWCA ZE ZDALNYM
DYSTRYBUTOREM)
Publikator
Dystrybutor
Subskrybenci
70
35
Maria Dems
TOPOLOGIE REPLIKACJI
(POWTÓRNY PUBLIKATOR)
Publikator
i Dystrybutor
Wolne lub drogie
łącze sieciowe
Subskrybent
i Powtórny publikator
Subskrybenci
71
TOPOLOGIE REPLIKACJI
(CENTRALNY SUBSKRYBENT)
Publikatorzy
S b k b t
Subskrybent
72
36
Maria Dems
Rodzaje subskrypcji
Rozróżnia się dwa podstawowe rodzaje subskrypcji:
a Subskrypcja inicjowana przez publikatora
publikatora, polegająca na tym, że
publikator przesyła wprowadzone w danych zmiany do
subskrybenta.
jest
b k b t Stosowana
St
j t dla
dl aplikacji,
lik ji w których
któ h zmiany
i
muszą być przesłane zaraz po wprowadzeniu, dla publikacji, w
których wymagana jest ochrona replikowanych danych oraz dla
publikacji, które musza być wykonywane w ściśle określonych
przedziałach czasu. Powoduje duże obciążenie procesora po stronie
publikatora.
yp j inicjowana
j
przez subskrybenta
p
subskrybenta,
y
,p
polegająca
g ją na tym,
y , że
a Subskrypcja
subskrybent zapytuje publikator o nowe publikacje. Stosowana jest
dla aplikacji, w których zmiany są przesłane co pewien czas, dla
publikacji, w których nie jest wymagana ochrona replikowanych
danych oraz w przypadku bardzo dużej liczby subskrybentów (np.
dla aplikacji przeznaczonych dla potrzeb Internetu).
Pojedyncza aplikacja może korzystać z obu rodzajów subskrypcji. 73
Planowanie replikacji
Przy planowaniu replikacji należy często rozstrzygnąć konflikty
między potrzebami różnych aplikacji i różnych środowisk, oraz
często w samej aplikacji. Istotnymi problemami jest tu zachowanie
spójności transakcyjnej, przy jednoczesnym zachowaniu autonomii
pewnych komputerów uczestniczących w replikacji, jak również
konieczność dzielenia danych. Rozróżnia się trzy rodzaje spójności
transakcyjnej:
a Gwarantowana ścisła spójność – wszystkie lokacje maja gwarancję,
że będą miały w każdej chwili te same dane, gdyż dane mogą być
zmieniane tylko w jednej lokacji. W przypadku awarii serwera
zarządzającego
d j
pozostałe
t ł serwery nie
i będą
b d mogły
ł uzgadniać
d i ć danych.
d
h
a Gwarantowana luźna spójność – wszystkie lokacje mają te same
dane, ale niekoniecznie w tej samej chwili, gdyż w chwili modyfikacji
danych w jakiejś lokacji ich spójność nie musi być zachowana,
a Brak gwarancji spójności – modyfikacja danych może spowodować,
że przez pewien czas różne lokacje mogą mieć różne zestawy danych.
74
37
Maria Dems
Planowanie replikacji
Strategią pozwalającą na uniknięcie konfliktów między danymi jest
dzielenie danych. W takim przypadku każda lokacja otrzymuje swój
p
y zapisanych
p
y w ggłównejj bazie,, co zapewnia
p
podzbiór danych
również
autonomię lokacji. Istnieją dwie techniki dzielenia danych:
`Pozioma (horyzontalna) – dzielone są rekordy danych
`Pionowa (wertykalna) – dzielone są pola danych
Obie techniki można ze sobą łączyć.
Rozróżniamy następujące rodzaje replikacji:
`Replikacja
R lik j migawkowa
i
k
(ang.
(
snapshot
h t replication)
replication
li ti )
`Replikacja transakcyjna (ang. transactional repliaction)
repliaction)
`Replikacja uzgadniana
(ang. merge replication)
replication)
75
Replikacja migawkowa
a Przy replikacji migawkowej dane przechowywane u publikatora
zastępują dane subskrybenta w określonych odstępach czasu.
a Początkowa synchronizacja wymaga przekopiowania wszystkich
danych bazy źródłowej do docelowej, a następnie, w określonych
odstępach czasu, zmienione dane są przesyłane do bazy docelowej
a Serwer automatycznie synchronizuje dane we wszystkich lokacjach,
kopiując do nich dane z bazy podstawowej.
a Replikacja migawkowa może być stosowana, o ile nie jest niezbędne
ciągłe uaktualnianie danych. Jest to odświeżania tablic według
rozkładu
a Możemy sami zdefiniować, w jakich odstępach czasu dane będą
odświeżane we wszystkich subskrybujących dane serwerach.
Odstępy te powinny być tak dobrane, aby nie utrudniać korzystania
z bazy, gdyż w czasie transferu danych zablokowana jest możliwość
korzystania z bazy.
76
38
Maria Dems
Replikacja migawkowa
a Należy zapewnić odpowiednią ilość wolnego miejsca w katalogu
roboczym replikacji, tak aby zmieściły się wszystkie zdjęcia danych z
wszystkich publikacji jednocześnie.
a Tablice replikowane w replikacji migawkowej nie wymagają kluczy
podstawowych.
Podstawowe cechy replikacji migawkowej są następujące:
• Dane są statyczne i rzadko ulegają zmianom.
• Replikowane są małe ilości informacji.
• Znacząca ilość publikowanych elementów zmienia się w tym
samym momencie, w określonych odstępach czasu tak, że
przesyłanie zmian nie opłaca się.
• Do zaakceptowania jest sytuacja posiadania na subskrybentach
kopii nie zawsze aktualnych danych,
danych, czyli dane nie są krytyczne.
77
REPLIKACJA MIGAWKOWA
(SCHEMAT DZIAŁANIA)
Aplikacja
kliencka
Publikowana baza
danych
Subskrybowana
baza danych
Publikator
Subskrybent
Agent migawkowy
Katalog
g na migawki
g
danych
Agent dystrybucji
Baza
dystrybucji
Dystrybutor
Dane lub transakcje
Zapis historii i błędów
78
39
Maria Dems
Replikacja transakcyjna
a Przy replikacji transakcyjnej zatwierdzone transakcje z dziennika
transakcji bazy źródłowej rozsyłane są w ciągu kilku sekund do baz
docelowych, przy czym zamiast rzeczywistych danych do serwerów
docelowych
odpowiednie
instrukcje
(INSERT,
d l
h przychodzą
h d
d
i d i
i
k j
(INSERT
UPDATE, DELETE), w porządku, w jakim zostały wprowadzone w
publikatorze.
a Przesyłane są tylko transakcje zrealizowane, a użytkownicy nie są
wyłączeni z korzystania z tablic, w czasie ich aktualizacji. Technika
ta pozwala zachować spójność transakcyjną.
a Dziennik transakcji bazy danych publikatora przechowuje
transakcje przeznaczone do replikacji, dopóki nie zostaną
przeniesione do bazy dystrybutora, a następnie zostaje oczyszczony
tak, że zostają w nim tylko transakcje, które nie są przeznaczone do
replikacji.
a Tablice przeznaczone do replikacji muszą mieć klucze podstawowe.
79
Replikacja transakcyjna
a Należy zapewnić odpowiedni rozmiar dziennika transakcji
p
publikatora, oraz bazy
y danych
y
dystrybutora,
y y
tak aby
y
mogła ona przechowywać wszystkie zmiany wysyłane do
niej w pojedynczym zdjęciu (przesłane co pewien czas w
postaci replikacji migawkowej), a także wszystkie
transakcje wykonane w okresie między kolejnymi
aktualizacjami bazy.
a SQL Server 7 posiada opcję Immediate Updating
Subscribers umożliwiającą subskrybentom, w oparciu o
protokół dwufazowej realizacji transakcji, wprowadzać
zmiany w tym samym czasie gdy są one wprowadzane u
publikatora.
80
40
Maria Dems
Replikacja transakcyjna
a Korzyści natychmiastowej aktualizacji u subskrybentów są
następujące:
`nie występują żadne konflikty, gdyż subskrybent może dodawać,
usuwać lub modyfikować dane tylko wtedy, gdy dokona w
porozumieniu z publikatorem dwufazowego zatwierdzenia
transakcji,
`dane aktualizacji są przesyłane do pozostałych subskrybentów za
pośrednictwem replikacji migawkowej lub transakcyjnej,
`subskrybent nie musi czekać z aktualizacją danych na wykonanie
replikacji migawkowej,
migawkowej
`subskrybent nie potrzebuje bazy dystrybucji ani agenta
dziennika
`gwarantowana jest spójność transakcyjna, oraz mniejsza
możliwość wystąpienia błędów.
81
Replikacja transakcyjna
a Dwufazową realizacją transakcji zarządza program
koordynacji transakcji rozproszonych MS DTC (Microsoft
Distributed Transaction Coordinator), wykorzystując instrukcję
w języku Transact-SQL
BEGIN DISTRISTRIBUTED TRAN(SACTION)
wywoływaną procedurą wyzwalaną u subskrybenta. Inne
procedury wyzwalane subskrybenta przechwytują transakcje i
przesyłają je do publikatora za pomocą zdalnej procedury
przechowywanej wewnątrz dwufazowego zatwierdzenia
transakcji, przy czym zmiany wprowadzane są, o ile nie
wywołują żadnych konfliktów w publikatorze. Jeśli są jakieś
konflikty, transakcja jest wycofywana zarówno w publikatorze
jak i u subskrybenta.
82
41
Maria Dems
REPLIKACJA TRANSAKCYJNA
(SCHEMAT DZIAŁANIA)
Aplikacja
kliencka
Publikowana baza
danych
Dziennik
transakcji
Publikator
Subskrybowana
baza danych
Subskrybent
Agent migawkowy
Agent dziennika
Katalog na
migawki danych
Agent dystrybucji
Baza dystrybucji
Dystrybutor
Schemat i dane początkowe
Nowe transakcje
Zapis historii i błędów
83
Replikacja transakcyjna
Podstawowe cechy replikacji transakcyjnej:
a Konieczność szybkiej aktualizacj
aktualizacjii danych u subskrybentów,
subskrybentów,
niewielkiego
niewielki
ego opóźnienia
opóźnienia w stosunku do aktualizacji u wydawcy.
wydawcy.
a Zapewnia spójność
spójność transakcyjn
transakcyjnąą, aby dane były identyczne we
wszystkich lokacjach.
lokacjach.
a Opłaca się, gdy iilość
lość publikowanych danych jest duża w
stosunku do ilości ich aktualizacji.
aktualizacji.
84
42
Maria Dems
Replikacja uzgadniana
a Replikacja uzgadniana jest replikacją dwukierunkową, pozwalającą
na aktualizację danych w różnych lokacjach, niezależnie od
publikatora. Następnie dane są synchronizowane przez publikator,
który rozsyła je do wszystkich innych serwerów replikacji. Technika
ta nie gwarantuje spójności transakcyjnej i jest stosowana, gdy
aplikacje stanowiące część systemu łączą się z bazą danych co
pewien czas, np. po wprowadzeniu danych na przenośnym
komputerze. Przy replikacji uzgadnianej stosowane są dwa
rozwiązania:
`topologia koncentryczna z centralnym dystrybutorem
odpowiedzialnym
d
i d i l
za synchronizację
h
i j danych,
d
h
`układy z wieloma centrami replikacji
a Może być również stosowana kombinacja obu rozwiązań
równocześnie. Każda lokacja może być wtórnym publikatorem,
subskrybentem lokalnym, subskrybentem globalnym lub
subskrybentem anonimowym.
85
Replikacja uzgadniana
a W replikacji uzgadnianej publikator tworzy publikację, ale każdy z
subskrybentów może aktualizować dane. Można również
zdefiniować własne kryteria rozwiązywania konfliktów, tak aby
publikator nie wygrywał automatycznie wszystkich konfliktów
(opcja domyślna). Przy replikacji uzgadnianej SQL Server
wprowadza do schematu tablic i bazy danych następujące zmiany:
`do każdego rekordu dodawane jest unikatowe pole (rowguid),
pozwalające jednoznacznie identyfikować dany rekord spośród
licznych jego kopii w całej tablicy. Jeśli pole uniqueidentyfier już
istnieje, to SQL Server wykorzysta je.
`instalowane są procedury wyzwalane, pozwalające śledzić i
rejestrować zmiany danych w tablicach systemowych replikacji
uzgadnianej,
`do bazy danych dodawane są tablice systemowe, w celu obsługi
monitorowania, synchronizacji i rozstrzygania konfliktów.
86
43
Maria Dems
Replikacja uzgadniana
a Przy implementowaniu replikacji uzgadnianej należy przestrzegać
następujących reguł:
`nie należy korzystać ze zmiennej typu uniqueidentyfier oraz
unikać
ik ć pól
ól identyfikujących,
id t fik j
h ponieważ
i
ż wiele
i l lokacji
l k ji będzie
b d i
załączać rzędy o tych samych kolejnych numerach. Prowadzi to
do konfliktu w momencie uzgadniania danych
`ze wszystkich publikowanych tablic należy usunąć znaczniki
czasu, ponieważ są one zawsze generowane przez lokalny serwer,
`należy przestrzegać integralności publikatora,
`przy obsłudze odwołań do kluczy podstawowych należy załączać
tablice, zawierające te odwołania. W przeciwnym przypadku
operacje wstawiania danych do tablic, w których klucze obce
odwołują się do kluczy podstawowych w zagubionych bądź
nieistniejących tablicach zakończą się niepowodzeniem,
natomiast możliwa będzie aktualizacja istniejących rekordów.
87
Replikacja uzgadniana
a Obsługę danych typu text należy przeprowadzać przy pomocy
instrukcji UPDATE
a Przed rozpoczęciem replikacji uzgadnianej publikator rozsyła do
subskrybentów zdjęcie danych,
danych wraz ze wszystkimi tablicami i
schematami danych.
a Program koordynacji transakcji rozproszonych MS DTC (Microsoft
Didtributed Transaction Coordinator) dostarcza interfejsu
graficznego dla replikacji, umożliwiającego zarządzaniem
transakcjami oraz zapisem operacji w dzienniku systemu.
Podstawowe cechy replikacji uzgadnianej:
• Wielu subskrybentów aktualizuje dane
• Nie ma konieczności zachowania zgodności transakcyjnej
• Dane mogą być odpowiednio partycjonowane tak, by pojawiające się
ewentualnie konflikty były rzadkością
88
44
Maria Dems
REPLIKACJA UZGADNIANA
(SCHEMAT DZIAŁANIA)
Aplikacja
kliencka
Aplikacja
kliencka
Publikowana baza
danych
Tabela konfliktów
Subskrybowana
baza danych
Publikator
Subskrybent
Agent migawkowy
Katalog na
migawki danych
Agent łączenia
Baza dystrybucji
Dystrybutor
Schemat i dane początkowe
Nowe transakcje
Zapis historii i błędów
89
Replikacja synchroniczna i
asynchroniczna
a Zarówno replikacja synchroniczna jak i asynchroniczna
umożliwiają odczyt i modyfikację lokalnych kopii danych, co
wpływa korzystnie na czas odpowiedzi.
a Zaletą modelu w pełni synchronicznego jest posiadanie na
wszystkich stanowiskach zawsze najbardziej aktualnych informacji.
Ponadto, nie występują konflikty przy modyfikacji.
a Synchroniczna replikacja może w przypadku awarii ograniczać
możliwość dokonywania modyfikacji.
a Zaletą modelu w pełni asynchronicznego jest ciągła dostępność
danych. Żadne ze stanowisk nie wymaga dostępności innego, aby
możliwe było dokonanie zmian.
a Wybór najodpowiedniejszego modelu zależy od zastosowań.
90
45
Maria Dems
Replikacja synchroniczna
a Zmiany dokonane na innych stanowiskach są natychmiast
odzwierciedlane lokalnie.
a Te same dane mogą być modyfikowane w różnych miejscach, bez
możliwości wystąpienia konfliktu.
a W wyniku utraty połączenia z jednym ze stanowisk objętych
replikacją, niemożliwe staje się wykonanie lokalnych modyfikacji do
chwili usunięcia uszkodzenia lub zmiany konfiguracji środowiska
rozproszonego.
a Czas odpowiedzi przy modyfikacji ulega wydłużeniu, gdyż do
zatwierdzenia lub wycofania transakcji konieczne jest uzyskanie
odpowiedzi od wszystkich stanowisk.
a Model najlepiej sprawdza się w sytuacjach, gdzie dane są często
odczytywane, a rzadko modyfikowane
a Model jest odpowiedni w sytuacjach, gdzie wymagana jest absolutna
spójność między replikami.
91
a Model wymaga stabilnych systemów i połączeń sieciowych
Transakcje synchroniczne
a Transakcje synchroniczne mogą być wykonywane razem z replikacją
transakcyjną jak i migawkową. Za pomocą transakcji
synchronicznej subskrybent może modyfikować replikowane dane,
j jjest wykonywana
y
y
w p
publikatorze za p
pomocą
ą
o ile transakcja
realizacji dwufazowej. Subskrybent informuje o wprowadzonych
zmianach tylko publikator.
a Dwufazowa realizacja transakcji jest automatyczna i jeśli się
powiedzie, subskrybent może natychmiast pracować ze zmienionymi
danymi, pod warunkiem, że publikator jest dostępny.
Rozprowadzeniem zmian do innych subskrybentów zajmuje się
publikator
publikator.
a Transakcje rozproszone implementowane są przez program MS
DTC. Procedury wyzwalane tworzone w subskrybencie przesyłają je
do publikatora za pośrednictwem odwołania do zdalnej procedury
przechowywanej (działającej na innym komputerze), wewnątrz
dwufazowej realizacji transakcji.
92
46
Maria Dems
Replikacja asynchroniczna
a Awarie na zdalnych stanowiskach nie blokują lokalnych operacji
odczytu i modyfikacji replikowanych danych
p
jjest krótszy
y niż w p
yp
p
j
a Czas odpowiedzi
przypadku
replikacji
synchronicznej, gdyż nie ma konieczności uzyskania odpowiedzi od
innych stanowisk
a Zmiany mogą być propagowane z dowolnym (być może bardzo
krótkim opóźnieniem) lub na żądanie
a Zmiany dokonane na innych stanowiskach nie są natychmiast
odzwierciedlane lokalnie, co prowadzi do tymczasowych
niespójności
i ój ś i między
i d replikami
lik i
a Istnieje możliwość wystąpienia konfliktów między operacjami
modyfikacji. SZRBD oferują mechanizmy do rozwiązywania takich
problemów.
93
Rozstrzyganie konfliktów
a W replikacji uzgadnianej dochodzi czasem do konfliktów pomiędzy
danymi wpisanymi do tego samego rekordu w różnych lokacjach.
Informacje o konfliktach przechowywane są w publikatorze poprzez
p
przekopiowanie
p
rekordu p
przegrywającego
g y ją g konflikt do tablicyy
konfliktów (Conflict_User_Table), o takiej samej strukturze, jak
tablica oryginalna. Informacja, dla jakich tablic przechowywane są
tablice konfliktów jest zawarta w tablicy systemowej
sysmergearticles. Najczęściej spotykane konflikty, to:
`Dwie lokacje usiłują dodać rekord mający ten sam klucz. Jeśli to
zrobią, podczas synchronizacji pojawi się konflikt.
`J d
`Jedna
l k j dodaje
lokacja
d d j rekord
k d z kluczem
kl
obcym,
b
podczas
d
gdy
d
druga usuwa odpowiadający mu rekord z kluczem
podstawowym,
`Różnorodne problemy z blokowaniem danych.
a Aby ustalić, który rekord wygrywa, replikacja uzgadniana
przyznaje poszczególnym lokacjom priorytety (od 0 do 100)
94
47
Maria Dems
Agenty replikacji
a Można podzielić dane na części i poszczególnym częściom przypisać różne
typy replikacji. W zależności od tego, z jakiego typu replikacji korzystamy,
możemy zdefiniować agenty replikacji (Replication Agents). Rozróżnia się
następujące agenty replikacji:
`Agent migawkowy (Snapshot Agent) – tworzy pliki migawkowe każdej
publikowanej tablicy i procedury przechowywanej oraz rejestruje
informacje definiujące status synchronizacji,
`Agent dziennika (Log Reader Agent) – dla każdej publikacji
transakcyjnej, przenosi zaznaczone transakcje z dziennika transakcji
publikatora do bazy zajmującej się dystrybucja danych,
`Agent dystrybucji (Distribution Agent) – posiadają go zarówno
subskrybenty migawkowe
i
j i transakcyjne;
jak
j
wykonuje
j on transakcje
j i
zadania związane z replikacją migawkową, przenosząc dane z bazy
odpowiedzialnej za dystrybucję do subskrybenta.
`Agent uzgadniania (Merge Agent) – przekazuje, dla replikacji
uzgadnianej, wstępne zdania migawkowe przechowywane w bazie
publikatora do subskrybenta i wprowadza pojawiające się później
95
zmiany.
SPOSOBY UAKTUALNIANIA
DANYCH NA SUBSKRYBENCIE
• Replikacja uzgadniana
• Uaktualnianie natychmiastowe
• Uaktualnianie kolejkowe
• Uaktualnianie natychmiastowe z kolejkowym
w przypadku braku połączenia
96
48
Maria Dems
Implementowanie replikacji
Implementowanie replikacji wymaga następujących działań:
a Skonfigurowanie serwera jako publikatora lub dystrybutora.
Po skonfigurowaniu jednego z serwerów systemu jako dystrybutora,
SQL Server tworzy folder Replication Monitor, umożliwiający
przeglądanie publikatorów, publikacji, subskrypcji, rozkładu zadań
replikacji, zdarzenia oraz zapiski na temat przyszłych operacji
każdego z agentów replikacji. W celu skonfigurowania serwera jako
dystrybutora wykonujemy, korzystając z bazy danych master,
procedurę przechowywaną
sp_distributor
di t ib t @ ditributor
dit ib t = ‘NAZWA_SERWERA’
‘NAZWA SERWERA’
Następnie tworzy się nową bazę dystrybucji procedurą
przechowywaną:
sp_adddistributiondb @ database = N’distribution’,
oraz definiuje jej wszystkie parametry.
97
Implementowanie replikacji
a Skonfigurowanie serwera jako publikatora lub dystrybutora (c.d.)
Należy zdefiniować, które z serwerów korzystających z
dystrybutora będą publikatorami, wykorzystując procedurę
przechowywaną:
sp_adddistpublisher @ publisher = N’NAZWA_SERWERA”,
@distribution_db = N’distribution’,
@working_directory
=
‘\\NAZWA_SERWERA
NAZWA_SERWERA\\CS
CS\\MSSQL
MSSQL77\ReplData’,
W zależności od systemu operacyjnego, powyższe procedury mogą
korzystać
k
t ć z dodatkowych
d d tk
h parametrów.
t ó
a Przygotowanie bazy danych do replikacji – wykorzystujemy w tym
celu procedurę przechowywaną
sp_replicationdboption @dbname = Nazwa_bazy_danych,
@optname = ‘publish’ ,
98
@value = true
49
Maria Dems
Publikowanie danych
Każdy z serwerów SQL Servera może pełnić zarówno rolę publikatora,
dystrybutora jak i subskrybenta, jak i dowolną kombinacje tych funkcji.
Można replikować wszystkie dane lub tylko ich część.
a Publikowanie danych - dla każdej bazy danych serwera publikacji można
utworzyć jedną lub wiele publikacji.
`Nie można mieszać zawartości baz danych.
`Dla każdej publikowanej bazy danych należy wybrać tablice lub
procedury przechowywane które będą artykułami publikacji oraz
zdefiniować rodzaj subskrypcji, a także początkową strategię
synchronizacji i odpowiednie formaty.
Oprócz
p
tego
g możemyy zdefiniować:
`czy korzystać z replikacji transakcyjnej czy migawkowej,
`czy zezwolić na synchroniczne uaktualnianie subskrypcji,
`czy publikator będzie inicjował subskrypcję, a jeśli tak, to czy zezwolić
na subskrypcję anonimową,
`czy filtrować dane umieszczone w artykule,
99
`czy zawsze zachować kopię wykonanej transakcji na serwerze
Publikowanie danych
`czy dane będą publikowane w formacie SQL Servera, czy w
formacie tekstowym lub innym subskrybenta,
Dodatkowo można
`uaktywnić subskrybentów internetowych,
internetowych
`zdefiniować dodatkowe opcje publikacji, takie jak nazwa i opis,
`zdefiniować rozkład wykonywania kolejnych replikacji dla
agenta migawkowego.
W celu utworzenia publikacji migawkowej wykorzystujemy
procedurę sp_addpublication uruchamianą z parametrem
@repl freq = ‘snapshot’,
@repl_freq
snapshot , w postaci:
sp_addpublication @publication = ‘SnapCustomers’,
@ sync_method = ‘native’,
@repl_freq = ‘snapshot’,
......................................,,
......................................
Procedura ta tworzy zdjęcie o nazwie SnapCustomers.
100
50
Maria Dems
Publikowanie danych
Zdjęcie SnapCustomers należy uczynić zdjęciem danych i
zdefiniować jego właściwości procedurą:
sp_addpublication_snapshot @publication = ‘SnapCustomers’,
‘SnapCustomers’
Te
tworzą szkielet
T dwie
d i procedury
d
ki l publikacji,
blik ji ale
l nie
i dodają
d d j do
d niej
i j
żadnych artykułów. W celu dodania artykułów należy uruchomić
procedurę:
sp_addarticle @publication = ‘SnapCustomers’
i zdefiniować w niej właściwości artykułu.
W celu utworzenia publikacji transakcyjnej wykorzystujemy
procedurę sp_addpublication
sp addpublication uruchamianą z parametrem
@repl_freq = ‘continuous’, w postaci:
sp_addpublication @publication = ‘TransCustomers’,
@restricted = ‘false’,
@ sync_method = ‘native’,
101
@repl_freq = ‘continuous’,
Publikowanie danych
Następnie
za pomocą procedury sp_addpublication_snapshot
tworzy się agenta migawkowego i dodaje artykuły, które będą
publikowane.
W celu utworzenia publikacji uzgadnianej wykorzystujemy
procedurę sp_addmergepublication, w postaci:
sp_addmergepublication @publication = ‘MergeCustomers’,
@ sync_method = ‘native’,
......................................,,
......................................
Następnie
N
t
i tworzy
t
się
i zdjęcie
dj i danych
d
h i uzupełnia
ł i o odpowiednie
d
i d i
artykuły, analogicznie jak przy publikacji migawkowej.
102
51
Maria Dems
Subskrybowanie publikacji
a Subskrybowanie publikacji oznacza, że serwer subskrypcji
zgadza się przyjąć replikę publikacji artykułu od serwera
publikacji.
`Należy zdefiniować rodzaj subskrypcji (subskrypcja
inicjowana przez publikatora, czy przez subskrybenta).
`W czasie definicji opcji subskrypcji, wykonywana jest
automatycznie synchronizacja tworząca kopię bazy
danych publikatora u subskrybenta.
`Po jej wykonaniu można zdefiniować, w jakich
odstępach
czasu
będą
wykonywane
kolejne
synchronizacje.
103
Subskrybowanie publikacji
`Przy wyborze opcji subskrypcji inicjowanej przez publikator
należy najpierw skonfigurować połączenie z serwerem
subskrybenta, a następnie uaktywnić serwer subskrybenta, dla
potrzeb
b replikacji.
lik ji
`Przy wprowadzeniu zmian w serwerze publikatora, agent
dystrybucji będzie próbował połączyć się z subskrybentem, w
celu przesłania tych zmian. Jeśli subskrybent nie jest dostępny,
to agent ponowi próbę 10 razy, a następnie prześle informacje o
błędzie do monitora replikacji.
`Przy przesyłaniu danych w określonych odstępach czasu, agent
dystrybucji spróbuje przesłać zmiany w następnym cyklu.
`Wprowadzone zmiany są przechowywane w bazie dystrybucji
do momentu, gdy zostaną przesłane do wszystkich
subskrybentów, lub aż upłynie zdefiniowany okres ich
przechowywania.
104
52
Maria Dems
Subskrybowanie publikacji
`Przy wyborze opcji subskrypcji inicjowanej przez
subskrybenta należy najpierw wybrać serwer, a następnie
wybrać bazę danych, z której będą pobierane dane do
subskrypcji.
s bskr pcji
`Następnie należy zdefiniować rejestrację dla agenta
synchronizacji i bazę danych, w której będzie tworzona
subskrypcja (może to być nowa baza danych).
`Można
rozpocząć
subskrypcję
natychmiast
lub
zdefiniować, aby była wykonywana w określonych
odstępach
d
h czasu.
`Subskrypcja może być zdefiniowana połączeniem między
serwerami lub anonimowa.
`W subskrypcji zdefiniowanej informacje o każdym
subskrybencie przechowywane są przez publikatora.
105
Subskrypcja anonimowa
Subskrypcja anonimowa (anonymous subscription) stosowana jest
przy dużej liczbie subskrybentów, oraz przy subskrypcji za
pośrednictwem Internetu. Jest ona zawsze inicjowana przez
y
ale w tym
y p
przypadku
yp
serwer nie może być
y wcześniejj
subskrybenta,
zarejestrowany w publikatorze jako subskrybent. Wówczas zostanie
ona automatycznie zarejestrowana jako anonimowa.
`Do usunięcia subskrypcji inicjowanej przez subskrybenta, w tym
również subskrypcji anonimowej stosowane są procedury
przechowywane:
sp_dropsubscription @publication = ‘NazwaBD_Customers’,
@ article = ‘all’,
@ subscriber = ‘Hasło_subskrybenta’, (lub ‘anynomous’)
@destination_db = ‘NazwaBD’
`Do usunięcia subskrybenta
sp_dropsubscriber @subscriber = ‘Hasło_subskrybenta
106
53
Maria Dems
Zabezpieczenie replikacji
SQL
Server
posiada
wbudowane
opcje
zapewniające
bezpieczeństwo replikacji, takie jak:
`specjalne role dla akcji replikacji,
`definiowanie loginów uprawnionych do publikacji,
publikacji
`ochrona dystrybutora za pomocą hasła,
`system zabezpieczeń dla subskrybentów, analizujących dane w
trybie ciągłym.
Przy konfiguracji serwera dla publikacji i dystrybucji
automatycznie tworzona jest lista dostępu do publikacji. Domyślnie
jest to distributor_admin
distributor admin oraz db_owner.
db owner. Listę tę można
zmodyfikować za pomocą procedur przechowywanych:
sp_grantpublication @publication = ‘pubs’ ,
@login = ‘public’
lub sp_revoke_publication_access @publication = ‘publikacja’ ,
@login = ‘login’
107
Zabezpieczenie i monitorowanie replikacji
Jeśli publikator i dystrybutor są na osobnych serwerach, to
odpowiednie loginy muszą pojawić się na obu listach dostępu.
Można ograniczyć dostęp do dystrybutora dołączając do rejestracji
distributor_admin
distributor admin odpowiednie hasło, przy pomocy procedury
przechowywanej sp_changedistributor_password.
a Monitorowanie replikacji - do monitorowanie replikacji służy
Replication Monitor, aktywowany przy konfiguracji serwera jako
dystrybutora. Pozwala on na:
`przeglądanie listy publikatorów, subskrybentów i publikacji,
`przeglądanie
p gą
rozkładów replikacji
p
j w agentach
g
replikacji
p
j oraz
monitorowanie ich statusu, a także przeglądania historii
wykonanych operacji
`konfigurowanie i monitorowanie alarmów replikacji
Może być on obsługiwany za pomocą interfejsu graficznego lub z
wiersza poleceń.
108
54
Maria Dems
Usprawnienie działania replikacji
W celu usprawnienia działania replikacji należy przestrzegać
następujących zasad:
`Należy publikować tylko niezbędne dane, aby nie spowalniać
przepływu danych i nie obciążać niepotrzebnie systemu,
`Publikator i dystrybutor powinny być skonfigurowane na
osobnych komputerach,
`Serwer dystrybucji powinien mieć co najmniej 64 MB pamięci
operacyjnej,
`Przy większej liczbie subskrybentów należy zmniejszyć
częstotliwość
t tli ść dystrybucji
d t b ji nowych
h danych.
d
h
`Poszczególne agenty dystrybucji nie powinny zaczynać pracy
jednocześnie,
`Należy ograniczyć ilość zapisków dotyczących przeszłych
operacji i czas przechowywania ich w dzienniku
109
Usprawnienie działania replikacji
`O ile jest to możliwe, należy definiować subskrypcję
inicjowaną przez subskrybenta, a zwłaszcza subskrypcję
anonimową,
anonimową co odciąża serwer publikacji i dystrybucji,
dystrybucji
`O ile jest to możliwe, należy korzystać z komputerów
wieloprocesorowych, co pozwoli na uruchomienie
wielowątkowych agentów replikacji,
`Należy optymalizować bazę danych pod kątem
replikacji. Przy definiowaniu artykułów należy
ograniczyć dzielenie poziome bazy danych,
danych bo powoduje
to spowolnienie replikacji.
110
55
Download