Как проверить данные на подписчике (программирование репликации на языке Transact-SQL)
Репликация позволяет проверить программным путем, что данные на подписчике и на издателе совпадают. Это делается с помощью хранимых процедур, выбор которых зависит от типа топологии репликации.
Проверка данных для всех статей в публикации транзакций
В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (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 для всех столбцов в опубликованных базовых таблицах.
Если агент распространителя для каждой подписки еще не запущен, запустите его (необязательно). Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).
Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Проверка реплицированных данных.
Проверка данных для одной статьи в публикации транзакций
В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_article_validation (Transact-SQL)). Укажите параметр @publication, имя статьи в параметре @article и одно из следующих значений в параметре @rowcount_only:
1 — проверка только количества строк (по умолчанию)
2 — проверка количества строк и двоичной контрольной суммы.
Примечание Чтобы успешно выполнить процедуру sp_article_validation (Transact-SQL), необходимы разрешения на использование предложения SELECT для всех столбцов таблицы опубликованной базовой таблицы.
Если агент распространителя для каждой подписки еще не запущен, запустите его (необязательно). Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).
Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Проверка реплицированных данных.
Проверка данных по одному подписчику на публикацию транзакций
В базе данных публикации на издателе откройте явную транзакцию с помощью BEGIN TRANSACTION (Transact-SQL).
В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_marksubscriptionvalidation (Transact-SQL)). Задайте публикацию в параметре @publication, имя подписчика в параметре @subscriber и имя базы данных подписки для @destination_db.
Повторите шаг 2 для каждой проверяемой подписки (необязательно).
В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_article_validation (Transact-SQL)). Укажите параметр @publication, имя статьи в параметре @article и одно из следующих значений в параметре @rowcount_only:
1 — проверка только количества строк (по умолчанию)
2 — проверка количества строк и двоичной контрольной суммы.
Примечание Чтобы успешно выполнить процедуру sp_article_validation (Transact-SQL), необходимы разрешения на использование предложения SELECT для всех столбцов таблицы опубликованной базовой таблицы.
В базе данных публикации на издателе зафиксируйте транзакцию с помощью COMMIT TRANSACTION (Transact-SQL).
Повторите шаги 1 – 5 для каждой проверяемой статьи (необязательно).
Запустите агент распространителя, если он еще не работает (необязательно). Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).
Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Как проверить данные на подписчике (среда SQL Server Management Studio).
Проверка данных всех подписок на публикацию слиянием
В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_validatemergepublication (Transact-SQL)). Задайте параметр @publication и одно из следующих значений в параметре @level:
1 — проверка только количества строк.
3 — проверка двоичной контрольной суммы.
Таким образом будут отмечены для проверки все публикации.
Запустите агент слияния для каждой подписки. Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).
Просмотрите результаты проверки в выходном файле агента. Дополнительные сведения см. в разделе Как проверить данные на подписчике (среда SQL Server Management Studio).
Проверка данных по выбранным подпискам на публикацию слиянием
В базе данных публикации на издателе выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_validatemergesubscription (Transact-SQL)). Задайте параметр @publication, имя подписчика в параметре @subscriber, имя базы данных подписки в параметре @subscriber_db и одно из следующих значений в параметре @level:
1 — проверка только количества строк.
3 — проверка двоичной контрольной суммы.
Выбранная подписка будет помечена для проверки.
Запустите агент слияния для каждой подписки. Дополнительные сведения см. в образце кода Как синхронизировать подписку по запросу (программирование репликации) и разделе Как синхронизировать принудительную подписку (программирование репликации).
Просмотрите результаты проверки в выходном файле агента.
Повторите шаги 1 – 3 для каждой проверяемой подписки.
Примечание |
---|
Подписка на публикацию слиянием может быть проверена и в конце синхронизации с помощью параметра -Validate, когда работает Агент слияния репликации. |
Проверка данных в подписке с помощью параметров агента слияния
Запустите агент слияния на подписчике (подписка по запросу) или на распространителе (принудительная подписка) из командной строки одним из следующих способов:
Задайте значение 1(количество строк) или 3 (количество строк и двоичная контрольная сумма) в параметре -Validate.
Задайте rowcount validation (проверка количества строк) или rowcount and checksum validation (количество строк и контрольная сумма) в параметре -ProfileName.
Дополнительные сведения см. в разделе Как синхронизировать подписку по запросу (программирование репликации) или Как синхронизировать принудительную подписку (программирование репликации).