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


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

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

ПримечаниеПримечание

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

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

  • Запустите средство Программа tablediff из командной строки любого сервера в топологии репликации. Укажите значения следующих параметров:

    • -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 для строгого сравнения схем исходной и целевой таблиц (необязательно).