Сравнение различий между реплицированными таблицами (программирование репликации)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Проверка статьи позволяет определить, идентичны ли опубликованные данные для статей таблиц на Publisher и Subscriber. Если нет, это может указывать на неконвергенцию. Дополнительные сведения см. в статье Проверка реплицированных данных. Однако валидация возвращает только сведения о том, пройдена проверка или нет, и не предоставляет никаких сведений о том, чем именно отличаются исходная и целевая таблицы. Служебная программа командной строки tablediff возвращает подробные сведения о разнице между двумя таблицами и даже может создать скрипт Transact-SQL для объединения подписки с данными на издателе.

Примечание.

Программа tablediff поддерживается только для серверов SQL Server.

Поиск различий в реплицированных таблицах с помощью средства tablediff

  1. Запустите средство tablediff Utilityиз командной строки любого сервера в топологии репликации. Укажите следующие параметры:

    • -sourceserver — имя сервера, данные на котором считаются верными (обычно это издатель).

    • -sourcedatabase — имя базы данных, содержащей правильные данные.

    • -sourcetable — название таблицы источников для статьи, которую вы сравниваете.

    • -sourceschema — владелец схемы исходной таблицы, если не используется схема по умолчанию (необязательно).

    • (Необязательно) -sourceuser и -sourcepassword, если для подключения к Издателю используется аутентификация SQL Server.

      Внимание

      По возможности используйте аутентификацию Windows. Если необходимо использовать проверку подлинности SQL Server, предложите пользователям ввести учетные данные безопасности во время выполнения. Если нужно хранить учетные данные в файле скрипта, для этого файла необходимо обеспечить защиту, чтобы исключить несанкционированный доступ.

    • -destinationserver — имя сервера, данные которого сравниваются (обычно подписчик).

    • -destinationdatabase — название сравниваемой базы данных.

    • -destinationtable — имя сравниваемой таблицы.

    • (Необязательно) -destinationschema — владелец схемы целевой таблицы, если используется не схема по умолчанию.

    • (Необязательно) -destinationuser и -destinationpassword при использовании проверки подлинности SQL Server для подключения к подписчику.

      Внимание

      По возможности используйте аутентификацию Windows. Если необходимо использовать проверку подлинности SQL Server, предложите пользователям ввести учетные данные безопасности во время выполнения. Если нужно хранить учетные данные в файле скрипта, для этого файла необходимо обеспечить защиту, чтобы исключить несанкционированный доступ.

    • Используйте -c для сравнения по столбцам (необязательно).

    • Используйте -q для быстрого сравнения количества строк и схемы (необязательно).

    • Укажите имя файла и путь для -o для записи результатов в файл (необязательно).

    • Укажите таблицу в базе данных подписки, куда должны вставляться результаты для -et(необязательно). Если таблица уже существует, задайте -dt , чтобы сначала удалить таблицу.

    • (Необязательно) Используйте -f для создания файла Transact-SQL для исправления данных на подписчике, чтобы он соответствовал данным на издателе. Используйте -df , чтобы указать количество инструкций Transact-SQL в каждом файле.

    • Используйте -rc и -ri для определения количества попыток повтора операции и интервала повторных попыток (необязательно).

    • Используйте -strict для строгого сравнения схем исходной и целевой таблиц (необязательно).