Udostępnij przez


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ł

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:

Three table logical record with values

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.

Series of tables showing changes to related rows

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.

Series of tables showing changes to related rows

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.

Series of tables showing changes to related rows