Страница 9 из 11 Проверка тиражируемых данных Во время сопровождения системы полезно периодически выполнять проверку тиражируемых данных. Эти проверки эффективны, хотя выполняются не так быстро и на время блокируют таблицы сначала на подписчике, а затем на издателе. Серверы, участвующие в тиражировании, во время проверок не должны быть сильно загружены. Проверка может выполняться разными способами, причем как на издателе, так и на подписчиках. 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 синхронизация начнется с момента последней успешно выполненной проверки. |