Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana:...

55
Bazy rozproszone Maria Dems Systemy baz danych Komponenty SBD: Platforma sprz ę towo - operacyjna SO Platforma sprz ę towo - operacyjna SO Baza danych BD Funkcje (programy) u ż ytkownika FU System Zarz ą dzania Baz ą Danych SZBD Warstwy Systemu baz danych: 2 warstwa danych, warstwa Systemu Zarządzania Bazami Danych, warstwa oprogramowania użytkowego.

Transcript of Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana:...

Page 1: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

1

Bazy rozproszone

Maria Dems

Systemy baz danych

Komponenty SBD: • Platforma sprzętowo-operacyjna SO• Platforma sprzętowo-operacyjna SO• Baza danych BD • Funkcje (programy) użytkownika FU • System Zarządzania Bazą Danych SZBD

Warstwy Systemu baz danych:

2

warstwa danych, warstwa Systemu Zarządzania Bazami Danych, warstwa oprogramowania użytkowego.

Page 2: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

2

Architektura systemów baz danych

W a r ia n ty ro z w ią z a ń : * S c e n tra liz o w a n a B D

* W ie lo d o s tę p n a B D

Systemy jednostanowiskowe

W ie lo d o s tę p n a B D * S ie ć lo k a ln a * A rc h ite k tu ra k lie n t/s e rw e r * S ie ć ro z le g ła (ro z p ro s z o n a B D )

3Układ warstw w systemie jednostanowiskowym

Systemy jednostanowiskowebaz danych

ż k ik

Baza scentralizowana:sprzęt oprogramowanie i użytkownik

BD, FUSO, SZBD

użytkownik

użytkownik 2

użytkownik n

4

sprzęt, oprogramowanie i użytkownik ==> w jednym miejscuBaza wielodostępna:sprzęt, oprogramowanie i użytkownicy ==> w jednym miejscu, dostęp dzielony

Page 3: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

3

Systemy sieciowe BDPodział warstw systemu:

warstwa danych znajduje się na wydzielonym k t ( likó )komputerze (serwer plików), warstwa SZBD i oprogramowania użytkowego - na każdym komputerze z oprogramowaniem bazy danych

5

Układ warstw w systemie sieciowym

Systemy sieciowe BD

SZBD, FU

SO

SZBD, FU BD

Baza w sieci lokalnej - BD, SO ==> w jednym miejscu, SZBD, programy, użytkownicy oddzieleni

Architektura

6

FU

FU

FU

SO , SZBD

BD

Architektura klient/serwer:rozdzielenie programów od pozostałych elementów

Page 4: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

4

Architektura klient - serwer

Klient - komputer lub stacja robocza włączona dosieci która po ala na dostęp do BDsieci, która pozwala 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

7

∗ 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)

Architektura klient - serwer

Klient SerwerProgram

aplikacyjny (FU)

Zdalnie dostępny interfejs BD

Pamięćdzielona

Serwer BD(SZBD+BD)

8

Interfejs sieci

Interfejs sieci

Page 5: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

5

Rozproszona baza danych

SO, SZBD

BD, FU

SO, SZBD, BD, FU

SO, SZBD,

9

BD, FU

Rozproszone BD:Wiele baz połączonych ze sobą

Rozproszona baza danychWrocław Warszawa

BD BD

Sieć komunikacyjna

Szczecin Kraków

10

Przykład R*BD

BDBD

Page 6: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

6

Pojęcie rozproszonych baz danych

Rozproszona BD (ang. Distributed Database) - SBD, w którym wiele węzłów przetwarzania połączono w sieć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:rozproszenie systemu informacyjnegorozwój teleprzetwarzania

11

hierarchizacja przetwarzania danychpoprawa parametrów eksploatacyjnych

Bazy rozproszone dzielimy na: jednorodne -homogeniczne, niejednorodne - heterogeniczne i federacyjne

Zasady „rozpraszania” BD wg Date’a

0. Fundamentalna (Rozproszona BD jak zwykła BD)1 L k l i ł (l l )1. Lokalna autonomia węzła (local 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)

12

independence)5. Niezależność fragmentacji BD (fragmentation

independence)6. Niezależność replikacji BD (replication independence)

Page 7: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

7

Zasady „rozpraszania” BD wg Date’a

7. Rozproszone przetwarzanie zapytań (distributed i )query processing)

8. Rozproszone zarządzanie transakcjami (distributed transaction management)

9. Niezależność sprzętowa BD (hardware independence)10. Niezależność „operacyjna” BD (operation system

independence)

13

independence)11. Niezależność sieci komputerowej BD (network

indepenedence)12. Niezależność SZBD (DBMS independence)

Właściwości Rozproszonej BD

Rozproszona BD stanowi kolekcję logicznie powiązanych i współużytkowanych danychBD jest podzielona na szereg fragmentówFragmenty mogą być replikowaneFragment/repliki są alokowane w węzłach Węzły są połączone w sieć o uzgodnionych zasadach współpracyDane w każdym węźle są pod kontrolą SZBD

14

Dane w każdym węźle są pod kontrolą SZBD (autonomia)Przetwarzania Rozproszonej BD odbywa się na dwóch poziomach: globalnym i lokalnymKażdy SZBD w Rozproszonej BD uczestniczy przynajmniej w jednej globalnej aplikacji

Page 8: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

8

Rozłożenie danych w rozproszonym systemie BD

W systemach rozproszonych rozróżniamy dwa modeledanych: dane rozproszone i dane replikowane. Daneda yc : dane ozp oszone dane eplikowane. a erozproszone pomiędzy bazy lokalne mogą być rozłożonepoprzez fragmentaryzację. Rozróżnia się:fragmentaryzację pionową - podzbiory kolumn w tabeli,fragmentaryzację poziomą - podzbiory wierszy w tabeli.

15

Działanie Fragmentaryzacja pozioma Fragmentaryzacja pionowaRozkład danych Selekcja Rzut na podzbiór kolumn

zawierający klucz głównyScalenie danych Suma (UNION) Złączenie naturalne w oparciu

o wartość klucza głównego

Dane rozproszone

Każdy serwer w systemie rozproszonym odpowiada za swojedane. Dostęp do danych jest możliwy z wielu miejsc poprzezęp y j y j p psieć. W systemie istnieje tylko jedna kopia każdej z danych.Czas odpowiedzi dla operacji na lokalnych danych jest krótki.Gdy jedno ze zdalnych stanowisk jest niedostępne, możnakorzystać z danych z innych serwerów.Częste korzystanie ze zdalnych danych wiąże się ze spadkiemefektywności przetwarzania. W wypadku awarii jednego ze

16

e e tyw ośc p etwa a a. W wypad u awa jed ego estanowisk, zakończenie transakcji może nie być możliwe dochwili usunięcia uszkodzenia.Model jest odpowiedni gdy przeważająca część przetwarzaniadotyczy danych lokalnych, a odwołania do innych serwerów sąstosunkowo rzadkie.

Page 9: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

9

Dane replikowane

Każde stanowisko posiada kopie wszystkichpotrzebnych na tym stanowisku danych w związku zpotrzebnych na tym stanowisku danych, w związku zczym te same dane są powielone w kilku miejscach.Model ten wymaga większej liczby zasobów i jestodpowiedni gdy te same dane są wykorzystywane nawielu różnych stanowiskach.Replikacja danych poprawia efektywność

17

p j y p p ywykonywania zapytań oraz zwiększa dostępnośćdanych i odporność na awarie.

Właściwości Rozproszonej BD

Podstawowe własności rozproszonej bazy danych sąnastępujące:następujące:przezroczystość geograficzna – użytkownik nie musiwiedzieć, w którym miejscu są przechowywane dane,przezroczystość fragmentaryzacji - użytkownik nie musiwiedzieć, w jaki sposób są podzielone dane,pr e roc ystość replikacji użytkownik nie musi

18

przezroczystość replikacji - użytkownik nie musiwiedzieć, w jaki sposób są replikowane dane, jakie i wilu bazach składowych.

Page 10: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

10

Właściwości Rozproszonej BDNiezależność fragmentacji danych

PracownikPIN W ydzia ł P łacay

123 W 1 2000234 W 2 2400456 W 2 1800567 W 3 1900789 W 3 2500

W rocław Kraków

19

W rocław Kraków

PIN W ydzia ł P łaca PIN W ydzia ł P łaca123 W 1 2000 456 W 2 1800234 W 2 2400 567 W 3 1900

789 W 3 2500

Właściwości rozproszonej BDNiezależność „replikacji” danych Wrocław Kraków

PIN Wydzia Płaca PIN Wydział Płaca ył

y

123 W1 2000 456 W2 1800 234 W2 2400 567 W3 1900 789 W3 2500

20

PIN Wydzia

ł Płaca PIN Wydzia

ł Płaca

456 W2 1800 123 W1 2000 567 W3 1900 234 W2 2400 789 W3 2500

Page 11: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

11

Komponenty rozproszonej BD

Globalny k t l

Węzeł 1

Globalny katalog

systemowy

Sieć komputerowa

katalog systemowy

SZR*BD

Moduł komunika-

SZR*BD

Moduł komunika-

cyjnySZBD

21

Węzeł 2

komunikacyjny

BD

Zalety i wady rozproszonej BD

Zalepsza obsługa struktur organizacyjnych

Przeciwduża złożonośćorganizacyjnych

wspólny dostęp i lokalna autonomia węzłówpoprawa dostępności BDpoprawa wiarygodności BD

i k i d j ś i

wyższe koszty utrzymaniaobniżenie bezpieczeństwa trudniejsze sterowanie poprawnością niedostatek standardów i doświadczeń

22

zwiększenie wydajności przetwarzanialepszy wskaźnik efekty-kosztymodularyzacja rozwoju BD

doświadczeńbardziej złożone projektowanieproblemy związane z wydajnością sieci rozległych

Page 12: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

12

Reguły Rozproszonej BDAutonomia lokalnych BD: Lokalne dane powinny podlegać lokalnym regułom własności i powinny być zarządzane lokalnie. Brak podporządkowania przetwarzania do konkretnego miejsca: p p zą p z z g jSpełnienie tej reguły umożliwia uniknięcie wąskich gardeł, dzięki decentralizacji wszystkich funkcji rozproszonego SZBD.Ciągłość funkcjonowania: Przestoje w wykonywaniu operacji nie powinny być skutkiem dodania nowych miejsc lub ich usunięciaNiezależność od lokalizacji: Użytkownicy lub aplikacje nie muszą wiedzieć, gdzie dane są fizycznie przechowywane.

23

Niezależność od rozczłonkowania: Fragmenty jednego zbioru danych mogą być przechowywane i zarządzane przez rozproszony SZBD jako jedna całośćNiezależność od replikacji: Pojawienie się replik danych nie powinno wpływać na postępowanie użytkowników ani na konieczność przeróbek aplikacji.

Reguły Rozproszonej BDRozproszone przetwarzanie zapytań: System powinien zapewniać sprawne przetwarzanie rozproszonych zapytań umożliwiające zredukowanie zarówno czasu przetwarzania, jak i obciążeniazredukowanie zarówno czasu przetwarzania, jak i obciążenia sieci transmisji danych.Zarządzanie rozproszonymi transakcjami: Zasady zarządzania transakcjami oraz sterowania współbieżnością powinny obowiązywać dla operacji w rozproszonej bazie danych. Niezależność od sprzętu i systemu operacyjnego: Dowolne oprogramowanie rozproszonego SZBD powinno pracować na

24

p g p g p próżnych platformach. Niezależność od sieci: Aplikacje działające na rozproszonej bazie danych nie powinny być uzależnione od protokołów sieciowych.Niezależność od SZBD: Powinno być możliwe przyłączenie do rozproszonej bazy danych lokalnej bazy danych zarządzanej przez dowolny lokalny SZBD.

Page 13: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

13

System Zarządzania Rozproszoną Bazą Danych

SZRBD posiada pełną funkcjonalność scentralizowanego

Umożliwia połączenie rozproszonych zasobów w jedną całość,

Utrzymuje spójność tych zasobów

SZRBD posiada pełną funkcjonalność scentralizowanego SZBD.

25

Utrzymuje spójność tych zasobów,

Udostępnia zasoby użytkownikom,

Ukrywa rozproszenie zasobów.

System Zarządzania Rozproszoną Bazą Danych

Ze względu na awarie, SZBD nie powinien się znajdowaćw jednym miejscu, lecz zarówno dane jak iw jednym miejscu, lecz zarówno dane jak ioprogramowanie powinny być rozproszone.Katalog systemowy rozproszonej bazy danych powinienzawierać informacje o położeniu fragmentów i replikacji.W systemie rozproszonym optymalizator zapytańpowinien móc użyć informacji topologicznych o sieci, przy

26

podejmowaniu decyzji, jak najlepiej wykonać danezapytanieZwielokrotnienie problemów związanych zewspółbieżnością oraz problemów propagowaniaaktualizacji do szeregu różnych węzłów.

Page 14: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

14

Funkcje Systemu Zarządzania Rozproszoną Bazą Danych

Powinny być dostępne wszystkie funkcje SZBD obsługującego bazę scentralizowaną, tzn.:obsługującego bazę scentralizowaną, tzn.:Obsługa komunikacji zapewniającej dostęp do zasobów Rozproszonej BDAdministrowanie poszerzonym katalogiem systemu zawierającym szczegóły „rozpraszania” BDRozproszone przetwarzanie zapytań (z optymalizacją)

27

p p py ( p y ją)Poszerzona obsługa współbieżnego przetwarzania

zapewniająca spójność replikowanych danychPoszerzona obsługa funkcji odtwarzania Rozproszonej

BD przeciwdziałająca uszkodzeniom węzłów i połączeń sieciowych

Klasyfikacja rozproszonychBDSystemy wielu baz danych

(multidatabases)

Niefederacyjne rozproszone BD

Rozproszone BD zglobalnym schematem

JednorodneBD

Federacyjne BD

Słabo skojarzone(loosely coupled)

Ściśle skojarzone(tightly coupled)

28

Pojedynczefederacje

(pojedynczyschemat)

Wielokrotnefederacje

(wieleschematów)

• Niefederacyjne RBD: brak autonomii.• Słabo skojarzone FBD: brak federacyjnego

schematu i zarządzania, operacje w zależności od aplikacji.

• Ściśle skojarzone FBD: FSZBD jest odpowiedzialny za zarządzanie całością federacji.

Page 15: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

15

Federacyjna Baza Danych

Jest to kolekcja heterogenicznych, autonomicznych baz danych, połączonych siecią komputerową, zarządzana Federacyjnym p ą y ą p ą ą yj ySystemem Zarządzania Bazą Danych (FSZBD). Może włączać dziesiątki, setki, tysiące lub więcej lokalnych baz danych.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 eksportowychlokalnych baz danych.

29

FSZBD zapewnia warunki pracy twórców aplikacji globalnych określane jako przezroczystość i niezależność danych. 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 zapewnienia spójności i integralności przetwarzania.

Architektura federacyjnej BD

FSZBD1

Przestrzeń robocza

Aplikacje globalne

FSZBDm

Przestrzeń robocza

Aplikacje globalne

...Sieć

komputerowa

S h k 1

Schemat FBD

S h k 2 S h k

Schemat FBD

30

...Lokalny SZBD 1

Schemat eksportowy 1Osłona 1

API 1

BD 1

Aplikacje lokalne

Lokalny SZBD 2

Schemat eksportowy 2Osłona 2

API 2

BD 2

Aplikacje lokalne

Lokalny SZBD n

Schemat eksportowy nOsłona n

API n

BD n

Aplikacje lokalne

Page 16: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

16

Przyczyny heteregoniczności FBD

Niezależność działania: twórcy systemów nie uzgadniają między sobą ich cech. Standardy są spóźnione i niekompletne KonkurencjaRóż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.Efektywność finansowa i kompromisy: Wytwórcy oferują produkty o różnej cenie, funkcjonalności i jakości

31

p y j j jSystemy 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

Autonomia lokalnej BD

Lokalne dane podlegają lokalnym priorytetom, regułomAutonomia lokalnej bazy danych w federacji baz danych oznacza:

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.Lokalna baza danych może udostępniać aplikacjom działającym na federacji baz danych tylko określoną część swoich danych i

32

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. Włączenie lokalnej bazy danych do federacji nie może powodować konieczności zmiany programów aplikacyjnych działających na lokalnej BD.

Page 17: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

17

Autonomia lokalnej BD

Federacja może przetwarzać lokalne zasoby tylko poprzez interfejs programowania aplikacji (API) specyficzny dla j p g p j ( ) p y ylokalnego systemu. Inne metody (np. bezpośredni dostęp do plików) są niedozwolone. Federacja nie może żądać od lokalnej bazy danych zmiany/rozszerzenia jej usług (np. udostępnienia lokalnego dziennika transakcji).

33

Federacyjną bazę danych powinna charakteryzować:• przezroczystość• niezależność danych

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.Przezroczystość implementacji danych: zwolnienie programów aplikacyjnych z konieczności uwzględniania informacji oaplikacyjnych z konieczności uwzględniania informacji o implementacji i organizacji danych.Przezroczystość protokołów komunikacyjnych: zwolnienie programów aplikacyjnych z konieczności uwzględniania aktualnych protokołów komunikacyjnych.Przezroczystość współbieżności: umożliwienie jednoczesnej pracy wielu programów aplikacyjnych bez utraty spójności i

34

p g p yj y y p jintegralności danych.Przezroczystość skalowania: umożliwienie dodawania/usuwania baz danych do/z federacji bez wpływu na postać programów aplikacyjnych.Przezroczystość awarii: minimalizacja skutków awarii węzłów lub linii komunikacyjnych dla programów aplikacyjnych.

Page 18: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

18

Niezależność danych

Możliwość działań na danych niezależnie od programów, którena nich operują. Nie ma potrzeby zmiany kodu programów

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.Logiczna niezależność danych: umożliwienie niektórych zmian schematu logicznego bez wpływu na kod aplikacji, np. dodanie

aplikacyjnych mimo zmian organizacji lub schematów danych.

35

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. Ewolucja schematu (schema evolution): umożliwienie daleko idących zmian schematu danych przy jednoczesnym utworzeniu perspektyw (views) zachowujących stary schemat.

Hurtownie danych

Hurtownie danych służą do do składowania i przetwarzaniadużych ilości danych pochodzących z różnych źródeł, najczęściejh t i h i h d t i i

Z każdym z heterogenicznych źródeł informacji związana jestwarstwa oprogramowania – konwerter/monitor, integrator.Zadaniem modułu konwertera jest transformowanie danych z formatu wykorzystywanego w źródle do formatu stosowanego

heterogenicznych i rozproszonych oraz do tworzenia iprzechowywanie kopii bezpieczeństwa danych strategicznych.

36

w hurtowni. 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). Zadaniem modułu integratora jest uaktualnianie danych w hurtowni.

Page 19: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

19

Problemy budowy i eksploatacji Rozproszonej BD

Niezawodność połączeń komunikacyjnychSterowanie współbieżnością blokowanieSterowanie współbieżnością - blokowanieObsługa katalogu zawartości BD - powielanieAktualizacja kopii BD - kopia pierwotnaOptymalizacja zapytań - lokalna i globalna

Budowa RBD dla baz istniejących polega na:

37

Budowa RBD dla baz istniejących polega na:„rozpraszaniu” centralnych BD„integracji” istniejących lokalnych BD„re-projektowaniu” BD

Budowa nowej BD: - ==> projektowanie RBD

Fazy projektowania RBDKoncepcja projektowania

Koncepcja projektowania „top-down”

Analiza potrzeb

Cele

Projektowanie Projektowanie

38

Projektowanie schematu globalnego

jpodschematów zewnętrznych

Projekt RBD

Page 20: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

20

Fazy projektowania RBDProblemy zasadnicze:

decyzje dotyczące lokalizacji: ==> SZRBD SO

Problemy szczegółowe:• dlaczego fragmentować RBD,

==> SZRBD, SO==> BD, aplikacji

projekt i parametry sieci

39

• 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.

Fazy projektowania RBDMetodyka projektowania

Zaprojektowanie schematu globalnego Dekompozycja schematu globalnego na schematy p y j g g ylokalne (projekty relacji + schemat fragmentacji)Projektowanie schematu alokacji BDProjekt lokalnych schematów BD integracja baz lokalnych

Zalety fragmentacji: Wady fragmentacji:

40

Zalety fragmentacji:użytkowośćefektywność współbieżnośćbezpieczeństwo

Wady fragmentacji:wydajnośćintegralność

Page 21: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

21

Fazy projektowania RBDTechniki fragmentacji

Pozioma (HF)==> Pierwotna fragmentacja pozioma (PHF)g j p ( )==> Wtórna fragmentacja pozioma (WHF)Pionowa (VF)

==> Trudniejsza w realizacji (więcej alternatyw)==> Podejścia:

• grupowanie (atrybuty do fragmentów)• dzielenie (relacja do fragmentów)

41

• dzielenie (relacja do fragmentów)Mieszana (MF)

Relacja lub fragment jest dzielona przynajmniej na dwie części, które są różnie przetwarzane, przynajmniej przez jedną aplikację

Fazy projektowania RBDFragmentacja mieszana

R

HF HF

R1 R2

42

VF VF VF VF VF

R11 R12 R21 R22 R23

Page 22: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

22

Fazy projektowania RBDKryteria poprawności fragmentacji

kompletnośćkompletność

odtwarzalność

rozłączność

Replikacje w rozproszonej BD

K ś i lik ji

Replikacja - proces generowania i utrzymywania kopii danych w jednym bądź wielu węzłach przetwarzania

Korzyści replikacji:• 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ń

Możliwe rozwiązania rozproszonej bazy danych:

44

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

Page 23: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

23

Rodzaje replikacji w rozproszonych BD

Rodzaje replikacji:- synchronicznasynchroniczna - asynchronicznaDodatkowe funkcje replikacji: skalowanie, transformowanie danych, obsługa obiektów BD, mechanizmy subskrypcji i inicjacjiWarianty replikacji: pełna i częściowa (migawka),Zesta replik składa się orca ( t or onego BD) i replik

45

Zestaw replik składa się z wzorca (utworzonego z BD) i replik poszczególnych użytkownikówModele własności danych: - nadrzędny/podrzędny, - przekazywany, - swobodny.

Synteza projektowania rozproszonej bazy danych

Relacje globalneRelacje globalne

FRAGMENTACJA

Relacje fragmentowane

ALOKACJA

REPLIKACJA

Relacje replikowane

46

ALOKACJA

Relacje lokalne

Page 24: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

24

Projektowanie alokacji w rozproszonej bazie danych

F={F1, F2, ...F3} fragmentyW={W1, W2, ... W3} węzłyZ={Z1, Z2, ...Z3} zapytania (aplikacje)

fragmenty nie są indywidualnymi relacjamidostęp do bazy bardziej złożonykonieczność rozważenia kosztów integralności

47

konieczność rozważenia kosztów integralnościkonieczność rozważenia kosztów współbieżności

==> Optymalizacja:* minimalny koszt (komunikacja, pamięć, przetwarzanie)* wykonanie (czas reakcji)* ograniczenia (węzły, pamięć, przetwarzanie)

Projektowanie alokacji w rozproszonej bazie danych

W procedurze alokacji istotne informacje to:BD l kt ść i i f tóBD: selektywność i rozmiar fragmentów aplikacja: typ i liczba dostępów, lokalizacja dostępuwęzeł: koszt pamiętania i przetwarzania fragmentu w węźle

Ograniczenia przy projektowaniu alokacji są następujące:koszt przetwarzania zapytaniakoszt i zakres przesyłania danych

48

przepustowość: suma zapytań ładowanych do węzła <= wydajność węzła

czas reakcji: czas realizacji zapytania <= max. dopuszczalnego czasu

pamięć: wymagana suma pamięci dla fragmentów <= dostępnej pamięci.

Page 25: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

25

Katalog systemowy rozproszonej bazy danych

Zawartość katalogu systemowego (KSRBD):dane o strukturach i użytkownikach BD (schemat i podschematy BD, indeksy, użytkownicy itp.) dane dotyczące przetwarzania rozproszonego (fragmentacja, alokacja, replikacja)

Warianty przechowywania KSRBD:Scentralizowany (cały katalog w wybranym węźle)Powielony (cały katalog w każdym węźle)

49

Powielony (cały katalog w każdym węźle)Podzielony (każdy węzeł utrzymuje katalog dla własnych obiektów; cały katalog jest sumą wszystkich katalogów lokalnych)Mieszany (1+3; utrzymywanie własnego katalogu, kopie przechowywane w węźle centralnym)

Zapytania równoległe

Zapytania równoległe występują, jeśli w komputerze jestwięcej niż jeden procesor. SQL

Server identyfikuje zapytania, które mogłyby byćwykonywane równolegle, za pomocą kilku wątkówsystemu operacyjnego i wstawia do planu wykonania tzw.operatory wymiany.Operatory wymiany zarządzają procesem redystrybucjidanych i sterowaniem przepływu – jest to tak zwany plan

50

wykonania zapytań równoległych. Może on korzystać zwięcej niż jednego wątku, przy czym liczbę wątkównazywamy stopniem nierównoległości.

SQL Server sam ustala optymalna liczbę wątków przykażdym uruchomieniu zapytania.

Page 26: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

26

Zapytania rozproszoneZapytania rozproszone umożliwiają:

dostęp do danych na tym samym lub innych komputerach,dostęp do rozproszonych danych przechowywanych nawielu komputerach z uruchomionym SQL Serverem,dostęp do niejednorodnych danych z różnych relacyjnych inierelacyjnych baz danych, jak również do danychprzechowywanych w nierelacyjnych źródłach, takich jakarkusze kalkulacyjne czy pliki tekstowe.

51

Wymagają one obecności albo dostawcy OLE DB,implementującego niezbędne interfejsy OLE DB (API), albosterownika 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.

Zapytania rozproszone

Zapytania rozproszone są podobne do mechanizmu tabelpołączonych w MS Access. Mechanizm ten jest wbudowany wSQL Serverze poprzez OLE DB jak interfejs do danychSQL Serverze poprzez OLE DB, jak interfejs do danychzewnętrznych.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

52

ź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.

Page 27: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

27

Zapytania rozproszoneStosowane są techniki:

Kwerenda „ad hoc”, wykorzystująca funkcję OPENROWSET. Należy podać potrzebne informacje do połąc enia e źródłem dan ch OLE DB ora na ę obiektpołączenia ze źródłem danych OLE DB, oraz nazwę obiektu 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

53

stałego dostępu do danych można użyć nazwy dołączonego serwera, zdefiniowanej za pomocą procedury przechowywanej sp_addlinkedserversp_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.

Wykonywanie zapytań

Jawne zapytania (Ad Hoc)

Wydzielenie istotnych danych Parse Parse ParseRozwiązanie Optymalizacja Kompilacja Wykonanie

Wydzielenie istotnych Parse Parse ParseRozwiązanie Optymalizacja Kompilacja Wykonanie

Ukryte zapytaniaPierwsze wykonanie

54

Procedura ukryciaKolejne wykonanie

yinformacji

Parse

Wykonanie

Page 28: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

28

Zapytania rozproszone

Kwerendy rozproszone mogą być przetwarzane:y p gą y pna lokalnym serwerze,na zdalnym serwerze, będącym źródłem danych OLE DB, za pośrednictwem kwerendy przekazującej OPENQUERY

Za pomocą zapytań rozproszonych nie można tworzyćnowych tabel ani modyfikować już istniejących Dane w

55

nowych tabel, ani modyfikować już istniejących. Dane wzdalnej tabeli można aktualizować lub usuwać tylko wtedy,gdy ma ona unikatowy indeks.

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 danychFunkcji 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’})

OPENROWSET (‘nazwa_dostawcy’

{‘źródło_danych’; ‘id_uzytkownika’ ; ‘hasło’|’ciąg_dostawcy’},

{[katalog.][schemat.]obiekt | ‘kwerenda’})

56

SELECT a.* FROM OPENROWSET('SQLOLEDB', 'LONDON1'; 'newcustomer';'mypassword','SELECT productid, unitpriceFROM northwind.dbo.products ORDER BY unitprice')AS a

Page 29: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

29

Lokalny serwer SQL

Konfigurowanie środowiska serwerów

Serwer SQL pozwala na dostęp do innych źródeł danychSerwery zdalne

połączonych

Zdalny serwer SQL

Serwery zdalne muszą być połączone z lokalnymkomputerem, na którym znajduje sięserwer SQL

57

Inne źródła danych

Zdalny serwer SQL

Serwer połączony jest źródłem danych OLE DB,

Konfigurowanie środowiska serwerów połaczonych

Polega na ustanowienia połączenia ze zdalnym źródłem danych i ustanowieniu zabezpieczeń pomiędzy serwerami

Ł i d l SQLŁączenie ze zdalnym serwerem SQL

EXEC sp_addlinkedserver @server = 'AccountingServer', @product_name = 'SQL Server'

Sp_addlinkedserver {‘serwer’, ‘nazwa_produktu’, ‘nazwa_dostawcy’,‘źródło_danych’, ‘lokalizacja’,’ciąg_dostawcy’}Sp_addlinkedserver {‘serwer’, ‘nazwa_produktu’, ‘nazwa_dostawcy’,‘źródło_danych’, ‘lokalizacja’,’ciąg_dostawcy’}

58

Łączenie ze źródłem danych OLE DBEXEC sp_addlinkedserver @server = 'OracleFinance', @product_name = 'Oracle',@provider_name = 'MSDAORA', @data_source = 'OracleDB'

Page 30: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

30

Ustanawianie zabezpieczeń dla serwerów połączonych

Przy wykonywaniu kwerendy rozproszonej lokalny serwer musi zalogować się do zdalnego serwera w imieniu użytkownikaJeżeli konto logowania użytkownika istnieje na obu serwerach, można go użyć do zalogowania się do zdalnego serweraPrzy użyciu procedury sp_addlinkedsrvlogin można mapować konta logowania i hasła pomiędzy serweramiBez delegowania bezpieczeństwa, należy mapować lokalne konto logowania na konto logowania serwera połączonego

59

EXEC sp_addlinkedsrvlogin @rmtsrvname = AccountingServer, @useself = false,@locallogin = 'Accountwriter',@rmtuser = 'rmtAccountWriter',@rmtpassword = 'financepass'

Sp_addlinkedsrvlogin {‘nazwazdalserw’}[,‘użyjwłasn’[,lokalnekonto’ [,‘zdalużytkownik’[,‘zdalhasło’] ] ] ]

Sp_addlinkedsrvlogin {‘nazwazdalserw’}[,‘użyjwłasn’[,lokalnekonto’ [,‘zdalużytkownik’[,‘zdalhasło’] ] ] ]

Informacje o serwerach połączonych

SystemowaSystemowaprocedura przechowywanaprocedura przechowywana ZwracaZwraca

Listę serwerów połączonych zdefiniowanych na lokalnym sp_linkedservers

sp_catalogs

sp_indexes

sp_primarykeys

sp_foreignkeys

Listę serwerów połączonych zdefiniowanych na lokalnym serwerzeListę katalogów i opisów dla określonego serwera połączonego

Informacje o indeksach dla określonej zdalnej tabeliKolumny klucza podstawowego dla określonej tabeli,jeden wiersz na kolumnę

Klucz obcy zdefiniowany dla określonej zdalnej tabeli

60

p g y

sp_tables_ex

sp_columns_ex

y y j j

Informacje dotyczące tabel z określonego serwera połączonegoInformacje dotyczące kolumn dla tabeli połączonej, dla wszystkich kolumn lub określonej kolumny

Page 31: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

31

Praca z serwerami połączonymiPodczas wykonywania kwerend rozproszonych należy odwołać się do obiektów na serwerach połączonych, za pomocą cztero-częściowej nazwy w postaci:

ł k lł k lnazwa_serwera_połączonego.nazwa_katalogu.nazwa_serwera_połączonego.nazwa_katalogu.nazwa_schematu.nazwa_obiektunazwa_schematu.nazwa_obiektuDozwolone instrukcje języka Transact-SQL

SELECT z klauzulą WHERE lub JOIN, INSERT, UPDATE, DELETE

Niedozwolone instrukcje języka Transact-SQL

61

CREATE, ALTER, DROPORDER BY dla zdalnych tabel zawierających duże obiektyREADTEXT, WRITETEXT, UPDATETEXT

Kwerendy serwera połączonego są przetwarzane lokalnie

Wykonywanie kwerend na serwerze połączonym

Aby wykonać kwerendę przekazującą na serwerze połączonym, należy wykonać funkcję OPENQUERYW miejscu nazwy tabeli w instrukcji SELECT można użyć funkcji OPENQUERY Jako tabeli docelowej instrukcji INSERT, UPDATE lub DELETE można użyć wyniku funkcji OPENQUERY

SELECT companyname FROM AccountingServer northwindremote dbo suppliers

62

FROM AccountingServer.northwindremote.dbo.suppliers

SELECT * FROM OPENQUERY(AsiaServer, 'SELECT productid, royaltyFROM Northwind.dbo.ProductInfo')

Page 32: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

32

Wykonywanie procedury przechowywanej na serwerze połączonym

Serwer lokalny

Wywołanie proceduryprzechowywanej

Serwer zdalny

Parametry i wyniki

Przetwarzanie zdalnych procedur

Klient połączony z jednym serwerem SQL może wykonywać procedury

63

Użytkownik

EXEC accounting.master.dbo.sp_helpntgroup

przechowywane na innym serwerze SQL bez potrzeby ustanowienia połączenia z tym serwerem

EXECUTE nazwa_serwera.nazwadb.właściciel.nazwa_proceduryEXECUTE nazwa_serwera.nazwadb.właściciel.nazwa_procedury

Modyfikowanie danych na serwerze połączonym

Transakcję rozproszoną można rozpocząć przez:Wykonanie instrukcji BEGIN DISTRIBUTED TRANSACTION

- LUB -Wywołanie funkcji API z klienta

Należy rozważyć następujące fakty:Instrukcje BEGIN DISTRIBUTED TRANSACTION nie mogą być zagnieżdżoneInstrukcja ROLLBACK TRANSACTION anuluje całą transakcję rozproszonąPunkty kontrolne zapisu nie są obsługiwane Jeśli serwer SQL

64

Punkty kontrolne zapisu nie są 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 będzie tylko jedna instrukcja.

Page 33: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

33

MS DTC Replikacja

Dystrybucja danych

AKTUALIZACJA AKTUALIZACJA AKTUALIZACJA

Replikacja

65

Program MS Distributed Transaction Coordinator kontroluje transakcje rozproszone i zapewnia ich integralność i zgodność aktualizacji danych

Replikacja danychReplikacja danych jest to generowanie i utrzymywanie kopii danychw jednym bądź więcej węzłach przetwarzania i ich automatycznasynchronizacja. Zastosowania replikacji są następujące:

Zarządzanie wielokrotnymi kopiami danych w różnychą y p y ylokalizacjach.Przenoszenie informacji bliżej użytkowników, którzy ichpotrzebują.Większa autonomia punktów aktualizujących dane.Udział w strategii bezpieczeństwa.Wsparcie dla systemów wspomagania decyzji oraz hurtowni

66

danych.Można wykonać replikację między bazą źródłową (source database) ibazą docelową (destination database), w przypadku gdy obie bazy sąna tym samym serwerze sieciowym, jak również na różnychserwerach, połączonych siecią LAN, WAN lub poprzez Internet.

Page 34: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

34

Replikacja danychBazy mogą być synchronizowane natychmiast, lub zmiany mogą być zachowywane i przesyłane według potrzeb.Replikacje mogą być wykonywane między bazami SQL Servera, lub innymi typami baz danych np MS Access Oracle itpinnymi typami baz danych, np. MS Access, Oracle itp.Replikacja w SQL Serverze oparta jest na technice publikacji publikacji i subskrypcjisubskrypcji danych. Serwer udostępniający dane jest publikatorempublikatorem danych. Przesyła onkopie wszystkich zmian opublikowanych danych do serwerazajmującego się dystrybucja, tzw. dystrybutora.DystrybutorDystrybutor zawiera bazę dystrybucji, która otrzymuje wszelkie

67

DystrybutorDystrybutor zawiera bazę dystrybucji, która otrzymuje wszelkiezmiany wprowadzane w danych, przechowuje je i przesyła doserwerów subskrypcji (subskrybentów), obsługujących bazędocelową, która odbiera opublikowane dane i przechowuje ich kopię.SubskrybentSubskrybent może pobierać wszystkie dane publikowane przezserwer źródłowy lub tylko ich część. Serwer dystrybucji i publikatormogą być na tym samym komputerze lub na innych.

Komponenty replikacjiKomponenty replikacji są następujące:

PublikatorPublikator – serwer udostępniający dane innym serwerom.Przechowuje dane o wszystkich publikacjach dokonanych w baziedanych.yDydtrybutorDydtrybutor – serwer zawierający bazę zarządzającą dystrybucjądanychSubskrybentSubskrybent - serwer przechowujący kopie publikacji i przesyłającylub odbierający zmiany od publikatora. Może być równieżpublikatorem dla innych subskrybentów.ArtykułArtykuł – zbiór danych, który ma być replikowany i może zawierać

68

dane przechowywanej procedury lub tablicy przeznaczonej doreplikacji.PublikacjaPublikacja – zbiór jednego lub wielu artykułów. Subskrybentysubskrybują publikacje, a nie artykuły.SubskrybcjaSubskrybcja – tworzona jest w celu pobrania publikacjiprzeznaczonych do replikacji.

Page 35: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

35

TTOPOLOGIE OPOLOGIE RREPLIKACJIEPLIKACJI((CCENTRALNY ENTRALNY WWYDAWCA)YDAWCA)

Publikator i Dystrybutor Subskrybent

69

Publikator i Dystrybutor

Subskrybenci

TTOPOLOGIE OPOLOGIE RREPLIKACJIEPLIKACJI((CCENTRALNY ENTRALNY WWYDAWCA YDAWCA ZZE E ZZDALNYM DALNYM

DDYSTRYBUTOREM)YSTRYBUTOREM)

Publikator

Dystrybutor

70

Subskrybenci

Page 36: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

36

TTOPOLOGIE OPOLOGIE RREPLIKACJIEPLIKACJI((PPOWTÓRNY OWTÓRNY PPUBLIKATOR)UBLIKATOR)

Publikatori Dystrybutor

Subskrybent

Wolne lub drogie łącze sieciowe

71

i Powtórny publikator

Subskrybenci

TTOPOLOGIE OPOLOGIE RREPLIKACJIEPLIKACJI((CCENTRALNY ENTRALNY SSUBSKRYBENT)UBSKRYBENT)

S b k b t

Publikatorzy

72

Subskrybent

Page 37: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

37

Rodzaje subskrypcjiRozróżnia się dwa podstawowe rodzaje subskrypcji:

SubskrypcjaSubskrypcja inicjowanainicjowana przezprzez publikatorapublikatora, polegająca na tym, żepublikator przesyła wprowadzone w danych zmiany do

b k b t St j t dl lik ji któ h isubskrybenta. Stosowana jest dla aplikacji, w których zmianymuszą być przesłane zaraz po wprowadzeniu, dla publikacji, wktórych wymagana jest ochrona replikowanych danych oraz dlapublikacji, które musza być wykonywane w ściśle określonychprzedziałach czasu. Powoduje duże obciążenie procesora po stroniepublikatora.SubskrypcjaSubskrypcja inicjowanainicjowana przezprzez subskrybentasubskrybenta, polegająca na tym, że

73

yp jyp j jj pp yy , p g ją y ,subskrybent zapytuje publikator o nowe publikacje. Stosowana jestdla aplikacji, w których zmiany są przesłane co pewien czas, dlapublikacji, w których nie jest wymagana ochrona replikowanychdanych 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.

Planowanie replikacjiPrzy planowaniu replikacji należy często rozstrzygnąć konfliktymiędzy potrzebami różnych aplikacji i różnych środowisk, orazczęsto w samej aplikacji. Istotnymi problemami jest tu zachowaniespójności transakcyjnej, przy jednoczesnym zachowaniu autonomiispójności transakcyjnej, przy jednoczesnym zachowaniu autonomiipewnych komputerów uczestniczących w replikacji, jak równieżkonieczność dzielenia danych. Rozróżnia się trzy rodzaje spójnościtransakcyjnej: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

d j t ł i b d ł d i ć d h

74

zarządzającego pozostałe serwery nie będą mogły uzgadniać danych.Gwarantowana luźna spójność – wszystkie lokacje mają te samedane, ale niekoniecznie w tej samej chwili, gdyż w chwili modyfikacjidanych w jakiejś lokacji ich spójność nie musi być zachowana,Brak gwarancji spójności – modyfikacja danych może spowodować,że przez pewien czas różne lokacje mogą mieć różne zestawy danych.

Page 38: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

38

Planowanie replikacji

Strategią pozwalającą na uniknięcie konfliktów między danymi jestdzielenie danych. W takim przypadku każda lokacja otrzymuje swójpodzbiór danych zapisanych w głównej bazie, co zapewnia równieżp y p y g j , pautonomię lokacji. Istnieją dwie techniki dzielenia danych:

Pozioma (horyzontalna) – dzielone są rekordy danychPionowa (wertykalna) – dzielone są pola danych

Obie techniki można ze sobą łączyć.Rozróżniamy następujące rodzaje replikacji:

R lik j i k (R lik j i k ( h t li tih t li ti ))

75

Replikacja migawkowa (ang. Replikacja migawkowa (ang. snapshot replicationsnapshot replication))

Replikacja transakcyjna (ang. Replikacja transakcyjna (ang. transactional repliactiontransactional repliaction))

Replikacja uzgadniana Replikacja uzgadniana (ang. (ang. merge replicationmerge replication))

Replikacja migawkowa

Przy replikacji migawkowej dane przechowywane u publikatorazastępują dane subskrybenta w określonych odstępach czasu.Początkowa synchronizacja wymaga przekopiowania wszystkichdanych bazy źródłowej do docelowej, a następnie, w określonychodstępach czasu, zmienione dane są przesyłane do bazy docelowejSerwer automatycznie synchronizuje dane we wszystkich lokacjach,

kopiując do nich dane z bazy podstawowej.Replikacja migawkowa może być stosowana, o ile nie jest niezbędneciągłe uaktualnianie danych. Jest to odświeżania tablic wedługrozkładu

76

rozkładuMoż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ć korzystaniaz bazy, gdyż w czasie transferu danych zablokowana jest możliwośćkorzystania z bazy.

Page 39: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

39

Replikacja migawkowaNależy zapewnić odpowiednią ilość wolnego miejsca w kataloguroboczym replikacji, tak aby zmieściły się wszystkie zdjęcia danych zwszystkich publikacji jednocześnie.Tablice replikowane w replikacji migawkowej nie wymagają kluczypodstawowych.

Podstawowe cechy replikacji migawkowej są następujące:•• Dane są statyczne i rzadko ulegają zmianom.Dane są statyczne i rzadko ulegają zmianom.•• Replikowane są małe ilości informacji. Replikowane są małe ilości informacji. •• Znacząca ilość publikowanych elementów zmienia się w tymZnacząca ilość publikowanych elementów zmienia się w tym

77

•• Znacząca ilość publikowanych elementów zmienia się w tym Znacząca ilość publikowanych elementów zmienia się w tym samym momencie,samym momencie, w określonych odstępach czasu tak, żew określonych odstępach czasu tak, żeprzesyłanie zmianprzesyłanie zmian nie opłaca się. nie opłaca się.

•• Do zaakceptowania jest sytuacja posiadania na subskrybentachDo zaakceptowania jest sytuacja posiadania na subskrybentachkopii nie zawsze aktualnych danychkopii nie zawsze aktualnych danych, czyli dane nie są krytyczne., czyli dane nie są krytyczne.

RREPLIKACJA EPLIKACJA MMIGAWKOWAIGAWKOWA(SCHEMAT DZIAŁANIA)(SCHEMAT DZIAŁANIA)

Aplikacja kliencka

Publikator

Subskrybent

Publikowana baza danych

Subskrybowanabaza danych

Katalog na migawki

Agent migawkowy

78Dystrybutor

Baza dystrybucji

g gdanych

Agent dystrybucji

Dane lub transakcjeZapis historii i błędów

Page 40: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

40

Replikacja transakcyjna

Przy replikacji transakcyjnej zatwierdzone transakcje z dziennikatransakcji bazy źródłowej rozsyłane są w ciągu kilku sekund do bazdocelowych, przy czym zamiast rzeczywistych danych do serwerówd l h h d d i d i i k j (INSERTdocelowych przychodzą odpowiednie instrukcje (INSERT,UPDATE, DELETE), w porządku, w jakim zostały wprowadzone wpublikatorze.Przesyłane są tylko transakcje zrealizowane, a użytkownicy nie sąwyłączeni z korzystania z tablic, w czasie ich aktualizacji. Technikata pozwala zachować spójność transakcyjną.Dziennik transakcji bazy danych publikatora przechowuje

79

Dziennik transakcji bazy danych publikatora przechowujetransakcje przeznaczone do replikacji, dopóki nie zostanąprzeniesione do bazy dystrybutora, a następnie zostaje oczyszczonytak, że zostają w nim tylko transakcje, które nie są przeznaczone doreplikacji.Tablice przeznaczone do replikacji muszą mieć klucze podstawowe.

Replikacja transakcyjna

Należy zapewnić odpowiedni rozmiar dziennika transakcjipublikatora, oraz bazy danych dystrybutora, tak abyp y y y y ymogła ona przechowywać wszystkie zmiany wysyłane doniej w pojedynczym zdjęciu (przesłane co pewien czas wpostaci replikacji migawkowej), a także wszystkietransakcje wykonane w okresie między kolejnymiaktualizacjami bazy.

SQL Server 7 posiada opcję Immediate Updating

80

SQL Server 7 posiada opcję Immediate UpdatingSubscribers umożliwiającą subskrybentom, w oparciu oprotokół dwufazowej realizacji transakcji, wprowadzaćzmiany w tym samym czasie gdy są one wprowadzane upublikatora.

Page 41: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

41

Replikacja transakcyjna

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 wporozumieniu z publikatorem dwufazowego zatwierdzeniatransakcji,dane aktualizacji są przesyłane do pozostałych subskrybentów zapośrednictwem replikacji migawkowej lub transakcyjnej,subskrybent nie musi czekać z aktualizacją danych na wykonaniereplikacji migawkowej

81

replikacji migawkowej,subskrybent nie potrzebuje bazy dystrybucji ani agentadziennikagwarantowana jest spójność transakcyjna, oraz mniejszamożliwość wystąpienia błędów.

Replikacja transakcyjna

Dwufazową realizacją transakcji zarządza programkoordynacji transakcji rozproszonych MS DTC (MicrosoftDistributed Transaction Coordinator), wykorzystując instrukcjęw języku Transact-SQL

BEGINBEGIN DISTRISTRIBUTEDDISTRISTRIBUTED TRAN(SACTION)TRAN(SACTION)

wywoływaną procedurą wyzwalaną u subskrybenta. Inneprocedury wyzwalane subskrybenta przechwytują transakcje iprzesyłają je do publikatora za pomocą zdalnej procedury

82

przechowywanej wewnątrz dwufazowego zatwierdzeniatransakcji, przy czym zmiany wprowadzane są, o ile niewywołują żadnych konfliktów w publikatorze. Jeśli są jakieśkonflikty, transakcja jest wycofywana zarówno w publikatorzejak i u subskrybenta.

Page 42: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

42

RREPLIKACJA EPLIKACJA TTRANSAKCYJNA RANSAKCYJNA (SCHEMAT DZIAŁANIA)(SCHEMAT DZIAŁANIA)

Aplikacja kliencka

Publikowana baza danych

Dzienniktransakcji Subskrybowana

baza danych

SubskrybentPublikator

Agent dziennika

Agent migawkowy

83Dystrybutor

Katalog namigawki danych

Baza dystrybucji

Agent dystrybucji

Schemat i dane początkoweNowe transakcjeZapis historii i błędów

Replikacja transakcyjna

Podstawowe cechy replikacji transakcyjnej:

Konieczność szybkiej aKonieczność szybkiej aktualizacjktualizacjii danych u subskrybentówdanych u subskrybentówKonieczność szybkiej aKonieczność szybkiej aktualizacjktualizacjii danych u subskrybentówdanych u subskrybentów,,niewielkiniewielkiegoego opóźnieniopóźnieniaa w stosunku do aktualizacji u wydawcyw stosunku do aktualizacji u wydawcy..

Zapewnia Zapewnia spójnośspójnośćć transakcyjntransakcyjnąą, , aaby dane były identyczne we by dane były identyczne we wszystkich lokacjachwszystkich lokacjach..

84

Opłaca się, gdy iOpłaca się, gdy ilość publikowanych danych jest duża w lość publikowanych danych jest duża w stosunku do ilości ich aktualizacjistosunku do ilości ich aktualizacji..

Page 43: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

43

Replikacja uzgadnianaReplikacja uzgadniana jest replikacją dwukierunkową, pozwalającąna aktualizację danych w różnych lokacjach, niezależnie odpublikatora. Następnie dane są synchronizowane przez publikator,który rozsyła je do wszystkich innych serwerów replikacji. Technikaktóry rozsyła je do wszystkich innych serwerów replikacji. Technikata nie gwarantuje spójności transakcyjnej i jest stosowana, gdyaplikacje stanowiące część systemu łączą się z bazą danych copewien czas, np. po wprowadzeniu danych na przenośnymkomputerze. Przy replikacji uzgadnianej stosowane są dwarozwiązania:

topologia koncentryczna z centralnym dystrybutoremd i d i l h i j d h

85

odpowiedzialnym za synchronizację danych,układy z wieloma centrami replikacji

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 lubsubskrybentem anonimowym.

Replikacja uzgadnianaW replikacji uzgadnianej publikator tworzy publikację, ale każdy zsubskrybentów może aktualizować dane. Można równieżzdefiniować własne kryteria rozwiązywania konfliktów, tak abypublikator nie wygrywał automatycznie wszystkich konfliktówpublikator nie wygrywał automatycznie wszystkich konfliktów(opcja domyślna). Przy replikacji uzgadnianej SQL Serverwprowadza 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ódlicznych jego kopii w całej tablicy. Jeśli pole uniqueidentyfier jużistnieje, to SQL Server wykorzysta je.

86

instalowane są procedury wyzwalane, pozwalające śledzić irejestrować zmiany danych w tablicach systemowych replikacjiuzgadnianej,do bazy danych dodawane są tablice systemowe, w celu obsługimonitorowania, synchronizacji i rozstrzygania konfliktów.

Page 44: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

44

Replikacja uzgadnianaPrzy implementowaniu replikacji uzgadnianej należy przestrzegaćnastępujących reguł:

nie należy korzystać ze zmiennej typu uniqueidentyfier orazik ć ól id t fik j h i ż i l l k ji b d iunikać pól identyfikujących, ponieważ wiele lokacji będzie

załączać rzędy o tych samych kolejnych numerach. Prowadzi todo konfliktu w momencie uzgadniania danychze wszystkich publikowanych tablic należy usunąć znacznikiczasu, 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ć

87

przy obsłudze odwołań do kluczy podstawowych należy załączaćtablice, zawierające te odwołania. W przeciwnym przypadkuoperacje wstawiania danych do tablic, w których klucze obceodwoł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.

Replikacja uzgadnianaObsługę danych typu text należy przeprowadzać przy pomocyinstrukcji UPDATEPrzed rozpoczęciem replikacji uzgadnianej publikator rozsyła dosubskrybentów zdjęcie danych wraz ze wszystkimi tablicami isubskrybentów zdjęcie danych, wraz ze wszystkimi tablicami ischematami danych.Program koordynacji transakcji rozproszonych MS DTC (MicrosoftDidtributed Transaction Coordinator) dostarcza interfejsugraficznego dla replikacji, umożliwiającego zarządzaniemtransakcjami oraz zapisem operacji w dzienniku systemu.

88

Podstawowe cechy replikacji uzgadnianej:•• Wielu subskrybentów aktualizuje daneWielu subskrybentów aktualizuje dane•• Nie ma konieczności zachowania zgodności transakcyjnejNie ma konieczności zachowania zgodności transakcyjnej•• Dane mogą być odpowiednio partycjonowane tak, by pojawiające się Dane mogą być odpowiednio partycjonowane tak, by pojawiające się

ewentualnie konflikty były rzadkościąewentualnie konflikty były rzadkością

Page 45: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

45

RREPLIKACJA EPLIKACJA UUZGADNIANA ZGADNIANA (SCHEMAT DZIAŁANIA)(SCHEMAT DZIAŁANIA)

Aplikacja kliencka

Aplikacja kliencka

Publikator

Publikowana baza danych

Tabela konfliktów

Subskrybent

Subskrybowana baza danych

Katalog na

Agent migawkowy

89

Schemat i dane początkoweNowe transakcjeZapis historii i błędów

Baza dystrybucji

Dystrybutor

migawki danych

Agent łączenia

Replikacja synchroniczna i asynchroniczna

Zarówno replikacja synchroniczna jak i asynchronicznaumożliwiają odczyt i modyfikację lokalnych kopii danych, coumożliwiają odczyt i modyfikację lokalnych kopii danych, cowpływa korzystnie na czas odpowiedzi.Zaletą modelu w pełni synchronicznego jest posiadanie nawszystkich stanowiskach zawsze najbardziej aktualnych informacji.Ponadto, nie występują konflikty przy modyfikacji.Synchroniczna replikacja może w przypadku awarii ograniczaćmożliwość dokonywania modyfikacji.

90

Zaletą modelu w pełni asynchronicznego jest ciągła dostępnośćdanych. Żadne ze stanowisk nie wymaga dostępności innego, abymożliwe było dokonanie zmian.Wybór najodpowiedniejszego modelu zależy od zastosowań.

Page 46: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

46

Replikacja synchronicznaZmiany dokonane na innych stanowiskach są natychmiastodzwierciedlane lokalnie.Te same dane mogą być modyfikowane w różnych miejscach, bezmożliwości wystąpienia konfliktu.możliwości wystąpienia konfliktu.W wyniku utraty połączenia z jednym ze stanowisk objętychreplikacją, niemożliwe staje się wykonanie lokalnych modyfikacji dochwili usunięcia uszkodzenia lub zmiany konfiguracji środowiskarozproszonego.Czas odpowiedzi przy modyfikacji ulega wydłużeniu, gdyż dozatwierdzenia lub wycofania transakcji konieczne jest uzyskanie

91

odpowiedzi od wszystkich stanowisk.Model najlepiej sprawdza się w sytuacjach, gdzie dane są częstoodczytywane, a rzadko modyfikowaneModel jest odpowiedni w sytuacjach, gdzie wymagana jest absolutnaspójność między replikami.Model wymaga stabilnych systemów i połączeń sieciowych

Transakcje synchroniczneTransakcje synchroniczne mogą być wykonywane razem z replikacjątransakcyjną jak i migawkową. Za pomocą transakcjisynchronicznej subskrybent może modyfikować replikowane dane,o ile transakcja jest wykonywana w publikatorze za pomocąj j y y p p ąrealizacji dwufazowej. Subskrybent informuje o wprowadzonychzmianach tylko publikator.Dwufazowa realizacja transakcji jest automatyczna i jeśli siępowiedzie, subskrybent może natychmiast pracować ze zmienionymidanymi, pod warunkiem, że publikator jest dostępny.Rozprowadzeniem zmian do innych subskrybentów zajmuje siępublikator

92

publikator.Transakcje rozproszone implementowane są przez program MSDTC. Procedury wyzwalane tworzone w subskrybencie przesyłają jedo publikatora za pośrednictwem odwołania do zdalnej proceduryprzechowywanej (działającej na innym komputerze), wewnątrzdwufazowej realizacji transakcji.

Page 47: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

47

Replikacja asynchroniczna

Awarie na zdalnych stanowiskach nie blokują lokalnych operacjiodczytu i modyfikacji replikowanych danychCzas odpowiedzi jest krótszy niż w przypadku replikacjip j y p yp p jsynchronicznej, gdyż nie ma konieczności uzyskania odpowiedzi odinnych stanowiskZmiany mogą być propagowane z dowolnym (być może bardzokrótkim opóźnieniem) lub na żądanieZmiany dokonane na innych stanowiskach nie są natychmiastodzwierciedlane lokalnie, co prowadzi do tymczasowych

i ój ś i i d lik i

93

niespójności między replikamiIstnieje możliwość wystąpienia konfliktów między operacjamimodyfikacji. SZRBD oferują mechanizmy do rozwiązywania takichproblemów.

Rozstrzyganie konfliktówW replikacji uzgadnianej dochodzi czasem do konfliktów pomiędzydanymi wpisanymi do tego samego rekordu w różnych lokacjach.Informacje o konfliktach przechowywane są w publikatorze poprzezprzekopiowanie rekordu przegrywającego konflikt do tablicyp p p g y ją g ykonfliktów (Conflict_User_Table), o takiej samej strukturze, jaktablica oryginalna. Informacja, dla jakich tablic przechowywane sątablice konfliktów jest zawarta w tablicy systemowejsysmergearticles. Najczęściej spotykane konflikty, to:

Dwie lokacje usiłują dodać rekord mający ten sam klucz. Jeśli tozrobią, podczas synchronizacji pojawi się konflikt.J d l k j d d j k d kl b d d

94

Jedna lokacja dodaje rekord z kluczem obcym, podczas gdydruga usuwa odpowiadający mu rekord z kluczempodstawowym,Różnorodne problemy z blokowaniem danych.

Aby ustalić, który rekord wygrywa, replikacja uzgadnianaprzyznaje poszczególnym lokacjom priorytety (od 0 do 100)

Page 48: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

48

Agenty replikacjiMożna podzielić dane na części i poszczególnym częściom przypisać różnetypy replikacji. W zależności od tego, z jakiego typu replikacji korzystamy,możemy zdefiniować agentyagenty replikacjireplikacji (Replication Agents). Rozróżnia sięnastępujące agenty replikacji:

Agent migawkowy (Snapshot Agent) – tworzy pliki migawkowe każdejpublikowanej tablicy i procedury przechowywanej oraz rejestrujeinformacje definiujące status synchronizacji,Agent dziennika (Log Reader Agent) – dla każdej publikacjitransakcyjnej, przenosi zaznaczone transakcje z dziennika transakcjipublikatora do bazy zajmującej się dystrybucja danych,Agent dystrybucji (Distribution Agent) – posiadają go zarówno

i j i j j j i

95

subskrybenty migawkowe jak i transakcyjne; wykonuje on transakcje izadania związane z replikacją migawkową, przenosząc dane z bazyodpowiedzialnej za dystrybucję do subskrybenta.Agent uzgadniania (Merge Agent) – przekazuje, dla replikacjiuzgadnianej, wstępne zdania migawkowe przechowywane w baziepublikatora do subskrybenta i wprowadza pojawiające się późniejzmiany.

SSPOSOBY POSOBY UUAKTUALNIANIA AKTUALNIANIA DDANYCH ANYCH NNA A SSUBSKRYBENCIEUBSKRYBENCIE

•• Replikacja uzgadnianaReplikacja uzgadniana

•• Uaktualnianie natychmiastoweUaktualnianie natychmiastowe

•• Uaktualnianie kolejkoweUaktualnianie kolejkowe

96

•• Uaktualnianie natychmiastowe z kolejkowym Uaktualnianie natychmiastowe z kolejkowym

w przypadku braku połączeniaw przypadku braku połączenia

Page 49: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

49

Implementowanie replikacjiImplementowanie replikacji wymaga następujących działań:

Skonfigurowanie serwera jako publikatora lub dystrybutora.Po skonfigurowaniu jednego z serwerów systemu jako dystrybutora,Po skonfigurowaniu jednego z serwerów systemu jako dystrybutora,SQL Server tworzy folder Replication Monitor, umożliwiającyprzeglądanie publikatorów, publikacji, subskrypcji, rozkładu zadańreplikacji, zdarzenia oraz zapiski na temat przyszłych operacjikażdego z agentów replikacji. W celu skonfigurowania serwera jakodystrybutora wykonujemy, korzystając z bazy danych master,procedurę przechowywaną

di t ib tdi t ib t @@ dit ib tdit ib t ‘NAZWA SERWERA’‘NAZWA SERWERA’

97

sp_distributorsp_distributor @@ ditributorditributor == ‘NAZWA_SERWERA’‘NAZWA_SERWERA’Następnie tworzy się nową bazę dystrybucji procedurąprzechowywaną:

sp_adddistributiondbsp_adddistributiondb @@ databasedatabase == N’distribution’,N’distribution’,oraz definiuje jej wszystkie parametry.

Implementowanie replikacjiSkonfigurowanie serwera jako publikatora lub dystrybutora (c.d.)Należy zdefiniować, które z serwerów korzystających zdystrybutora będą publikatorami, wykorzystując proceduręprzechowywaną:przechowywaną:

sp_adddistpublishersp_adddistpublisher @@ publisherpublisher == N’NAZWA_SERWERA”,N’NAZWA_SERWERA”,@distribution_db@distribution_db == N’distribution’,N’distribution’,@working_directory@working_directory ==

‘‘\\\\NAZWA_SERWERANAZWA_SERWERA\\CSCS\\MSSQLMSSQL77\\ReplData’,ReplData’,

W zależności od systemu operacyjnego, powyższe procedury mogąk t ć d d tk h t ó

98

korzystać z dodatkowych parametrów.Przygotowanie bazy danych do replikacji – wykorzystujemy w tymcelu procedurę przechowywaną

sp_replicationdboptionsp_replicationdboption @dbname@dbname == Nazwa_bazy_danych,Nazwa_bazy_danych,@optname@optname == ‘publish’‘publish’ ,,@value@value == truetrue

Page 50: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

50

Publikowanie danychKaż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ęść.Publikowanie danych - dla każdej bazy danych serwera publikacji możnautworzyć jedną lub wiele publikacji.

Nie można mieszać zawartości baz danych.Dla każdej publikowanej bazy danych należy wybrać tablice lubprocedury przechowywane które będą artykułami publikacji orazzdefiniować rodzaj subskrypcji, a także początkową strategięsynchronizacji i odpowiednie formaty.

Oprócz tego możemy zdefiniować:

99

p g yczy 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,czy zawsze zachować kopię wykonanej transakcji na serwerze

Publikowanie danychczy dane będą publikowane w formacie SQL Servera, czy wformacie tekstowym lub innym subskrybenta,

Dodatkowo możnauaktywnić subskrybentów internetowychuaktywnić subskrybentów internetowych,zdefiniować dodatkowe opcje publikacji, takie jak nazwa i opis,zdefiniować rozkład wykonywania kolejnych replikacji dla agenta migawkowego.

W celu utworzenia publikacji migawkowej wykorzystujemyprocedurę sp_addpublication uruchamianą z parametrem@repl freq = ‘snapshot’, w postaci:

100

@repl_freq snapshot , w postaci:sp_addpublicationsp_addpublication @publication@publication == ‘SnapCustomers’,‘SnapCustomers’,@@ sync_methodsync_method == ‘native’,‘native’,@repl_freq@repl_freq == ‘snapshot’,‘snapshot’,............................................................................,,

Procedura ta tworzy zdjęcie o nazwie SnapCustomers.

Page 51: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

51

Publikowanie danychZdjęcie SnapCustomers należy uczynić zdjęciem danych izdefiniować jego właściwości procedurą:

sp_addpublication_snapshotsp_addpublication_snapshot @publication@publication == ‘SnapCustomers’‘SnapCustomers’,

T d i d ki l blik ji l i d d j d i jTe dwie procedury tworzą szkielet publikacji, ale nie dodają do niejżadnych artykułów. W celu dodania artykułów należy uruchomićprocedurę:

sp_addarticlesp_addarticle @publication@publication == ‘SnapCustomers’‘SnapCustomers’i zdefiniować w niej właściwości artykułu.

W celu utworzenia publikacji transakcyjnej wykorzystujemyprocedurę sp addpublication uruchamianą z parametrem

101

procedurę sp_addpublication uruchamianą z parametrem@repl_freq = ‘continuous’, w postaci:

sp_addpublicationsp_addpublication @publication@publication == ‘TransCustomers’,‘TransCustomers’,@restricted@restricted == ‘false’,‘false’,@@ sync_methodsync_method == ‘native’,‘native’,@repl_freq@repl_freq == ‘continuous’,‘continuous’,

Publikowanie danych

Następnie za pomocą procedury sp_addpublication_snapshottworzy się agenta migawkowego i dodaje artykuły, które będąpublikowane.publikowane.W celu utworzenia publikacji uzgadnianej wykorzystujemyprocedurę sp_addmergepublication, w postaci:

sp_addmergepublicationsp_addmergepublication @publication@publication == ‘MergeCustomers’,‘MergeCustomers’,@@ sync_methodsync_method == ‘native’,‘native’,............................................................................,,

N t i t i dj i d h i ł i d i d i

102

Następnie tworzy się zdjęcie danych i uzupełnia o odpowiednieartykuły, analogicznie jak przy publikacji migawkowej.

Page 52: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

52

Subskrybowanie publikacji

Subskrybowanie publikacji oznacza, że serwer subskrypcjizgadza się przyjąć replikę publikacji artykułu od serwerapublikacji.

Należy zdefiniować rodzaj subskrypcji (subskrypcjainicjowana przez publikatora, czy przez subskrybenta).W czasie definicji opcji subskrypcji, wykonywana jestautomatycznie synchronizacja tworząca kopię bazydanych publikatora u subskrybenta.

103

Po jej wykonaniu można zdefiniować, w jakichodstępach czasu będą wykonywane kolejnesynchronizacje.

Subskrybowanie publikacjiPrzy wyborze opcji subskrypcji inicjowanej przez publikatornależy najpierw skonfigurować połączenie z serweremsubskrybenta, a następnie uaktywnić serwer subskrybenta, dla

b lik jipotrzeb replikacji.Przy wprowadzeniu zmian w serwerze publikatora, agentdystrybucji będzie próbował połączyć się z subskrybentem, wcelu przesłania tych zmian. Jeśli subskrybent nie jest dostępny,to agent ponowi próbę 10 razy, a następnie prześle informacje obłędzie do monitora replikacji.Przy przesyłaniu danych w określonych odstępach czasu, agent

104

Przy przesyłaniu danych w określonych odstępach czasu, agentdystrybucji spróbuje przesłać zmiany w następnym cyklu.Wprowadzone zmiany są przechowywane w bazie dystrybucjido momentu, gdy zostaną przesłane do wszystkichsubskrybentów, lub aż upłynie zdefiniowany okres ichprzechowywania.

Page 53: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

53

Subskrybowanie publikacjiPrzy wyborze opcji subskrypcji inicjowanej przezsubskrybenta należy najpierw wybrać serwer, a następniewybrać bazę danych, z której będą pobierane dane dos bskr pcjisubskrypcji.Następnie należy zdefiniować rejestrację dla agentasynchronizacji i bazę danych, w której będzie tworzonasubskrypcja (może to być nowa baza danych).Można rozpocząć subskrypcję natychmiast lubzdefiniować, aby była wykonywana w określonych

d h

105

odstępach czasu.Subskrypcja może być zdefiniowana połączeniem międzyserwerami lub anonimowa.W subskrypcji zdefiniowanej informacje o każdymsubskrybencie przechowywane są przez publikatora.

Subskrypcja anonimowaSubskrypcja anonimowa (anonymous subscription) stosowana jestprzy dużej liczbie subskrybentów, oraz przy subskrypcji zapośrednictwem Internetu. Jest ona zawsze inicjowana przezsubskrybenta, ale w tym przypadku serwer nie może być wcześniejy y p yp y jzarejestrowany w publikatorze jako subskrybent. Wówczas zostanieona automatycznie zarejestrowana jako anonimowa.

Do usunięcia subskrypcji inicjowanej przez subskrybenta, w tymrównież subskrypcji anonimowej stosowane są proceduryprzechowywane:

sp_dropsubscriptionsp_dropsubscription @publication@publication == ‘NazwaBD_Customers’,‘NazwaBD_Customers’,

106

@@ articlearticle == ‘all’,‘all’,@@ subscribersubscriber == ‘Hasło_subskrybenta’,‘Hasło_subskrybenta’, (lub(lub ‘anynomous’)‘anynomous’)@destination_db@destination_db == ‘NazwaBD’‘NazwaBD’

Do usunięcia subskrybentasp_dropsubscribersp_dropsubscriber @subscriber@subscriber == ‘Hasło_subskrybenta‘Hasło_subskrybenta

Page 54: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

54

Zabezpieczenie replikacjiSQL Server posiada wbudowane opcje zapewniającebezpieczeństwo replikacji, takie jak:

specjalne role dla akcji replikacji,definiowanie loginów uprawnionych do publikacjidefiniowanie loginów uprawnionych do publikacji,ochrona dystrybutora za pomocą hasła,system zabezpieczeń dla subskrybentów, analizujących dane wtrybie ciągłym.

Przy konfiguracji serwera dla publikacji i dystrybucjiautomatycznie tworzona jest lista dostępu do publikacji. Domyślniejest to distributor admin oraz db owner. Listę tę można

107

jest to distributor_admin oraz db_owner. Listę tę możnazmodyfikować za pomocą procedur przechowywanych:

sp_grantpublicationsp_grantpublication @publication@publication == ‘pubs’‘pubs’ ,,@login@login == ‘public’‘public’

lub sp_revoke_publication_accesssp_revoke_publication_access @publication@publication == ‘publikacja’‘publikacja’ ,,@login@login == ‘login’‘login’

Zabezpieczenie i monitorowanie replikacji

Jeśli publikator i dystrybutor są na osobnych serwerach, toodpowiednie loginy muszą pojawić się na obu listach dostępu.Można ograniczyć dostęp do dystrybutora dołączając do rejestracjidistributor admin odpowiednie hasło, przy pomocy procedurydistributor_admin odpowiednie hasło, przy pomocy proceduryprzechowywanej sp_changedistributor_password.Monitorowanie replikacji - do monitorowanie replikacji służyReplication Monitor, aktywowany przy konfiguracji serwera jakodystrybutora. Pozwala on na:

przeglądanie listy publikatorów, subskrybentów i publikacji,przeglądanie rozkładów replikacji w agentach replikacji oraz

108

p g ą p j g p jmonitorowanie ich statusu, a także przeglądania historiiwykonanych operacjikonfigurowanie i monitorowanie alarmów replikacji

Może być on obsługiwany za pomocą interfejsu graficznego lub zwiersza poleceń.

Page 55: Maria Dems Bazy rozproszone danych/Bazy rozproszone.pdf · baz danych ż kik Baza scentralizowana: sprzęt oprogramowanie i użytkownik BD, FU SO, SZBD u ytkownik użytkownik 2 ...

Maria Dems

55

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 naosobnych komputerach,Serwer dystrybucji powinien mieć co najmniej 64 MB pamięcioperacyjnej,Przy większej liczbie subskrybentów należy zmniejszyć

t tli ść d t b ji h d h

109

częstotliwość dystrybucji nowych danych.Poszczególne agenty dystrybucji nie powinny zaczynać pracyjednocześnie,Należy ograniczyć ilość zapisków dotyczących przeszłychoperacji i czas przechowywania ich w dzienniku

Usprawnienie działania replikacji

O ile jest to możliwe, należy definiować subskrypcjęinicjowaną przez subskrybenta, a zwłaszcza subskrypcjęanonimową co odciąża serwer publikacji i dystrybucjianonimową, co odciąża serwer publikacji i dystrybucji,O ile jest to możliwe, należy korzystać z komputerówwieloprocesorowych, co pozwoli na uruchomieniewielowątkowych agentów replikacji,Należy optymalizować bazę danych pod kątemreplikacji. Przy definiowaniu artykułów należyograniczyć dzielenie poziome bazy danych bo powoduje

110

ograniczyć dzielenie poziome bazy danych, bo powodujeto spowolnienie replikacji.