Сопровождение тиражирования сведением в SQL Server 2000
Страница 9. Проверка тиражируемых данных


 

Проверка тиражируемых данных

Во время сопровождения системы полезно периодически выполнять проверку тиражируемых данных. Эти проверки эффективны, хотя выполняются не так быстро и на время блокируют таблицы сначала на подписчике, а затем на издателе. Серверы, участвующие в тиражировании, во время проверок не должны быть сильно загружены. Проверка может выполняться разными способами, причем как на издателе, так и на подписчиках. Replication Monitor в Enterprise Manager позволяет выполнить проверку всех подписок к публикации. На Экране 3 показаны необходимые для этого случая настройки.


Экран 3. Варианты проверки подписки.

Хранимые процедуры sp_validatemergepullsubscription и sp_validatemergesubscription предоставляют более широкие возможности и позволяют проверить отдельную подписку. Установка в профиле агента сведения значения параметра -Validate, равным 1 или 2, также потребует проверки.

Во время проверки агент сведения подсчитывает и сравнивает количество записей и контрольные суммы для таблиц, участвующих в тиражировании, на подписчике и издателе. В случае неудачной проверки можно использовать имеющуюся в SQL Server 2000 заготовку оповещения Replication: Subscriber has failed data validation. Если проверка дала отрицательный результат, стоит выполнить повторную инициализацию подписки. При повторной инициализации подписки можно использовать возможность предварительной загрузки изменений данных с сервера-подписчика на сервер-издатель перед переносом нового снимка. На Экране 4 показано окно, появляющееся при выборе команды Reinitialize из контекстного меню подписки.


Экран 4. Параметр переноса изменений на сервер-издатель перед повторной инициализацией подписки.

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

EXEC sp_resyncmergesubscription London,
Mydb, MyPublicattion, Moscow, Mydb, 2,
'Oct 2 2001 12:00AM'

означает выбор всех поколений изменений на сервере-издателе London в базе Mydb для публикации MyPub-licattion, начиная с даты Oct 2 2001 12:00AM, и перенос их на сервер-подписчик Moscow в базу Mydb.

При выполнении

EXEC sp_resyncmergesubscription London, Mydb, 
MyPublicattion, Moscow, Mydb, 1

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

 
« Предыдущая статья   Следующая статья »