Udostępnij za pośrednictwem


W jaki sposób aktualizowalną Praca subskrypcji

Można aktualizować subskrypcji dla replikacja transakcyjnej Zezwalaj na subskrybentów do replikowania zmian do Wydawca.Wyzwalacze są dodawane do tabel opublikowanych w baza danych subskrypcja, i gdy dokonywane są zmiany przez subskrybent, uruchomieniu wyzwalacza:

  • Natychmiastowe aktualizowanie subskrypcji zmiany te będą propagowane bezpośrednio do Wydawca i stosowane przy użyciu Microsoft Koordynator transakcja rozproszona (MSDTC).

  • Kolejce subskrypcji aktualizacji zmiany jest najpierw propagowane do kolejki, a następnie stosowana do Wydawca przez agenta Reader kolejki.

Zmiany wprowadzone w Wydawca są replikowane do subskrybentów w taki sam sposób, jak publikacja transakcyjnych subskrybentów tylko do odczytu.Aby uzyskać więcej informacji zobacz W jaki sposób transakcyjne replikacja programu Works.

Natychmiastowe aktualizowanie

Natychmiastowe subskrypcji aktualizacji należy użyć następujących składników:

  • Śledzenie kolumna dla każdej tabela opublikowanych

    Kiedy tabela jest publikowana w publikacja, która umożliwia subskrypcji mogą być aktualizowane, kolumna msrepl_tran_version jest dodawany do tabeli.W tej kolumnie jest używana do wykrywania zmian śledzenia i konfliktów.Konflikty w natychmiastowe aktualizowanie wystąpić, jeśli subskrybent aktualizuje nieaktualne kopię danych.

  • MSDTC

    Dla każdej zmiany dokonane na subskrybent usługi MSDTC zarządza operacji zatwierdzanie dwufazowe między Wydawca i subskrybenta zatwierdzeniem zmian.Ta metoda nie ma ograniczenia dostępności korzystania ze wszystkich witryn uczestniczących zatwierdzanie dwufazowe, ponieważ tylko Wydawca musi być dostępna.Po zmianie na Wydawca za pomocą zatwierdzanie dwufazowe, to są replikowane do innych subskrybentów przez agenta dystrybucji.

  • Wyzwalacze na tabelach w baza danych subskrypcja

    Wstawianie, aktualizacja i usuwanie wyzwalaczy są dodawane do każdej tabela opublikowanego w bazie danych subskrypcja.Wyzwalacze są tworzone przy użyciu modyfikatora nie dla replikacja z instrukcja CREATE TRIGGER, dzięki czemu zmiany zastosowane przez agenta dystrybucji nie powodują uruchomienie wyzwalacze.Aby uzyskać więcej informacji zobacz Kontrolowanie ograniczenia tożsamości i wyzwalaczy z nie dla replikacja.

    Natychmiastowe aktualizowanie subskrypcji wyzwalacze również zarządzać wartości tożsamość and Sygnatura czasowa kolumny przez subskrybent.Wartości są generowane podczas Wydawca dla tych typów kolumn i przekazywana do abonenta w ramach operacji zatwierdzanie dwufazowe.

  • Procedury przechowywane

    Kiedy użytkownik Tworzenie publikacja i ją włączyć natychmiastowe subskrypcji aktualizacji, wstawić, aktualizować i usuwać procedury są tworzone dla każdej tabela opublikowanego w bazie danych publikacja.Jeżeli wystąpią zmiany przez subskrybent, wyzwalacz replikacja wystawia zdalnego wywołania procedury za pomocą usługi MSDTC odpowiednie procedura przechowywana Wydawca, która następnie powoduje zastosowanie zmiany.

    Procedury przechowywane na Wydawca Zastosuj zmiany tylko wtedy, gdy one nie będą w konflikcie ze zmianami wprowadzonymi w Wydawca po uzyskaniu subskrybent ostatnio własną kopię zmienionych wierszy.Jeżeli zostanie wykryty konflikt, transakcja zostanie odrzucona i przywrócenie wydawcę i subskrybent.

Na poniższej ilustracji przedstawiono główne składniki wykorzystywane w topologię, która zawiera natychmiastowej aktualizacji subskrypcji.

Immediate updating components and data flow

  1. Zmiany dokonane przez subskrybent są przechwytywane przez wyzwalacza dla tabela subskrypcji.

  2. Wyzwalacz wywołuje za pośrednictwem usługi MSDTC do odpowiedniej procedura przechowywana w Wydawca.

  3. Procedura przechowywana wykonuje wstawiania, aktualizacji lub usuwania, chyba że występuje konflikt.Jeśli występuje konflikt, zmiana jest przywracana w Wydawca i subskrybent.

  4. Zmiany wprowadzone w Wydawca w wyniku zmian replikowane z subskrybent są propagowane do wszystkich innych subskrybent zgodnie z harmonogramem Agent dystrybucji.

Aktualizacja w kolejce

Kolejce subskrypcji aktualizacji należy użyć następujących składników:

  • Śledzenie kolumna dla każdej tabela opublikowanych

    Kiedy tabela jest publikowana w publikacja, która umożliwia subskrypcji mogą być aktualizowane, kolumna msrepl_tran_version jest dodawany do tabeli.W tej kolumnie jest używana do wykrywania zmian śledzenia i konfliktów.

  • Wyzwalacze na tabelach w baza danych subskrypcja

    Wstawianie, aktualizacja i usuwanie wyzwalaczy są dodawane do każdej tabela opublikowanego w bazie danych subskrypcja.Wyzwalacze są tworzone przy użyciu modyfikatora nie dla replikacja z instrukcja CREATE TRIGGER, dzięki czemu zmiany zastosowane przez agenta dystrybucji nie powodują uruchomienie wyzwalacze.Aby uzyskać więcej informacji zobacz Kontrolowanie ograniczenia tożsamości i wyzwalaczy z nie dla replikacja.

  • Procedury przechowywane

    Podczas tworzenia publikacja i włączyć go dla kolejce aktualizowanie subskrypcji, wstawianie, aktualizować i usuwać procedury są tworzone dla każdego opublikowane tabela w baza danych publikacja.

    Procedury przechowywane są wywoływane przez agenta Reader kolejki do zastosowania transakcji na Wydawca wykrywać konfliktów i w razie potrzeby generowania kompensacyjne poleceń, które są księgowane baza danych dystrybucji, a następnie dostarczane do subskrybent.

    procedura przechowywana dla rejestrowania informacje o konfliktach przez wydawcę, a opcjonalnie wysyłając informacje o konfliktach do odpowiednich subskrybentów, tworzony jest także przez wydawcę.To jest wywoływany przez agenta Reader kolejki w przypadku wykrycia konfliktu.

  • Microsoft SQL Server kolejki

    Każda baza danych subskrypcja zawiera tabela systemowa MSreplication_queue, która przechowuje zmian wprowadzonych przez subskrybent.

  • SQL Server Kolejka agenta Reader

    Kolejka agenta Reader odczytuje zmian z MSreplication_queue i dotyczą Wydawca.Aby uzyskać więcej informacji zobacz Replication Queue Reader Agent.

Na poniższej ilustracji przedstawiono główne składniki wykorzystywane w topologię, która zawiera kolejce subskrypcji aktualizacji.

Queued updating components and data flow

  1. Aktualizacje wprowadzone przez subskrybent są przechwytywane przez wyzwalacze na tabelach subskrypcji.Wyzwalacze są przechowywane te aktualizacje w MSreplication_queue.

  2. Kolejka agenta Reader czyta się od MSreplication_queue, a następnie stosuje transakcji w kolejce do odpowiedniej publikacja za pomocą procedur przechowywanych replikacja.

  3. Podczas stosowania transakcji w kolejce, konflikty (jeśli istnieje) są wykrywane i rozwiązywane zgodnie z zasadami rozwiązywania konfliktów, ustawiona podczas tworzenia publikacja.W rezultacie kompensacyjne polecenia mogą być generowane w celu wycofania transakcji do subskrybent przy użyciu standardowych replikacja transakcyjnej proces dystrybucji (są one wysyłane tylko do abonenta, która spowodowała wystąpienie konfliktu).Aby uzyskać więcej informacji zobacz Aktualizacja wykrywanie konfliktów i rozwiązanie w kolejce.

  4. Zmiany wprowadzone w Wydawca w wyniku zmian replikowane z subskrybent są propagowane do wszystkich innych subskrybent zgodnie z harmonogramem Agent dystrybucji.