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
SQL Server Management Studio: Jak Ustaw w kolejce aktualizowanie opcji konfliktu rozdzielczości (SQL Server Management Studio)
Programowanie języka Transact-SQL replikacji: Jak Włączanie aktualizacji subskrypcji dla transakcyjnych publikacje (Programowanie replikacji Transact-SQL)
Aby wyświetlić konflikty danych
- SQL Server Management Studio: Jak Wyświetl konflikty danych transakcyjnych publikacji (SQL Server Management Studio)
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.