Поделиться через


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

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

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

Примечание.

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

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

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

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

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

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

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

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

      Внимание

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

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

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

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

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

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

      Внимание

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

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

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

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

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

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

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

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