Wykrywanie i rozwiązywanie konfliktów w rekordach logicznych
Podczas korzystania z logicznego rekordy, w tym temacie omówiono różne kombinacje wykrywanie konfliktów i możliwych podejść rozwiązania konfliktu.Występuje konflikt w replikacja łączenia więcej niż jeden węzeł zmienia się z tymi samymi danymi lub scalania replikacja napotka niektórych rodzajów błędów, takie jak naruszenie ograniczenia, podczas replikowania zmian.Aby uzyskać więcej informacji na temat wykrywanie konfliktów i rozdzielczości ekranu Zobacz Zaawansowane wykrywanie konfliktów replikacja łączenia i rozdzielczości.
Aby określić poziom śledzenia i rozwiązywania konfliktów artykuł
Microsoft SQL Server Management Studio: Jak Określ śledzenie konfliktów i poziom rozwiązanie dla artykułów korespondencji seryjnej (SQL Server Management Studio)
Replikacja Transact-SQL programowania: Jak Określ śledzenie konfliktów i poziom rozwiązanie dla artykułów korespondencji seryjnej (Programowanie replikacja języka Transact-SQL)
Wykrywanie konfliktów
Wykryte konfliktów dla rekordów logiczny sposób jest określana przez dwie właściwości artykuł: column_tracking and logical_record_level_conflict_detection.SQL Server 2005 and later versions also support logical record-level detection.Aby uzyskać więcej informacji na poziomie kolumna i na poziomie wiersza śledzenia zobacz sekcję "Poziom śledzenia" Jak replikacja łączenia wykrywa i usuwa konflikty.
The logical_record_level_conflict_detection artykuł właściwość can be zestaw to TRUE or FALSE.Wartość należy ustawić tylko w artykule nadrzędnego najwyższego poziom i są ignorowane przez podrzędność artykułów.Jeśli ta właściwość ma wartość FALSE, replikacja łączenia wykryje konflikt, podobnie jak w poprzednich wersjach SQL Server, wyłącznie na podstawie wartości z column_tracking właściwość artykuł.Jeśli wartością tą jest PRAWDA, zignoruje replikacja scalania column_tracking właściwość artykuł i wykrywa konflikt, jeśli zmiany zostaną wprowadzone w dowolnym miejscu w rekord logiczny.Na przykład należy wziąć pod uwagę w tym scenariuszu:
.gif)
Wykryto konflikt, jeśli dwóch użytkowników zmienianie wartości dla Customer2 rekord logiczny w Klienci, Zamówienia, or OrderItems tabel.W tym przykładzie obejmuje zmian dokonanych przy użyciu instrukcja SQL UPDATE, ale konflikt może być także wykryta przez zmiany dokonane w instrukcja INSERT lub DELETE.
Rozwiązanie konfliktu
replikacja łączenia używa domyślnie opartą Logika rozwiązywania konfliktów.Jeżeli zmiany powodujące konflikt w dwóch subskrybent baz danych, zmienianie dla subskrybent o wyższym priorytecie subskrypcja wins lub jeśli priorytet jest taka sama, pierwsza zmiana, aby osiągnąć Wydawca wins.Z poziomu wiersza i kolumna poziom wykrywania cały wiersz wygrywający zawsze zastępują przegrywająca wiersza.
The logical_record_level_conflict_resolution artykuł właściwość can be zestaw to TRUE or FALSE.Wartość należy ustawić tylko w artykule nadrzędnego najwyższego poziom i są ignorowane przez podrzędność artykułów.Jeśli ma wartość TRUE, cały zwycięża rekord logiczny zastępuje przegrywająca rekordu logiczne.Jeśli jest FAŁSZ, poszczególne wiersze wygrywający mogą pochodzić z różnych subskrybentów i wydawców.Na przykład subskrybent A wygraj konflikt w wierszu z Zamówienia tabela i subskrybent B wygraj na powiązanych wierszy z OrderItems tabela.Wynik jest logiczną rekord z Zamówienia wiersza subskrybent A i OrderItems wiersz z B. subskrybent
Współpraca rozwiązanie konfliktów i wykrywania ustawień
Wynik jest w konflikcie zależy od interakcji wykrywanie konfliktów i ustawienia rozdzielczości.W poniższych przykładach zakłada się, czy Rozwiązywanie konfliktów na podstawie priorytetu jest używany.W przypadku korzystania z logicznego rekordów, możliwości są następujące:
Wiersz lub kolumna wykrywania poziom, rozdzielczość poziom wiersza
kolumna poziom wykrywanie rozdzielczości rekord logiczny
Wykrywanie poziom wiersza rozdzielczość rekord logiczny
Wykrywanie rekord logiczny, rozdzielczość rekord logiczny
Wiersz lub kolumna wykrywanie poziom, rozdzielczość poziom wiersza
W tym przykładzie publikacja konfigurowane są:
column_tracking ma wartość PRAWDA lub FAŁSZ
logical_record_level_conflict_detection is FALSE
logical_record_level_conflict_resolution is FALSE
W takim przypadek wykrywania znajduje się poziom wiersza lub kolumna, a rozdzielczość jest poziom wiersza.Ustawienia te są używane, aby wykorzystać o wszystkie zmiany wprowadzone w powtórzeniem rekord logiczny jako całość, ale bez rozdzielczości lub wykrywanie konfliktów poziom rekordu logiczne.
Wykrywanie poziom kolumny rekord logiczny rozdzielczość
W tym przykładzie publikacja konfigurowane są:
column_tracking is TRUE
logical_record_level_conflict_detection is FALSE
logical_record_level_conflict_resolution is TRUE
Wydawca i subskrybent zaczynają się ten sam zestaw danych, a rekord logiczny jest zdefiniowany między zamówienia and Klienci tabel.Wydawca zmiany custcol1 kolumnaKlienci Tabela a ordercol1 in the zamówienia tabeli.Zmiany subskrybent custcol1 w tym samym wierszu Klienci Tabela a ordercol2 z tego samego wiersza kolumnazamówienia tabeli.Zmiany w tej samej kolumna w odbiorcy tabela powodują konflikt, ale aby zmiany zamówienia tabela nie są w konflikcie.
Ponieważ konflikty są rozpoznawane w rekord logiczny poziomu, wygrywający zmiany wprowadzone przez wydawcę zastąpić zmiany dokonane w tabelach subskrybent podczas przetwarzania replikacja.
.gif)
Wykrywanie poziom wiersza rekord logiczny rozdzielczość
W tym przykładzie publikacja konfigurowane są:
column_tracking is FALSE
logical_record_level_conflict_detection is FALSE
logical_record_level_conflict_resolution is TRUE
Wydawca i subskrybent rozpoczyna się od tego samego zestaw danych.Wydawca zmiany custcol1 kolumnaKlienci tabela.Zmiany subskrybent custcol2 in the Klienci Tabela a ordercol2 kolumnazamówienia tabeli.Zmiany w tym samym wierszu w Klienci zmienia tabela powodują konflikt, ale subskrybentzamówienia tabela nie są w konflikcie.
Ponieważ konflikty są rozpoznawane w rekord logiczny poziomu, podczas synchronizacji wygraną zmiany dokonane przez wydawcę zastępują zmiany wprowadzone w tabelach subskrybent.
.gif)
rekord logiczny Wykrywania, rekord logiczny rozdzielczość
W tym przykładzie publikacja konfigurowane są:
logical_record_level_conflict_detection is TRUE
logical_record_level_conflict_resolution is TRUE
Wydawca i subskrybent rozpoczyna się od tego samego zestaw danych.Wydawca zmiany custcol1 kolumnaKlienci tabela.Zmiany subskrybent ordercol1 kolumnazamówienia tabela.Nie zmian do tego samego wiersza lub kolumny, ale ponieważ zmiany są wprowadzane w tym samym rekord logiczny dla custid= 1, zmiany są wykrywane jako konflikt w rekord logiczny poziomu.
Ponieważ konflikty są rozpoznawane również poziom rekordu logicznych, podczas synchronizacji zwycięża zmiana wprowadzona w Wydawca zastępuje zmiany w tabelach subskrybent.
.gif)