Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Монитор репликации — это графическое средство, позволяющее отслеживать топологию репликации. Доступ к тем же данным мониторинга можно получить программным способом с помощью Transact-SQL хранимых процедур репликации или объектов управления репликацией (RMO). Эти объекты позволяют программировать следующие задачи:
Отслеживайте состояние издателей, публикаций и подписок.
Следите за сеансами агента слияния у одного или нескольких подписчиков.
Отслеживайте команды транзакций, ожидающие применения на одном или нескольких подписчиках.
Определите пороговые метрики, определяющие, когда для публикации требуется вмешательство.
Отслеживайте состояние маркеров трассировки.
В этом разделе:
объекты управления репликацией (RMO)
Transact-SQL
Для мониторинга издателей, публикаций и подписок от Дистрибьютора
На базе данных распространителя выполните sp_replmonitorhelppublisher. Это предоставляет информацию о мониторинге для всех издателей, использующих этот распространитель. Чтобы ограничить результирующий набор одним издателем, укажите @publisher.
На распределителе в базе данных распространителя выполните sp_replmonitorhelppublication. Возвращает информацию мониторинга для всех публикаций, осуществляемых этим распространителем. Чтобы ограничить результирующий набор одним издателем, публикацией или опубликованной базой данных, укажите @publisher, @publication или @publisher_db соответственно.
На распределителе в базе данных выполните sp_replmonitorhelpsubscription. Возвращает сведения о мониторинге всех подписок, которые используют этот распространитель. Чтобы ограничить результирующий набор подписками, принадлежащими одному издателю, публикации или опубликованной базе данных, укажите @publisher, @publication или @publisher_db соответственно.
Мониторинг транзакционных команд, ждущих применения на подписчике
- На распространитее в базе данных распространителя выполните sp_replmonitorsubscriptionpendingcmds. Возвращаются сведения о мониторинге всех команд, находящихся в ожидании для всех подписок, использующих этого распространителя. Чтобы ограничить результирующий набор командами, ожидающими выполнения для подписок, принадлежащих одному издателю, подписчику, публикации или опубликованной базе данных, укажите @publisher, @subscriber, @publication или @publisher_db соответственно.
Мониторинг изменений слиянием, ожидающих отправки или скачивания
На издателе в базе данных публикации выполните sp_showpendingchanges. Выдает набор результатов, показывающий сведения об изменениях, ожидающих репликации на подписчиков. Чтобы ограничить результирующий набор изменениями, принадлежащими одной публикации или статье, укажите @publication или @article соответственно.
На подписчике в базе данных подписки выполните sp_showpendingchanges. Возвращает результирующий набор, показывающий сведения об изменениях, ожидающих репликации на издателя. Чтобы ограничить результирующий набор изменениями, принадлежащими одной публикации или статье, укажите @publication или @article соответственно.
Мониторинг сеансов агента слияния
На узле распространителя в базе данных дистрибуции выполните sp_replmonitorhelpmergesession. Это возвращает сведения о мониторинге, включая Session_id, на всех сеансах агента слияния для всех подписок с помощью этого распространителя. Вы также можете получить Session_id , запрашивая системную таблицу MSmerge_sessions .
На базе данных распространителя выполните sp_replmonitorhelpmergesessiondetail. Укажите значение Session_id из шага 1 для @session_id. Здесь отображаются подробные сведения о мониторе сеанса.
Повторите шаг 2 для каждого интересующего сеанса.
Мониторинг сеансов агента слияния для извлечения подписок с подписчика
На подписчике в базе данных подписки выполните sp_replmonitorhelpmergesession. Для данной подписки укажите @publisher, @publication и имя базы данных публикации для @publisher_db. Возвращаются сведения о мониторинге для последних пяти сеансов работы агента слияния для этой подписки. Обратите внимание на значение Session_id для сеансов, интересующих результирующий набор.
На подписчике в базе данных подписки выполните sp_replmonitorhelpmergesessiondetail. Укажите значение Session_id из шага 1 для @session_id. В этом разделе отображаются подробные сведения о мониторинге сеанса.
Повторите шаг 2 для каждого интересующего сеанса.
Просмотр и изменение метрик порогового значения монитора для публикации
На сервере распространителя в базе данных распространения выполните sp_replmonitorhelppublicationthresholds. Возвращает пороговые значения мониторинга для всех публикаций, использующих этот распространитель. Чтобы ограничить результирующий набор для отслеживания пороговых значений для публикаций, принадлежащих одному издателю или опубликованной базе данных или одной публикации, укажите @publisher, @publisher_db или @publication соответственно. Обратите внимание на значение Metric_id для любых пороговых значений, которые необходимо изменить. Дополнительные сведения см. в статье Set Thresholds and Warnings in Replication Monitor.
На распространителе в распределительной базе данных выполните sp_replmonitorchangepublicationthreshold. При необходимости укажите следующее:
Значение Metric_id , полученное на шаге 1 для @metric_id.
Новое значение для метрики порогового значения монитора для @value.
Значение 1 для @shouldalert для ведения журнала оповещений при достижении этого порогового значения или значение 0 , если оповещение не требуется.
Значение 1 для @mode для включения метрики порогового значения монитора или значение 2 для отключения его.
Объекты управления репликацией (RMO)
Для мониторинга подписки на публикацию слияния на стороне подписчика
Создайте подключение к подписчику ServerConnection с помощью класса.
Создайте экземпляр MergeSubscriberMonitor класса и задайте PublisherDBPublicationSubscriberDBPublisherсвойства для подписки и задайте для свойства, созданного ConnectionContextServerConnection на шаге 1.
Вызовите один из следующих методов, чтобы вернуть сведения о сеансах агента слияния для этой подписки:
GetSessionsSummary — возвращает массив объектов с информацией до последних MergeSessionSummary пяти сеансов агента слияния. Обратите внимание на SessionId значение для всех интересующих сеансов.
GetSessionsSummary — возвращает массив объектов с информацией о сеансах MergeSessionSummary агента слияния, которые произошли за последние несколько часов, переданных в качестве параметра часов (до последних пяти сеансов). Обратите внимание на SessionId значение для всех интересующих сеансов.
GetLastSessionSummary — возвращает MergeSessionSummary объект с информацией о последнем сеансе агента слияния. Обратите внимание на значение SessionId для этого сеанса.
GetSessionsSummaryDataSet — возвращает DataSet объект с информацией до последних пяти сеансов агента слияния, по одному в каждой строке. Обратите внимание на значение столбца Session_id для любых интересующих сеансов.
GetLastSessionSummaryDataRow — возвращает DataRow объект с информацией о последнем сеансе агента слияния. Обратите внимание на значение столбца Session_id для этого сеанса.
(Необязательно) Вызов RefreshSessionSummary обновления данных для объекта, переданного MergeSessionSummary как mss, или вызов RefreshSessionSummary обновления данных в объекте, переданного DataRow как drRefresh.
Используя идентификатор сеанса, полученный на шаге 3, вызовите один из следующих методов для возврата сведений о конкретном сеансе:
GetSessionDetails — возвращает массив объектов для предоставленного идентификатора MergeSessionDetailсеанса.
GetSessionDetailsDataSet — возвращает DataSet объект с сведениями для указанного идентификатора сеанса.
Чтобы мониторить свойства репликации для всех публикаций на Дистрибьюторе
Создайте соединение с распространителем с помощью класса ServerConnection .
Создайте экземпляр класса ReplicationMonitor.
Установите свойству ConnectionContext значение, созданное в шаге 1 ServerConnection.
Чтобы получить свойства объекта, вызовите метод LoadProperties .
Выполните один или несколько следующих методов, чтобы вернуть сведения о репликации для всех издателей, использующих этот распространитель.
EnumDistributionAgents — возвращает DataSet объект, содержащий сведения обо всех агентах распространителя на этом распространитее.
EnumErrorRecords — возвращает DataSet объект, содержащий сведения об ошибках, хранящихся на распределителе.
EnumLogReaderAgents — возвращает DataSet объект, содержащий сведения обо всех агентах чтения журналов на распространитее.
EnumMergeAgents — возвращает DataSet объект, содержащий сведения обо всех агентах слияния на распространитее.
EnumMiscellaneousAgents — возвращает DataSet объект, содержащий сведения обо всех других агентах репликации на распространитее.
EnumPublishers — возвращает DataSet объект, содержащий сведения обо всех издателях на этом распространитее.
EnumPublishers2 — возвращает DataSet объект, возвращающий издателей, использующих этот распространитель.
EnumQueueReaderAgents — возвращает DataSet объект, содержащий сведения обо всех агентах чтения очередей на распространитее.
EnumQueueReaderAgentSessionDetails — возвращает объект DataSet, который содержит подробную информацию об указанном агенте чтения очереди и сеансе.
EnumQueueReaderAgentSessions — возвращает DataSet объект, который содержит информацию о сеансе для указанного агента чтения очереди.
EnumSnapshotAgents — возвращает DataSet объект, содержащий сведения обо всех агентах моментальных снимков на распространитее.
Отслеживание свойств публикации для конкретного издателя на дистрибьюторе.
Создайте соединение с распространителем с помощью класса ServerConnection .
PublisherMonitor Получите объект одним из этих способов.
Создайте экземпляр класса PublisherMonitor. Установите свойство Name для издателя и установите свойство ConnectionContext на ServerConnection, созданное на шаге 1. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращается
false, имя издателя было определено неправильно или публикация не существует.PublisherMonitorCollection, доступ к которому осуществляется с помощью свойства PublisherMonitors существующего объекта ReplicationMonitor.
Выполните один или несколько следующих методов, чтобы вернуть сведения о репликации для всех публикаций, принадлежащих этому издателю.
EnumDistributionAgentSessionDetails — возвращает DataSet объект, содержащий сведения о указанном агенте распространителя и сеансе.
EnumDistributionAgentSessions — возвращает DataSet объект, содержащий информацию о сеансе указанного агента распространителя.
EnumErrorRecords — возвращает объект, содержащий сведения об указанной ошибке DataSet.
EnumLogReaderAgentSessionDetails — возвращает DataSet объект, содержащий сведения о указанном агенте чтения журналов и сеансе.
EnumLogReaderAgentSessions — возвращает DataSet объект, содержащий сведения о сеансе для указанного агента чтения журналов.
EnumMergeAgentSessionDetails — возвращает DataSet объект, содержащий сведения об указанном агенте слияния и сеансе.
EnumMergeAgentSessionDetails2 — возвращает DataSet объект, содержащий дополнительные сведения об указанном агенте слияния и сеансе.
EnumMergeAgentSessions — возвращает DataSet объект, содержащий сведения о сеансе для указанного агента слияния.
EnumMergeAgentSessions2 — возвращает DataSet объект, содержащий дополнительные сведения о сеансе для указанного агента слияния.
EnumPublications — возвращает DataSet объект, содержащий сведения обо всех публикациях на этом распространитее.
EnumPublications2 — возвращает DataSet объект, содержащий дополнительные сведения обо всех публикациях на этом распространитее.
EnumSnapshotAgentSessionDetails — возвращает DataSet объект, содержащий сведения об указанном агенте моментальных снимков и сеансе.
EnumSnapshotAgentSessions — возвращает DataSet объект, содержащий сведения о сеансе для указанного агента моментальных снимков.
EnumSubscriptions — возвращает DataSet объект, содержащий сведения обо всех подписках на публикации на этом распространитее.
Отслеживание характеристик конкретной публикации на распространителе
Создайте соединение с распространителем с помощью класса ServerConnection .
Получите объект PublicationMonitor одним из следующих способов.
Создайте экземпляр класса PublicationMonitor. Задайте для публикации свойства DistributionDBName, PublisherName, PublicationDBName и Name, и задайте свойство ConnectionContext на ServerConnection, созданный на шаге 1. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает
false, свойства публикации были определены неправильно или публикация не существует.PublicationMonitorCollection полученное через свойство PublicationMonitors существующего объекта PublisherMonitor.
Выполните один или несколько следующих методов для возврата сведений об этой публикации.
EnumErrorRecords — возвращает объект, содержащий записи об ошибках об указанной DataSet ошибке.
EnumLogReaderAgent — возвращает DataSet объект, содержащий сведения об агенте чтения журналов для этой публикации.
EnumMonitorThresholds — возвращает DataSet объект, содержащий сведения о пороговых значениях предупреждений монитора, заданных для этой публикации.
EnumQueueReaderAgent — возвращает DataSet объект, содержащий сведения об агенте чтения очередей, используемом этой публикацией.
EnumSnapshotAgent — возвращает DataSet объект, содержащий сведения об агенте моментальных снимков для этой публикации.
EnumSubscriptions — возвращает DataSet объект, содержащий сведения о подписках на эту публикацию.
EnumSubscriptions2 — возвращает DataSet объект, содержащий дополнительные сведения о подписках на эту публикацию на основе предоставленного SubscriptionResultOption.
EnumTracerTokenHistory — возвращает DataSet объект, содержащий сведения о задержке для указанного маркера трассировки.
EnumTracerTokens — возвращает DataSet объект, содержащий сведения обо всех маркерах трассировки, вставленных в эту публикацию.
Мониторинг транзакционных команд, ожидающих применения на подписчике
Создайте соединение с распространителем с помощью класса ServerConnection .
Получите объект PublicationMonitor одним из этих способов.
Создайте экземпляр класса PublicationMonitor. Задайте свойства DistributionDBName, PublisherName, PublicationDBName и Name для публикации, и задайте свойство ConnectionContext в ServerConnection, созданное на шаге 1. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает
false, свойства публикации были определены неправильно или публикация не существует.PublicationMonitorCollection Из доступного PublicationMonitors с помощью свойства существующего PublisherMonitor объекта.
TransPendingCommandInfo Выполните метод, который возвращает PendingCommandInfo объект.
Используйте свойства этого PendingCommandInfo объекта, чтобы определить предполагаемое количество ожидающих команд и время, необходимое для завершения доставки этих команд.
Установка пороговых значений предупреждений монитора для публикации
Создайте соединение с распространителем с помощью класса ServerConnection .
Получите объект PublicationMonitor одним из этих способов.
Создайте экземпляр класса PublicationMonitor. Задайте для публикации свойства DistributionDBName, PublisherName, PublicationDBName и Name, а также установите свойство ConnectionContext для ServerConnection, созданного на шаге 1. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает
false, свойства публикации были определены неправильно или публикация не существует.PublicationMonitorCollection Из доступного PublicationMonitors с помощью свойства существующего PublisherMonitor объекта.
Выполните метод EnumMonitorThresholds. Обратите внимание на текущие параметры порогового значения в возвращаемых ArrayList объектах MonitorThreshold .
ChangeMonitorThreshold Выполните метод. Передайте следующие параметры:
metricID — значение Int32, представляющее метрику порогового значения мониторинга из таблицы ниже:
Ценность Описание 1 expiration— отслеживает неизбежное истечение срока действия подписок на публикации транзакций.2 latency— отслеживает эффективность подписок на транзакционные публикации.4 mergeexpiration— отслеживает неизбежное истечение срока действия подписок на слияние публикаций.5 mergeslowrunduration— отслеживает длительность синхронизации слиянием по подключениям с низкой пропускной способностью (dialup).6 mergefastrunduration— отслеживает длительность синхронизации объединения по подключениям с высокой скоростью (LAN).7 mergefastrunspeed— мониторит скорость синхронизации слияния через высокоскоростные подключения (LAN).8 mergeslowrunspeed— отслеживает скорость синхронизаций при слиянии по подключению с низкой пропускной способностью (коммутируемое соединение).включить - Boolean значение, указывающее, включена ли метрика для публикации.
thresholdValue — целочисленное значение, задающее пороговое значение.
shouldAlert — целое число, указывающее, должно ли это пороговое значение создать оповещение.