Udostępnij za pośrednictwem


Aktualizacja wykrywanie konfliktów i rozwiązanie w kolejce

Ponieważ kolejce subskrypcji aktualizacji zmiany w tych samych danych w wielu miejscach, mogą występować konflikty, gdy dane są synchronizowane w Wydawca.Replikacja wykrywa wszystkie konflikty, gdy zmiany są synchronizowane z Wydawca i usuwa te konflikty przy użyciu zasad rozdzielczość wybranego podczas tworzenia publikacja.Mogą pojawić się następujące konflikty:

  • Aktualizacji i wstawiania jest w konflikcie.Ten konflikt występuje wówczas, gdy te same dane są zmieniane w dwóch lokalizacjach.Traci zwycięża zmiana jednego i drugiego.

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

Wykrywanie konfliktów i rozdzielczości może być czas — zużywające i obciąża przetworzyć; dlatego najlepiej zminimalizować konflikty w aplikacji przez utworzenie partycji danych, dzięki czemu różne subskrybentów modyfikowania różnych podzbiór danych.

Wykrywanie konfliktów

Podczas tworzenia publikacja i włączanie kolejce aktualizowanie, dodaje replikacja Uniqueidentifier kolumna (msrepl_tran_version) z domyślnej wartości NEWID() do tabela podstawowej.Po zmianie danych opublikowanych na subskrybent lub Wydawca, wiersz otrzymuje nową unikatowy identyfikator globalny (GUID) oznacza, że istnieje nowa wersja wiersza.Agent Reader kolejki używa to kolumna podczas synchronizacji, aby określić, czy istnieje konflikt.

Transakcja w kolejce przechowuje wartości wersja starego i nowego wiersza.Kiedy transakcja jest stosowany w Wydawca, porównuje się identyfikatory GUID z transakcji oraz identyfikator GUID w publikacja.Stary identyfikator GUID, przechowywane w transakcji pasuje do identyfikatora GUID w publikacji, publikacja zostanie zaktualizowany, a w wierszu jest przypisany nowy identyfikator GUID został wygenerowany przez subskrybent.Aktualizując publikacja o identyfikatorze GUID z transakcji, masz pasujące do wersji wiersza w publikacja, a w transakcji.

Stary identyfikator GUID, przechowywane 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 przesyłany przez subskrybent i nowsze komputer, który znajduje się na Wydawca. W takim wypadku innego subskrybent lub Wydawca zaktualizowane tym samym wierszu w publikacja, zanim ta transakcja subskrybent został zsynchronizowany.

W przeciwieństwie do replikacja łączenia korzystanie z kolumną identyfikatora GUID nie jest używany do identyfikowania wiersza, sam, ale jest używana do sprawdzania, czy wiersz został zmieniony.

Rozwiązywanie konfliktów

Podczas tworzenia publikacja za pomocą aktualizacji w kolejce, należy wybrać mechanizm rozwiązywania konfliktów stosowaną w przypadku wykrycia konfliktów.Program mechanizm rozwiązywania konfliktów decyduje o tym, jak Agent Reader kolejka obsługuje różne wersje tego samego wiersza podczas synchronizacji.Zasad rozwiązywania konfliktów można zmienić po utworzeniu publikacja, dopóki nie ma żadnych subskrypcji do publikacja.Konflikt opcji rozpoznawania nazw są następujące:

  • Wydawca wins (ustawienie domyślne)

  • Wydawca wins i subskrypcja jest ustawienie ponownie inicjowane

  • Subskrybent wins

Konflikty są rejestrowane i mogą być przeglądane przy użyciu Podglądu konfliktów.

Aby zestaw kolejce aktualizacji zasad rozwiązywania konfliktu

Aby zobaczyć konflikty danych

Wydawca WINS

Podczas rozwiązywania konfliktów jest ustawiony na wins Wydawca, spójności transakcyjnej jest zachowywana w oparciu o dane przez wydawcę.Będące w konflikcie transakcja jest cofana przez subskrybent, która zainicjowała go.

Agent Reader kolejki wykrywa konflikt i kompensacyjne polecenia są generowane i przenoszone na subskrybent umieszczając je w bazie danych dystrybucji.Agent dystrybucji to stosowany kompensacyjne poleceń do subskrybent utworzonych transakcji będące w konflikcie.Akcje kompensacyjne aktualizowania wierszy na subskrybent odpowiadający wierszach Wydawca.

Dopóki kompensacyjne poleceń są stosowane, jest możliwe do odczytania wyniki transakcji, która będzie ostatecznie można wycofać przez subskrybent.Jest to równoważne odczyt zanieczyszczony (odczyt poziom izolacji nieprzydzielone).Brak odszkodowanie nie kolejnych zależnych transakcji, które mogą wystąpić.Jednak granice transakcji są honorowane i wszystkie akcje w ramach transakcji są zatwierdzone, albo przypadek wystąpienia konfliktu, przywrócona.

Wydawca WINS i subskrypcja jest ustawienie ponownie inicjowane

Reinitializing subskrybent do rozwiązywania konfliktów utrzymuje ścisłej spójności transakcyjnej przez subskrybent, ale można go czas używające, jeśli publikacja zawiera duże ilości danych.

Gdy Agent Reader kolejki wykryje konflikt, wszystkich pozostałych transakcji w kolejce (w tym transakcji w konflikcie) są odrzucane i subskrybent jest oznaczony do reinicjowanie.Następny migawkę generowane dla publikacja jest stosowany przez agenta dystrybucji do subskrybent.

Subskrybent WINS

Wykrywanie konfliktów w obszarze zasady wins subskrybent oznacza ostatniej transakcji subskrybent zaktualizować wins Wydawca.W takim przypadek po wykryciu konflikt wciąż używany jest wysyłane przez subskrybent transakcji i wydawca jest aktualizowany.Zasada ta jest odpowiednia dla aplikacji, gdzie takie zmiany nie naruszyć integralność danych.