PRACA MAGISTERSKA - bazy danych.doc

(2119 KB) Pobierz
Synchronizacja i replikacja w hurtowniach danych



Katedra Baz Danych

 
 
 
        Dawid Borek

nr albumu s3188/M

 

 

 

 

 

Synchronizacja i replikacja danych,

z zastosowanie do studiów internetowych PJWSTK.

 

 

 

 

Praca napisana pod kierunkiem

Prof. dr Lecha Banachowskiego

 

 

 

WARSZAWA 2004

 

 

Synchronizacja i replikacja danych,              1

z zastosowanie do studiów internetowych PJWSTK.              1

1.              Wstęp.              2

1.Opis dziedziny i problemu.              5

2.              Replikacja danych.              7

3.              Zastosowanie replikacji i synchronizacji.              8

4.              Role serwera w środowisku replikacji danych.              10

5.1              Replikowane dane.              11

5.2              Filtrowanie danych.              12

5.              Środowiska replikacji.              14

6.1              Centralny publikator.              14

6.2              Centralny publikator ze zdalnym dystrybutorem.              15

6.3              Publikujący subskrybent.              16

6.4              Centralny subskrybent.              17

6.5              Wiele publikatorów lub wiele subskrybentów.              18

6.6              Modyfikujący subskrybent.              19

7.              Typy replikacji              20

8.              Subskrypcja – metody realizacji.              24

Agenci replikacji.              25

Agent odczytu dziennika transakcji (Log Leader Agent).              25

Agent migawki (Snapshot Agent).              26

Agent dystrybucji (Distribution Agent)              28

Agent scalający (Merge Agent)              28

9. EDU@PJWSTK.              29

Testowanie replikacji danych.              36

Przebieg procesu testowania.              37

Microsoft SQL Server 2000.              47

Bibliografia.              49

 

 

 

 

 

 

 

 

 

1.   Wstęp.

 

Nieustanny rozwój ludzkości generuje ogromną ilość informacji. Wiek XIX i XX były nazywane złotymi wiekami rozwoju i nauki, zaś wiek XXI nazywany jest wiekiem informacji.

Każde nowe osiągniecie ludzkości, wynalazek, nowe prawo naukowe traktujemy jako nową informację, która jeszcze dokładniej opisuje nasz świat i pozwala lepiej go zrozumieć. Właśnie dzięki natychmiastowej wiedzy na temat najnowszych osiągnięć ludzkości, jesteśmy w stanie tak szybko i właściwie reagować na zmiany, które nie zawsze blisko nas zachodzą. To dzięki Internetowi – ogromnej bazie danych – możemy natychmiast korzystać z wiedzy innych ludzi. Nigdy jeszcze w historii ludzkości nie mieliśmy tak wielkich możliwości. Jednak problem pojawia się, kiedy informacji jest za dużo i nie jesteśmy w stanie przyswoić wszystkich danych dotyczących poszukiwanych informacji. Powód jest prosty – informacji jest za wiele, mało konkretne, lub one zbyt obszerne, często zdarza się tak, że dostępne informacje w momencie swojej publikacji są już przestarzałe. Dlatego ważne dla funkcjonowania ludzkości dane są cenniejsze niż wszelkie bogactwa, to one opisują nasze życie i wytyczają nowe szlaki w naszym rozwoju.

Nie jest możliwe wypisanie wszystkich kluczowych informacji potrzebnych ludzkości. Każdy człowiek potrzebuje do swojej pracy, rozwoju, informacji na dany, konkretny temat.

Dlatego coraz częściej spotykamy się z handlem informacją, sprzedawaniem konkretnych danych.

Dzisiejszy świat nie istniałby bez informacji, które zmieniają się cały czas. Przykładem mogą być notowania giełdowe, kursy walut, wiadomości kluczowe dla działania instytucji, itp..

Te i wiele innych newralgicznych informacji musimy posiadać a co najważniejsze musimy posiadać je jak najbardziej aktualne. W wielu przypadkach nie możemy pozwolić sobie na używanie danych, co do których nie jesteśmy pewni, że są aktualne i konkretne.

I tu właśnie przychodzą na z pomocą ogromne bazy danych, które cały czas ewoluują, setki tysięcy ludzi pracują tylko nad tym, aby dane te były trafne i aktualne, a informacje jakie niosą konkretne. Dane, które są kluczowe musza być dostępne w każdym miejscu na ziemi i w każdej chwili.

Dlatego tak ważne jest ich poprawne rozpropagowywanie, natychmiastowe kopiowanie ich do węzłów, z których będą dostępne dla wszystkich, którzy chcą je otrzymać. Same dane są nic nie warte, jeśli nie można z nich skorzystać, wiec najważniejsze jest udostępnienie ich zainteresowanym ludziom.

Informacje bez konkretnego przeznaczenia nie są wykorzystywane i tracą swoja wartość, więc tak ważne jest, aby informacja zawsze była dostępna i aktualna.

Do tego właśnie celu służy replikacja, dzięki tej funkcji dostajemy możliwość dowolnego kopiowania danych ze źródła posiadającego aktualne dane, dzięki czemu możemy na bieżąco wiedzieć, co dzieje się w około nas.

Dzięki zastosowaniu replikacji informacje zostają przesłane do dowolnej ilości subskrybentów (serwerów podległych), dzięki czemu dostęp do nich staje się szybszy i łatwiejszy.

Funkcjonowanie wielu dziedzin życia jest zależne od sprawnego przepływu danych. Dzięki ciągłości i niezawodności w przepływie informacji mogliśmy wyprzedzić setki lat ewolucji, zyskaliśmy ogromna wygodę i bezpieczeństwo.

 

Głównym celem mojej pracy jest zaprojektowanie systemu replikacji i synchronizacji danych dla bazy danych EDU@PJWSTK. System Studiów Internetowych EDU@PJWSTK jest przeznaczony do prowadzenia nauczania przez Internet. Wraz z powstaniem nowych placówek naszej uczelni w Polsce jak i w Europie istnieje potrzeba zaprojektowania systemu wymiany danych pomiędzy różnymi filiami szkoły. Praca moja ma na celu analizę danych EDU@PJWSTK oraz przedstawienie konkretnych rozwiązań, które w przyszłości mogą zostać zrealizowane.

W pracy przedstawię najważniejsze zagadnienia związane z dystrybucją danych bazy EDU@PJWSTK. Praca będzie miała na celu przedstawienie procesu synchronizacji danych z jednego lub wielu źródeł. Wskaże jak ważne jest właściwe zarządzanie danymi, kiedy i jak należy uaktualniać informacje. Będę starał się przedstawić przypadki, w których natychmiastowe aktualizowanie danych jest niezbędne dla poprawnego działania systemu, jak również takie przypadki, kiedy dane z wielu źródeł będą scalane i aktualizowane w jednym centralnym głównym źródle. W pracy pokaże jak ważna może być pojedyncza zmiana informacji dla utrzymania spójności złożonego systemu. Wskaże dane, które są newralgiczne i które nie mogą zostać przekłamane jak i takie, których zmiana nie ma skutku natychmiastowego w całym systemie.

Replikacja jest to proces kopiowania i utrzymywania obiektów (np. tabel) w połączonych bazach danych, tworzących jedno środowisko.

W pracy przedstawię różne typy środowisk replikacji (replikacja transakcyjna, replikacja, migawkowa, replikacja scalająca), przebieg propagacji zmian, obiekty wspomagające replikację, a także metody wykrywania i rozwiązywania konfliktów replikacji.

 

1.Opis dziedziny i problemu.

 

Głównym problemem mojej pracy jest analiza danych bazy danych EDU@PJWSTK i na podstawie przeprowadzonej analizy dobór odpowiedniej metody replikacji i synchronizacji danych.

Baza danych EDU@PJWSTK jest integralną częścią systemu Studiów Internetowych Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych w Warszawie. Ten nowatorski system Studiów Internetowych EDU@PJWSTK daje studentom możliwość uczenia się w dowolnym momencie, całą dobę, 7 dni w tygodniu, przez cały semestr. Umożliwia studentom pozyskiwanie informacji potrzebnych w celach nauki, oferuje możliwość przeprowadzania testów, egzaminów, kontaktu z wykładowcami, wymiany informacji pomiędzy studentami oraz wiele innych . System EDU@PJWSTK przygotowany jest z myślą o ludziach którzy nie mogą pozwolić sobie na normalny system studiowania.

              Sercem systemu EDU@PJWSTK jest baza danych w której zapisane są wszystkie informacje odnośnie działania systemu, studentów zarejestrowanych w systemie, wyników ich nauki oraz materiałów z których powinni korzystać. System posiada wiele funkcji przydatnych wykładowcom do analizy pracy studentów. Szersze informacje na temat danych w systemie EDU@PJWSTK przedstawię w rozdziale.

Wraz z powstaniem nowych fili Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych zaistniała potrzeba synchronizacji i replikacji danych z różnych źródeł do centrali uczelni w Warszawie. W kolejnych rozdziałach przedstawię dokładnie zasadę działania systemu replikacji danych jak również wskaże argumenty przemawiające za konkretnymi rozwiązaniami replikacji i synchronizacji danych.

Replikacja i synchronizacja danych to procesy których nie da się wdrożyć nie wykonując analizy danych dla których będą przeprowadzane. Proces replikowania danych jest autonomiczną sprawą każdej bazy danych. To jakie dane i w jakim środowisku te dane działają ma podstawowe znaczenia na proces konfiguracji replikacji. Synchronizacja danych jest zaś procesem wymagającym bardzo dokładnej analizy danych, odpowiednia analiza danych w tym przypadku jest kluczową sprawą.

Nie można założyć że odpowiedni proces replikacji bądź synchronizacji danych będzie właściwy nie wykonując testów i pomiarów, jak również nie biorąc pod uwagę zagrożeń które mogą wyniknąć z niewłaściwego doboru metody propagacji danych do innych źródeł.

Moja praca jest pewnym rozpoczęciem problemu replikacji danych, gdyż proces replikacji i synchronizacji danych ewoluuje wraz ze zmianą bądź rozszerzeniem bazy danych o nowe funkcje. Replikacja zmienia się również jeśli zachodzi potrzeba zmiany środowiska w jakim pracują dane bądź zastosowań danych.

              System EDU@PJWSTK jest cały czas poszerzany o nowe funkcje, moduły. Polsko-Japońska Wyższa Szkoła Technik Komputerowych tworzy nowe filie. Program nauczania studentów też zmienia się co jakiś czas. Te zmiany będą powodować ciągłą ewolucje systemów replikacji i synchronizacji danych, które w przyszłości będą tworzone dla potrzeb naszej uczelni.

Praca moja jest więc tylko wstępem, fundamentem na którym w przyszłości może powstać skomplikowany system wymiany informacji, który będzie obejmował kilka europejskich stolic.

 

2.   Replikacja danych.

 

W sposób bardziej zrozumiały można przestawić replikację jako lustrzane odbicie pewnych wartości w dowolnym innym miejscu. Replikowane dane zachowują podstawowe wartości ACID. Mówiąc o replikacji mamy na myśli kopiowanie pewnego zbioru danych z pewnego miejsca czyli źródła, do miejsca docelowego. Źródłem danych może być pojedyncza tabela, baza lub wiele baz danych, to samo tyczy się miejsca docelowego, które nazywamy repliką.

Replikację danych najczęściej wykorzystuje się w systemach rozproszonych baz danych, gdzie z jednego zdalnego węzła kopiuje się dane do innych zdalnych węzłów. Celem replikacji w tych systemach jest, po pierwsze, skrócenie czasu dostępu do danych. W tym przypadku uniezależniamy się od przepustowości i aktualnego obciążenia sieci, oraz od wydajności zdalnych węzłów i ich aktualnego obciążenia. Po drugie, dzięki replikacji uniezależniamy się od czasowej niedostępności węzłów i awarii sieci.

Wadą replikacji jest konieczność uaktualniania repliki w przypadku zmian w tabelach źródłowych. Taki proces uaktualniania będę również nazywał synchronizacją (ang. synchronization) lub odświeżaniem (ang. refreshing) repliki.

Replikacja wymaga ut...

Zgłoś jeśli naruszono regulamin