Udostępnij za pośrednictwem


W kolejce aktualizowania wykrywania konfliktów i rozdzielczości

Ponieważ kolejce subskrypcje aktualizacji umożliwiają modyfikacje te same dane w kilku miejscach, może wystąpić konflikty podczas synchronizowania danych na Wydawca.Replikacja wykrywa konflikty, gdy zmiany są synchronizowane z Wydawca i rozwiązuje konflikty tych zasad rozdzielczość wybrane podczas tworzenia publikacja.Mogą wystąpić następujące konflikty:

  • Aktualizacji i wstawiania konflikty.Ten konflikt się stanie po zmianie tych samych danych w dwóch lokalizacjach.Traci wins zmiana jednego i drugiego.

  • Usuń konflikty.Konflikt występuje, gdy ten sam wiersz jest usuwana w jednej lokalizacji i zmieniony w drugiej.

Wykrywanie konfliktów i rozdzielczości może być czas-proces zużywające i obciąża; Dlatego najlepiej jest minimalizowanie konfliktów w aplikacji przez utworzenie partycji danych tak, aby różne subskrybentów modyfikować różne podzestawy danych.

Wykrywanie konfliktów

Podczas tworzenia publikacja i włączanie kolejce aktualizowanie, dodaje replikacja uniqueidentifier kolumna (msrepl_tran_version) z domyślną newid() do tabela źródłowa.Zmiany danych opublikowanych w albo Wydawca lub abonenta, wiersz otrzymuje nowy unikatowy identyfikator globalny (GUID) oznacza, że istnieje nowa wersja wiersza.Agent czytnik kolejki używa tej kolumna podczas synchronizacji do ustalenia, czy istnieje konflikt.

Transakcji w kolejce przechowuje wartości wersja starego i nowego wiersza.Kiedy transakcja jest stosowane w Wydawca, identyfikatory GUID z transakcji oraz identyfikator GUID w publikacja są porównywane.Stare GUID przechowywanym w transakcji pasuje do identyfikatora GUID w publikacja, publikacja zostanie zaktualizowany, a wiersz jest przypisany nowy identyfikator GUID został wygenerowany przez abonenta.Aktualizując publikacja z identyfikatorem GUID z transakcji mają, odpowiadające wersji wiersza w publikacja i transakcji.

Stare GUID przechowywanym w transakcji nie pasuje do identyfikatora GUID w publikacja, wykryto konflikt.Nowy identyfikator GUID w publikacja wskazuje, że istnieją dwie wersje innego wiersza: jedna w transakcji przedstawianych przez subskrybenta i nowsze, który istnieje Wydawca.przypadek innego subskrybenta lub Wydawca zaktualizowane tym samym wierszu w publikacja, zanim został zsynchronizowany tej transakcji subskrybenta.

W przeciwieństwie do replikacja scalająca użycie kolumna Identyfikator GUID nie jest używany do identyfikowania sam wiersz, ale jest używana do sprawdzania, czy wiersz został zmieniony.

Rozwiązywanie konfliktów

Podczas tworzenia publikacja za pomocą aktualizacji w kolejce, zaznacz mechanizm rozwiązywania konfliktów stosowaną w przypadku wykrycia konfliktów.mechanizm rozwiązywania konfliktów Kontroluje, jak Agent czytnik kolejka obsługuje różne wersje tego samego wiersza napotkanych podczas synchronizacji.Po utworzeniu publikacja, tak długo, jak nie ma żadnych subskrypcji do publikacja, można zmienić zasad rozwiązywania konfliktów.mechanizm rozwiązywania konfliktów Dostępne są następujące:

  • Wydawca wins (domyślnie)

  • Wydawca wins i subskrypcja jest ustawienie ponownie inicjowane

  • Subskrybent usługi wins

Konflikty są rejestrowane i można przeglądać za pomocą Podglądu konfliktów.

Aby zestaw zasad kolejce rozwiązanie konfliktu aktualizacji

Aby wyświetlić konflikty danych

Wydawca Wins

Podczas rozwiązywania konfliktów jest zestaw do serwera wins w programie Publisher spójności transakcyjnej jest utrzymywana na podstawie danych przez wydawcę.Konflikt transakcja jest cofana subskrybent, który zainicjował go.

Agent czytnik kolejki wykryje konflikt i polecenia kompensacyjne są generowane i propagowane do subskrybenta, umieszczając je w baza danych dystrybucji.Agent dystrybucji następnie dotyczy poleceń kompensacyjnych utworzonych transakcji konflikt subskrybenta.Akcje kompensacyjnych aktualizowania wierszy na subskrybenta dopasować wiersze na Wydawca.

Dopóki kompensacyjnych poleceń są stosowane, jest możliwe odczytanie wyniki transakcji, która zostanie ostatecznie wycofana przez subskrybenta.Jest to równoważne odczyt zanieczyszczony (odczyt poziom izolacji nieprzydzielonych).Nie ma żadnej rekompensaty dla kolejnych transakcji zależnych, które mogą wystąpić.Jednakże są honorowane granice transakcji i wszystkie akcje w obrębie transakcji są popełnione, lub przypadek konfliktu z wycofana.

Wydawca Wins i subskrypcji jest ustawienie ponownie inicjowane

Pomocą ponownego inicjowania subskrybentom rozwiązać konflikty utrzymuje ścisłe spójności transakcyjnej przez subskrybenta, ale może być czas używające, jeśli publikacja zawiera duże ilości danych.

Agent czytnik kolejki wykryje konflikt, wszystkie pozostałe transakcje w kolejce (w tym transakcji konflikt) są odrzucane i subskrybenta jest oznaczony do ponownego inicjowania.Dalej migawka generowane dla publikacja jest stosowana przez agenta dystrybucji do subskrybenta.

Subskrybent usługi Wins

Wykrywanie konfliktów w ramach polityki wins subskrybenta oznacza ostatniej transakcji subskrybenta aktualizacji serwera wins Wydawca.przypadek gdy wykryto konflikt transakcji wysłanych przez subskrybenta jest nadal używany i Wydawca jest aktualizowany.Zasada ta jest odpowiednia dla aplikacji w przypadku gdy takie zmiany nie osłabiają integralność danych.