28 kwietnia 2011

Replikacja transakcyjna - Architektura (Część I)

Replikacja transakcyjna


Replikacja Transakcyjna (Transactional Replication) jest jednym z kilku rodzajów replikacji dostępnych w MS SQL Server. Replikacja jest wykorzystywana do przesyłania danych pomiędzy bazami danych, które mogą znajdować się na różnych serwerach, aczkolwiek nic nie przeszkadza scenariuszowi gdzie bazy danych (źródłowa i docelowa) znajdowałyby się na tym samym serwerze. Bazę danych, która jest źródłem danych replikowanych będę nazywał bazą publikacyjną (publication database), natomiast bazę danych do której dane są replikowane będę nazywał subskrypcyjną bazą danych (subscription database). Mechanizm replikacji transakcyjnej działa w pewnym sensie bardzo granularnie. Każda zatwierdzona  transakcja  (committed transaction) jest oddzielnie zapisywana w bazie dystrybucyjnej (distribution database) i propagowana do subskrybentów przez  agenta dystrybucji. W skład replikacji transakcyjnej wchodzi kilka komponentów. Zrozumienie roli poszczególnych z nich jest kluczowe dla zrozumienia całej architektury.



Dystrybutor


Dystrybutor (Distributor) - instancja SQL Servera, która pośredniczy w przekazywaniu poszczególnych transakcji z publikacji (publication) do subskrypcji (subscrption). Dystrybutor wykorzystuje bazę dystrybucyjną (distribution database) do przechowywania potrzebnych informacji do funkcjonowania replikacji.

Agenci


Replikacja transakcyjna opiera się w głównej mierze na tzw. agentach. Są to exe'ki, które mogą być uruchamiane z wiersza poleceń, aczkolwiek w większości scenariuszy uruchamia je SQL Server Agent za pomocą Jobów. Poniżej znajduje się lista agentów biorących udział w opisywanym rodzaju replikacji transakcyjnej. Lista ta nie uwzględnia wszystkich agentów związanych z replikacją w MS SQL Server.

Log Reader Agent - agent (logread.exe) który jest odpowiedzialny za cykliczne odczytywanie logu transakcyjnego publikacyjnej bazy danych w poszukiwaniu transakcji przeznaczonych do replikacji i przekazywaniu ich do Dystrybutora.

Snapshot Agent - agent (snapshot.exe) odpowiedzialny za generowanie snapshotów obiektów bazy publikacyjnej ( jest np. wykorzystywany przy inicjalizowaniu subskrypcji ze snapshotów).

Agent Dystrybucji (Distribution Agent) - agent (distrib.exe) odpowiedzialny za aplikowanie replikowanych transakcji oraz snapshotów do tabel subskrybenta. Zródłem danych dla agenta jest baza dystrybucyjna. Agent może być uruchamiany na subskrybencie (Pull Subscription) albo na dystrybutorze (Push Subscription).

Publikacja/Subskrypcja


Poza standardowymi komponentami replikacji możemy rozróżnić następujące elementy składowe architektury replikacji powiązane bezpośrednio z replikowanymi danymi.

Publikacyjna baza danych (Publisher lub Publication Database) - baza danych, która udostępnia dane do replikacji.

Subskrypcyjna baza danych (Subscriber lub Subscription Database) - baza danych, do której   dane  są replikowane.

Artykuł publikacji (Publication Article) - definicja zbioru danych wystawionego do publikacji. Publikacja może zawierać wiele artykułów.

Subskrypcja (Subscription) - rodzaj "połączenia" pomiędzy publikacyjną bazą danych i subskrybentem.

Brak komentarzy:

Prześlij komentarz

Uwaga: tylko uczestnik tego bloga może przesyłać komentarze.