Сопровождение тиражирования сведением в SQL Server 2000 - Проверка тиражируемых данных
ОГЛАВЛЕНИЕ
Проверка тиражируемых данных
Во время сопровождения системы полезно периодически выполнять проверку тиражируемых данных. Эти проверки эффективны, хотя выполняются не так быстро и на время блокируют таблицы сначала на подписчике, а затем на издателе. Серверы, участвующие в тиражировании, во время проверок не должны быть сильно загружены. Проверка может выполняться разными способами, причем как на издателе, так и на подписчиках. 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
синхронизация начнется с момента последней успешно выполненной проверки.