Как проверить данные на подписчике (программирование репликации на языке Transact-SQL)

Репликация позволяет проверить программным путем, что данные на подписчике и на издателе совпадают. Это делается с помощью хранимых процедур, выбор которых зависит от типа топологии репликации.

Проверка данных для всех статей в публикации транзакций

  1. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_publication_validation (Transact-SQL)). Задайте параметр @publication и одно из следующих значений для @rowcount_only:

    • 1 — проверка только количества строк (по умолчанию);

    • 2 — проверка количества строк и двоичной контрольной суммы.

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

    Если выполняется процедура sp_publication_validation (Transact-SQL), то процедура sp_article_validation (Transact-SQL) выполняется для каждой статьи в публикации. Для успешного выполнения sp_publication_validation (Transact-SQL) необходимо иметь разрешения SELECT для всех столбцов в опубликованных базовых таблицах.

  2. Если агент распространителя для каждой подписки еще не запущен, запустите его (необязательно). Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).

  3. Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Проверка реплицированных данных.

Проверка данных для одной статьи в публикации транзакций

  1. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_article_validation (Transact-SQL)). Укажите параметр @publication, имя статьи в параметре @article и одно из следующих значений в параметре @rowcount_only:

    • 1 — проверка только количества строк (по умолчанию)

    • 2 — проверка количества строк и двоичной контрольной суммы.

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

    Чтобы успешно выполнить процедуру sp_article_validation (Transact-SQL), необходимы разрешения на использование предложения SELECT для всех столбцов таблицы опубликованной базовой таблицы.

  2. Если агент распространителя для каждой подписки еще не запущен, запустите его (необязательно). Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).

  3. Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Проверка реплицированных данных.

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

  1. В базе данных публикации на издателе откройте явную транзакцию с помощью BEGIN TRANSACTION (Transact-SQL).

  2. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_marksubscriptionvalidation (Transact-SQL)). Задайте публикацию в параметре @publication, имя подписчика в параметре @subscriber и имя базы данных подписки для @destination_db.

  3. Повторите шаг 2 для каждой проверяемой подписки (необязательно).

  4. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_article_validation (Transact-SQL)). Укажите параметр @publication, имя статьи в параметре @article и одно из следующих значений в параметре @rowcount_only:

    • 1 — проверка только количества строк (по умолчанию)

    • 2 — проверка количества строк и двоичной контрольной суммы.

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

    Чтобы успешно выполнить процедуру sp_article_validation (Transact-SQL), необходимы разрешения на использование предложения SELECT для всех столбцов таблицы опубликованной базовой таблицы.

  5. В базе данных публикации на издателе зафиксируйте транзакцию с помощью COMMIT TRANSACTION (Transact-SQL).

  6. Повторите шаги 1 – 5 для каждой проверяемой статьи (необязательно).

  7. Запустите агент распространителя, если он еще не работает (необязательно). Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).

  8. Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Как проверить данные на подписчике (среда SQL Server Management Studio).

Проверка данных всех подписок на публикацию слиянием

  1. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_validatemergepublication (Transact-SQL)). Задайте параметр @publication и одно из следующих значений в параметре @level:

    • 1 — проверка только количества строк.

    • 3 — проверка двоичной контрольной суммы.

    Таким образом будут отмечены для проверки все публикации.

  2. Запустите агент слияния для каждой подписки. Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).

  3. Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Как проверить данные на подписчике (среда SQL Server Management Studio).

Проверка данных по выбранным подпискам на публикацию слиянием

  1. В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_validatemergesubscription (Transact-SQL)). Задайте параметр @publication, имя подписчика в параметре @subscriber, имя базы данных подписки в параметре @subscriber_db и одно из следующих значений в параметре @level:

    • 1 — проверка только количества строк.

    • 3 — проверка двоичной контрольной суммы.

    Выбранная подписка будет помечена для проверки.

  2. Запустите агент слияния для каждой подписки. Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).

  3. Просмотрите результаты проверки в выходном файле агента.

  4. Повторите шаги 1 – 3 для каждой проверяемой подписки.

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

Подписка на публикацию слиянием может быть проверена и в конце синхронизации с помощью параметра -Validate, когда работает Агент слияния репликации.

Проверка данных в подписке с помощью параметров агента слияния

См. также

Справочник

Основные понятия