Проверка реплицированных данных

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

  • Только подсчет строк. При проверке этого типа проверяется совпадение числа строк таблицы на подписчике с числом строк таблицы на издателе, но не проверяется содержимое строк на совпадение. Проверка количества строк обеспечивает упрощенный подход к проверке, который может уведомить о проблемах с данными.
  • Подсчет количества строк и двоичной контрольной суммы. Кроме вычисления количества строк на подписчике и на издателе вычисляется контрольная сумма с помощью алгоритма, представленного в Microsoft SQL Server 2000. Если количество строк не совпадает, контрольная сумма не проверяется.
  • Подсчет количества строк и контрольной суммы. Этот параметр устарел и не должен использоваться. Он должен применяться только для подписчиков, использующих MicrosoftSQL Server версии 7.0. В этом варианте проверки применяется тот же подход, что и при подсчете количества строк с двоичной контрольной суммой, однако используется алгоритм подсчета контрольной суммы из SQL Server версии 7.0. Дополнительные сведения см. в подразделе «Как работает проверка данных» этого раздела.

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

Проверка данных

Чтобы проверить все статьи в подписке, используйте SQL Server Management Studio, хранимые процедуры или объекты RMO. Чтобы проверить отдельные статьи в публикациях моментальных снимков и публикациях транзакций, следует использовать хранимые процедуры.

Результаты проверки данных

Когда проверка заканчивается, агент распространителя или агент слияния заносит в журнал сообщения касательно успеха или неудачи (репликация не сообщает, на каких строках возникла ошибка). Эти сообщения можно просмотреть в SQL Server Management Studio, мониторе репликации и в системных таблицах репликации. В перечисленных выше разделах руководства описывается, как запустить проверку и просмотреть результаты.

Чтобы обработать ошибки проверки, рассмотрите следующее.

Аспекты проверки данных

При проверке данных учитывайте следующие соображения.

  • Перед проверкой данных следует остановить все действия по обновлению на подписчиках (при выполнении проверки нет необходимости останавливать действия на издателе).
  • Ввиду того, что простые и двоичные контрольные суммы могут требовать больших вычислительных мощностей при проверке большого количества данных, следует назначать проверку на время, когда активность используемых в репликации серверов минимальна.
  • Репликация проверяет только таблицы; она не проверяет, совпадают ли в схеме на издателе и подписчике только статьи (например, хранимые процедуры).
  • Двоичная контрольная сумма может использоваться с любой опубликованной таблицей. С помощью контрольной суммы нельзя проверить таблицы с фильтрацией по столбцам, или логические структуры таблиц, отличающиеся смещением столбцов (из-за инструкций ALTER TABLE, удаляющих или добавляющих столбцы).
  • Данные в столбцах text, ntext или image не учитываются при вычислении контрольной суммы.
  • Проверка с использованием двоичной контрольной суммы может неверно сообщить об отказе, если типы данных на подписчике и издателе разнятся. Это может случиться, если инициализировать подписку вручную с применением отличающихся типов данных на подписчике, или если использовать следующие параметры схемы для статьи.
    • Сопоставление определяемых пользователем типов данных с базовыми типами данных (параметр схемы 0х20).
    • Сопоставление xml c ntext (параметр схемы 0x10000000).
    • Сопоставление типов данных nvarchar(max) и varbinary(max) с типами данных, поддерживаемыми в предыдущих версиях SQL Server (параметр схемы 0x20000000).
      Дополнительные сведения о параметрах схемы см. в разделе Публикация данных и объектов базы данных.
  • Проверки двоичной контрольной суммы и простой контрольной суммы не поддерживаются трансформируемыми подписками для репликации транзакций.
  • Также не поддерживается проверка данных, реплицированных на подписчики, отличные от SQL Server.

Как работает проверка данных

SQL Server проверяет данные путем подсчета числа строк или контрольной суммы на издателе и последующего сравнения этих значений с соответствующими значениями числа строк и контрольной суммы, вычисленными на подписчике. Одно значение вычисляется для всей таблицы публикации, и одно — для всей таблицы подписки, но данные в столбцах типа text, ntext и image не участвуют в вычислении.

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

При использовании двоичных контрольных сумм выполняется последовательная проверка столбцов избыточным 32-разрядным кодом (CRC) вместо проверки циклическим избыточным кодом (CRC) физической строки на странице данных. Это позволяет столбцам таблицы располагаться физически в любом порядке на странице данных, и при этом CRC-код для строки будет оставаться прежним. Проверка по двоичной контрольной сумме может использоваться при наличии у публикации фильтров по строкам или столбцам. Подписчики, на которых выполняется SQL Server версии 7.0, должны использовать алгоритмы подсчета контрольной суммы, реализованные в SQL Server версии 7.0 и формирующие значения CRC-кода, отличные от значений кода, формируемых в SQL Server 2000 и более поздних версиях. С помощью реализованных в SQL Server версии 7.0 алгоритмов контрольной суммы нельзя проверить таблицы с фильтрацией по столбцам или с логической структурой таблиц, отличающихся смещением столбцов (из-за инструкций ALTER TABLE, которые удаляют или добавляют столбцы).

См. также

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

Рекомендации по администрированию репликации

Другие ресурсы

Управление репликацией

Справка и поддержка

Получение помощи по SQL Server 2005