Porównaj różnice między replikowanymi tabelami (programowanie replikacyjne)

Dotyczy:SQL ServerAzure SQL Managed Instance

Weryfikacja artykułów służy do ustalenia, czy opublikowane dane dla artykułów tabelowych na Publisher i Subscriber nie są identyczne, co może wskazywać na brak zbieżności. Aby uzyskać więcej informacji, zobacz Weryfikowanie replikowanych danych. Jednak walidacja zwraca jedynie informacje o zaliczeniu lub niepowodzeniu i nie dostarcza żadnych informacji o różnicach między tabelami źródłową a docelową. Narzędzie wiersza poleceń tablediff zwraca szczegółowe informacje o różnicach między dwiema tabelami i może nawet wygenerować skrypt Transact-SQL, który doprowadzi subskrypcję do zbieżności z danymi w Publisher.

Note

Narzędzie tablediff jest obsługiwane wyłącznie dla serwerów SQL Server.

Aby porównać replikowane tabele pod kątem różnic za pomocą tablediff

  1. Z wiersza poleceń dowolnego serwera w topologii replikacji uruchom narzędzie tablediff. Określ następujące parametry:

    • -sourceserver - nazwa serwera, na którym dane są poprawne, zwykle Publisher.

    • -sourcedatabase : - nazwa bazy danych zawierającej poprawne dane.

    • -sourcetable - nazwa tabeli źródłowej dla porównywanego artykułu.

    • (Opcjonalnie) -sourceschema - właściciel schematu tabeli źródłowej, jeśli nie jest domyślnym schematem.

    • (Opcjonalnie) -sourceuser i -sourcepassword podczas korzystania z uwierzytelniania SQL Server do połączenia z Publisher.

      Ważna

      Jeśli to możliwe, użyj uwierzytelniania systemu Windows. Jeśli musisz korzystać z uwierzytelniania SQL Server, monituj użytkowników o wprowadzenie poświadczeń w czasie wykonywania. Jeśli musisz przechowywać poświadczenia w pliku skryptu, musisz zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.

    • -destinationserver - nazwa serwera, na którym porównywane są dane, zwykle Subscriber.

    • -destinationdatabase - nazwa porównywanej bazy danych.

    • -tabela docelowa - nazwa porównywanej tabeli.

    • (Opcjonalnie) -destinationschema - właściciel schematu tabeli docelowej, jeśli nie jest domyślnym schematem.

    • (Opcjonalnie) -destinationuser i -destinationpassword przy użyciu uwierzytelniania SQL Server do połączenia z abonentem.

      Ważna

      Jeśli to możliwe, użyj uwierzytelniania systemu Windows. Jeśli musisz użyć uwierzytelniania SQL Server, monituj użytkowników o wprowadzenie poświadczeń w czasie wykonywania. Jeśli musisz przechowywać poświadczenia w pliku skryptu, musisz zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.

    • (Opcjonalnie) Użyj -c do porównania na poziomie kolumn.

    • (Opcjonalnie) Użyj -q , aby zrobić szybkie porównanie tylko z liczbą wierszy i schematem.

    • (Opcjonalnie) Określ nazwę pliku i ścieżkę dla -o , aby wyniki zostały wygenerowane do pliku.

    • (Opcjonalnie) Określ tabelę w bazie danych subskrypcji, do której mają zostać wstawione wyniki dla -et. Jeśli tabela już istnieje, podaj opcję -dt, aby najpierw usunąć tabelę.

    • (Opcjonalnie) Użyj -f, aby wygenerować plik Transact-SQL służący do skorygowania danych u Subskrybenta, tak aby odpowiadały danym u Publikatora. Użyj -df , aby określić liczbę Transact-SQL instrukcji w każdym pliku.

    • (Opcjonalnie) Użyj -rc i -ri , aby określić liczbę powtórzeń operacji oraz interwał powtórek.

    • (Opcjonalnie) Użyj -strict do wymuszenia ścisłego porównania schematów między tabelami źródłowymi a docelowymi.