dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej Kontakt: piotr.dziwinski@kik.pcz.pl Replikacje 2 1
Podstawowe pojęcia Strategie replikacji Agenci replikacji Typy replikacji Modele replikacji Narzędzia replikacji 3 Tworzenia replikacji (wydawca) Tworzenia replikacji (subskrybent) Testowanie replikacji Użycie monitora replikacji 4 2
Jaki jest cel replikacji? Co to jest replikacja? 5 Publisher (wydawca) Serwer dostarczający źródło danych dla subskrybentów Article (artykuł) Zbiór danych istniejących jako część publikacji replikacji Publication (publikacja) Jeden lub więcej artykułów stanowiących jednostkę replikacji Distributor (dystrybutor) Serwer odpowiedzialny za dostarczanie danych do subskrybentów 6 3
Subscriber (subskrybent) Serwer lub klient otrzymujący publikacje Push Replication Metoda replikacji za pomocą której, dostawca dostarcza dane do subskrybenta Pull Replication Metoda replikacji za pomocą której subskrybent żąda danych od dostawcy Publisher/Distributor Serwer publikujący działający jako własny dostawca 7 Czy użytkownicy wymagają dostępu do danych które są całkowicie aktualne, czy też mogą korzystać z danych starczych (kilku godzinnych)? Czy użytkownicy będą modyfikować dane, które później muszą być zsynchronizowane z oryginalnym źródłem danych? Czy dane pochodzą z jednego źródła czy z wielu źródeł dostarczając dane dla centralnej bazy danych? 8 4
Snapshost Agent Wszystkie typy replikacji, odpowiedzialny za przygotowanie plików inicjalizacyjnych i informacji o schematach dla publikowanych artykułów. Dane są zapisywane do katalogu zrzutów, dane synchronizacyjne są zapisywane do bazy danych dystrybucji. Jest to podstawowy agent replikacji dla pozostałych agentów. Log Reader Agent Używany w przypadku replikacji transakcyjnej. Jeżeli transakcje są częścią publikacji zapisanej do logów transakcji, agent kopiuje te transakcje do bazy danych dystrybucji dostawcy. Pozwala to na wykonanie ich w bazach danych poszczególnych dostawców. 9 Distribution Agent Używany zarówno przy zrzucie oraz replikacji transakcyjnej bazy danych. Agent stosuje zrzuty, transakcje dla subskrybentów. W przypadku metody Pull Replication agent jest uruchamiany u subskrybenta, Push Replication u dostawcy. Merge Agent Używany w przypadku replikacji scalania, dostarcza początkowy zrzut do subskrybenta. Każda subskrypcja ma swojego agenta który obsługuje scalanie danych między wydawcą a subskrybentem. Jest uruchamiany na dostawcy w przypadku subskrypcji wysyłania danych, u subskrybenta w przypadku pobierania danych. 10 5
Queue Reader Agent Używany w przypadku specyficznego typu replikacji transakcyjnej, która odświeża subskrypcje. W przypadku aktualizacji od subskrybenta do wydawcy, aktualizacje są umieszczane w kolejce, następnie przetwarzane jako jednostki. Agent pracuje u dostawcy. Wymagana jest jedynie jedna instancja. 11 Replikacja transakcyjna Jak tylko transakcja jest zatwierdzona, dane które uczestniczą w replikacji transakcyjnej są do dystrybucyjnej bazy danych (do dystrybutora). W kolejnym kroku subskrybent może otrzymać przeprowadzone transakcje, następnie zastosować zmiany dla skopiowanych danych. 12 6
Replikacja transakcyjna standardowa Używana w przypadku, gdy subskrybent akceptuje dane w trybie tylko do odczytu. Zabezpiecza przed przeniesieniem zmian danych od subskrybenta do dostawcy. Nawet jeżeli w danych subskrybenta nastąpią zmiany, nie zostaną one przeniesione do dostawcy (zmiany w danych występują wyłącznie lokalnie). W topologii hierarchicznej W topologii równorzędnej 13 Replikacja transakcyjna w topologii hierarchicznej Występuje jeden dostawca oraz wiele subskrybentów. Subskrybenci mają potrzebę wprowadzania zmian do replikowanych danych, w tym przypadku aktualizacje są wysyłane do oryginalnego dostawcy. Lokalny dostawca wprowadza zmiany poprzez dystrybucję do wszystkich subskrybentów. 14 7
Replikacja transakcyjna w topologii równorzędnej Występuje w przypadku gdy wszyscy uczestnicy są równocześnie subskrybentami i dostawcami. Implementacja ta umożliwia tworzenie rozproszonego środowiska bazy danych, w którym wszystkie SQL Serwery dostarczają i otrzymują aktualizacje z niskimi opóźnieniami. 15 Replikacja migawki Używana w przypadkach gdy aktualizacje mogą być wprowadzane ze znacznymi opóźnieniami do wydawcy, następnie do wszystkich subskrybentów. Migawki całego artykułu są tworzone okresowo, następnie stosowane dla subskrybenta jako jednostki. Tworzona migawka jest zapisywana w postaci pliku na dysku, musi być ona dostępna dla wystawcy, dostawcy oraz subskrybenta. W przypadku rozdzielnych serwerów należy podać prawidłową ścieżkę sieciową. 16 8
Replikacja migawki Podstawową zaletą replikacji migawki w przypadku środowiska asynchronicznego jest opóźnienie pomiędzy wydawcą i subskrybentem. Wadą za każdym razem cała migawka jest kopiowana prze co może niewspółmiernie obciążać zasoby w przypadku dużych ilości danych Można zezwolić na kompresję pliku migawki, co znacząco redukuje użycie dysku oraz czas transferu między wydawcą a subskrybentem. 17 Replikacja przez scalanie Wykorzystywana w przypadku kiedy zadania są realizowane w sposób niezależny, użytkownicy i aplikacje okresowo wymagają połączeń w celu synchronizacji danych. Często używana w architekturze klient-serwer. Replikacja ta jest błogosławieństwem (umożliwia uzyskanie dostępu offline do krytycznych danych) i przekleństwem umożliwia przeprowadzenie synchronizacji z wielu subskrybentów. 18 9
Replikacja przez scalanie Wielu subskrybentów w trybie offline może próbować synchronizować zmiany do tych samych danych!! Pomocny jest mechanizm śledzenia zmian, który określa jak rozwiązać problem wielu subskrybentów np. poprzez wagi autorytetu. Problem ten można rozwiązać także programowo uwzględnić inne kryteria zależne od modelowanego problemu. 19 Replikacja Oracle SQL Serwer wspiera replikację obiektów Oracle, wymaga SQL Serwera min. 2005 i Oracle 9i. Generalnie wspiera dowolnego wystawcę Oracle bez względu na platformę bazową 20 10
Dostawca/wiele subskrybentów W tym przypadku oryginalne dane pochodzą z jednej lokalizacji Stosuje się w celu umożliwienia dostępu do danych z odległych lokalizacji 21 22 11
Wiele dostawców/jeden subskrybent W przypadku gdy, wiele serwerów śledzi i aktualizuje dane, dane muszą być skonsolidowane na jednym serwerze. 23 24 12
Wiele dostawców/wiele subskrybentów W przypadku współdzielenia danych przez wszystkich. Lokalne bazy danych zawierają informacje o lokalnych i odległych operacjach. Każdy dostawca dostarcza aktualizacji występujących lokalnie do wszystkich innych partnerów replikacji (subskrybentów). 25 26 13
Filtrowanie Statyczne filtry wierszy Filtry kolumn Sparametryzowane filtry wierszy Filtry złączeń 27 Statyczne filtry wierszy Wykorzystywane we wszystkich typach replikacji, definiowane u dostawcy, umożliwiają ograniczenie liczby wierszy, które są dostępne poprzez zastosowanie klauzuli WHERE 28 14
Filtry kolumn Używane do usuwania wybranych kolumn dla wszystkich wierszy w publikacji kolumn które nie powinny być udostępnione subskrybentom Wykorzystywane we wszystkich typach replikacji 29 Sparametryzowane filtry wierszy Dostępne tylko w przypadku replikacji scalającej, podobne do statycznych filtrów wierszy, Umożliwiają wielokrotny podział danych (dla wielu subskrybentów) bez tworzenia wielu publikacji. Podział danych zawartych w jednej tabeli dla wielu subskrybentów przy użyciu jednej publikacji 30 15
Filtry złączeń Zastosowanie ograniczone do replikacji scalania, jest wspólnie używane do rozszerzania danych w publikacjach, które używają filtrów sparametryzowanych. Filtry te są podobne do filtrów złączeń zapytań SQL. 31 32 16
34 35 17
Pytania, sugestie: piotr.dziwinski@kik.pcz.pl Dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej 37 18