W jaki sposób transakcyjne replikacja programu Works

replikacja transakcyjnej jest implementowana przez SQL Server Agent migawka, Agent odczytywania dziennika i Agent dystrybucji. migawka Agent przygotowuje migawkę plików zawierających schemat oraz dane z opublikowanych tabel i obiektów bazy danych, przechowuje pliki w folderze migawka i rekordy w bazie danych dystrybucji na dystrybutor zadania synchronizacji.

Agent odczytywania dziennika monitoruje dziennik transakcji o każdej bazy danych, skonfigurowane dla replikacja transakcyjnej i kopiuje transakcje zaznaczone do replikacja z dziennika transakcji do baza danych dystrybucji, która działa jako wiarygodne kolejki magazynowania i przekazywania.Agent dystrybucji kopiuje pliki migawka początkowe z folderu migawka i transakcji, przechowywanych w tabelach baza danych dystrybucji do subskrybentów.

Przyrostowe zmiany, dokonane w przepływu Wydawca do subskrybentów zgodnie z harmonogramem agenta dystrybucji, które można uruchomić nieprzerwanie, aby minimalny opóźnienie, lub w określonych w harmonogramie odstępach czasu.Ponieważ zmiany do danych muszą być wykonywane przez wydawcę (podczas replikacja transakcyjnej jest używany bez bezpośredniego uaktualniania lub opcje aktualizowania w kolejce), unika się konfliktów aktualizacji.Ostatecznie wszystkich subskrybentów osiągną tej samej wartości jak Wydawca.Jeśli kolejce opcje aktualizowania lub natychmiastowej aktualizacji są używane z replikacja transakcyjnej, aktualizacje mogą być dokonywane przez subskrybent i kolejce aktualizacji może pojawić się konflikty.Aby uzyskać więcej informacji zobacz W jaki sposób aktualizowalną Praca subskrypcji.

Na poniższej ilustracji przedstawiono podstawowe składniki replikacja transakcyjnej.

Transactional replication components and data flow

Początkowe zestawów danych

Zanim nowe subskrybent replikacja transakcyjnej mogą odbierać zmiany przyrostowe od Wydawca, subskrybent musi zawierać tabele z tej samej schemat oraz dane jako tabele przez wydawcę.Początkowego zestawu danych jest zazwyczaj tworzona przez agenta migawka i dystrybuowane i zastosowane przez agenta dystrybucji migawka.Początkowego zestawu danych mogą również być dostarczane za pomocą kopia zapasowa lub w inny sposób, takie jak SQL Server Integracja usług. Aby uzyskać więcej informacji zobacz Inicjowanie subskrypcja.

Gdy migawek są dystrybuowane i stosowane do subskrybentów, wpływa to tylko tych subskrybentów oczekiwanie początkowe migawki.Nie wpływa to na innych subskrybentów do publikacja (takie, które już zostały zainicjowane).

Równoczesne przetwarzania migawka

replikacja migawka udostępnionych blokady są umieszczane na wszystkie tabele opublikowanych jako część replikacji na czas generowania migawka.Uniemożliwi aktualizacje dokonywany w tabelach publikacji.Równoczesne migawka przetwarzania domyślną z replikacja transakcyjnej nie przechowuje blokad udział w miejscu podczas generowania całego migawka, która pozwala użytkownikom na kontynuowanie pracy bez przerw w czasie replikacja tworzy migawka początkowa plików.

Agent migawka

Za pomocą których migawka Agent implementuje migawka początkowego w replikacja transakcyjnej procedury są te same procedury, używane w replikacja migawkę (z wyjątkiem sytuacji opisanych powyżej w odniesieniu do przetwarzania równoczesnych migawka).Aby uzyskać więcej informacji zobacz Jak działa replikacja migawka.

Po wygenerowaniu migawkę plików można je przeglądać za pomocą folderu migawka Microsoft Eksplorator Windows.

Modyfikowanie danych i Agent odczytywania dziennika

Agent Reader dziennik jest uruchamiany na Dystrybutor, to zazwyczaj działa w sposób ciągły, ale można także uruchomić zgodnie z harmonogramem, można ustalić.Podczas wykonywania, Agent odczytywania dziennika najpierw odczytuje dziennik transakcji publikacja (tego samego dziennika bazy danych używane do śledzenia transakcji i odzyskiwanie podczas standardowych SQL Server Bazy danych operacji Engine) i identyfikuje wszystkie instrukcje INSERT, UPDATE i DELETE lub inne modyfikacje wprowadzone do danych w transakcjach, które zostały oznaczone do replikacja. Następnie agent kopiuje te transakcje partii do baza danych dystrybucji na dystrybutor.Agent odczytywania dziennika używa wewnętrznego procedura przechowywana sp_replcmds uzyskać następnego zestaw poleceń do replikacja z dziennika.baza danych dystrybucji staje się kolejki magazynowania i przekazywania, z którego są wysyłane do subskrybentów.Tylko zatwierdzone transakcje są wysyłane do baza danych dystrybucji.

Po całej partia transakcji, które zostały pomyślnie zapisane do baza danych dystrybucji, jest zobowiązana.Po zatwierdzanie każdej partia polecenia dystrybutor wywołuje Agent odczytywania dziennika sp_repldone , aby oznaczyć, gdzie ostatnio replikacja została ukończona.Agent znaków na końcu wierszy dziennik transakcji, które są gotowe do być czyszczona.Nie są usunięte wiersze wciąż oczekuje na być replikowane.

Polecenia transakcji są przechowywane w bazie danych dystrybucji, dopóki nie są one propagowane do wszystkich subskrybentów lub do czasu osiągnięcia maksymalnej dystrybucji okres zachowywania.Tak jak subskrybenci otrzymują w tej samej kolejności, w jakiej były stosowane przy transakcjach Wydawca.

Agent dystrybucji

Agent dystrybucji uruchamia dystrybutor dla subskrypcji wypychanych i subskrybenta dla ściągać subskrypcji.Agent powoduje przeniesienie transakcji z baza danych dystrybucji do subskrybent.Jeśli subskrypcja jest oznaczony do sprawdzania poprawności, Agent dystrybucji również sprawdza, czy dane Wydawca i subskrybent są takie same.Aby uzyskać więcej informacji zobacz Validating Replicated Data.