Хранимая процедура sp_replmonitorhelpsubscription (Transact-SQL)

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

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

sp_replmonitorhelpsubscription [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
    [ , [ @publication = ] 'publication' ]
    [ , [ @publication_type = ] publication_type ] 
    [ , [ @mode = ] mode ]
    [ , [ @topnum = ] topnum ] 
    [ , [ @exclude_anonymous = ] exclude_anonymous ] 
    [ , [ @refreshpolicy = ] refreshpolicy ]

Аргументы

  • [ @publisher = ] 'publisher'
    Имя издателя, состояние которого отслеживается. Аргумент publisher имеет тип sysname и значение по умолчанию NULL. Если его значение равно NULL, то возвращаются сведения для всех издателей, использующих данный распространитель.

  • [ @publisher_db = ] 'publisher_db'
    Имя опубликованной базы данных. Аргумент publisher_db имеет тип sysname и значение по умолчанию NULL. Если значение равно NULL, возвращаются сведения для всех баз данных, публикуемых данным издателем.

  • [ @publication = ] 'publication'
    Имя отслеживаемой публикации. Аргумент publication имеет тип sysname и значение по умолчанию NULL.

  • [ @publication_type = ] publication_type
    Тип публикации. Аргумент publication_type имеет тип int и может принимать одно из следующих значений.

    Значение

    Описание

    0

    Публикация транзакций.

    1

    Публикация моментальных снимков.

    2

    Публикация слиянием.

    NULL (по умолчанию)

    Репликация пытается определить тип публикации.

  • [ @mode = ] mode
    Режим фильтрации возвращаемых сведений о подписках. Аргумент mode имеет тип int и может принимать одно из следующих значений.

    Значение

    Описание

    0 (по умолчанию)

    Возвращать все подписки.

    1

    Возвращать подписки с ошибками.

    2

    Возвращать подписки с предупреждениями о нарушениях пороговых показателей.

    3

    Возвращать подписки с ошибками или предупреждениями о нарушениях пороговых показателей.

    4

    Возвращать 25 подписок с худшей производительностью.

    5

    Возвращать 50 подписок с худшей производительностью.

    6

    Возвращать подписки, синхронизируемые в данный момент.

    7

    Возвращать подписки, не синхронизируемые в данный момент.

  • [ @topnum = ] topnum
    Ограничивает результирующий набор указанным числом подписок, которые берутся с начала списка подписок. Аргумент topnum имеет тип int и не имеет значения по умолчанию.

  • [ @exclude_anonymous = ] exclude_anonymous
    Указывает, исключать ли из результирующего набора анонимные подписки по запросу. Аргумент exclude_anonymous имеет тип bit и значение по умолчанию 0; значение 1 подразумевает, что анонимные подписки исключаются, а значение 0 — что они включаются.

  • [ @refreshpolicy= ] refreshpolicy
    Только для внутреннего применения.

Результирующие наборы

Имя столбца

Тип данных

Описание

status

int

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

6 = ошибка;

5 = повтор;

2 = остановлено;

4 = бездействует;

3 = выполняется;

1 = выполнение начато.

warning

int

Максимальный уровень предупреждений, выдаваемых подпиской, принадлежащей публикации; это значение может быть результатом операции логического OR над одним или несколькими из следующих значений:

1 = expiration — подписка на публикацию транзакций не была синхронизирована с пороговым сроком хранения;

2 = latency — превышение времени, требуемого для репликации данных из распространителя транзакций подписчиком, над пороговым значением, в секундах;

4 = mergeexpiration — подписка на публикацию слиянием не была синхронизирована с пороговым сроком хранения;

8 = mergefastrunduration — превышение времени, потребовавшегося для завершения синхронизации подписки слиянием через быстрое сетевое соединение, над пороговым значением, в секундах;

16 = mergeslowrunduratio — превышение времени, потребовавшегося для завершения синхронизации подписки слиянием через медленное или коммутируемое сетевое подключение, над пороговым значением, в секундах;

32 = mergefastrunspeed — скорость доставки строк во время синхронизации подписки слиянием через быстрое сетевое подключение оказалась ниже пороговой, в строках в секунду;

64 = скорость слияния при медленном соединении — скорость доставки строк во время синхронизации подписки слиянием не достигла порогового значения (строки в секунду) при медленном или коммутируемом сетевом соединении.

subscriber

sysname

Имя подписчика.

subscriber_db

sysname

Имя базы данных, использующейся подпиской.

publisher_db

sysname

Имя базы данных публикации.

publication

sysname

Имя публикации.

publication_type

int

Тип публикации, может принимать одно из следующих значений:

0 = Публикация транзакций;

1 = Публикация моментальных снимков;

2 = Публикация слиянием.

subtype

int

Тип подписки может принимать одно из следующих значений:

0 = Принудительная;

1 = По запросу;

2 = Анонимная.

latency

int

Наибольшая задержка (в секундах) при изменении данных, зафиксированная для публикации транзакций агентом чтения журнала или агентом распространителя.

latencythreshold

int

Максимальная задержка для публикации транзакций, при превышении которой создается предупреждение.

agentnotrunning

int

Время в часах, в течение которого агент не был запущен.

agentnotrunningthreshold

int

Время в часах, в течение которого агент может не быть запущен, но предупреждения не последует.

timetoexpiration

int

Время в часах, после которого срок действия подписки истекает, если она не будет синхронизирована.

expirationthreshold

int

Время в часах, после которого срок действия подписки истекает, и создается предупреждение.

last_distsync

datetime

Дата и время последнего запуска агента распространителя.

distribution_agentname

sysname

Имя задания агента распространителя для подписки на публикацию транзакций.

mergeagentname

sysname

Имя задания агента слияния для подписки на публикацию слиянием.

mergesubscriptionfriendlyname

sysname

Понятное имя подписки.

mergeagentlocation

sysname

Имя сервера, на котором запущен агент слияния.

mergeconnectiontype

int

Соединение, использующееся для синхронизации подписки на публикацию слиянием, может быть одного из следующих типов:

1 = локальная сеть (LAN);

2 = коммутируемое сетевое соединение

3 = Веб-синхронизация.

mergePerformance

int

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

mergerunspeed

float

Скорость доставки последней синхронизации подписки.

mergerunduration

int

Время, затраченное на последнюю синхронизацию подписки.

monitorranking

int

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

Для публикаций транзакций:

60 = Ошибка;

56 = Предупреждение: критическое для производительности

52 = Предупреждение: срок действия скоро истекает или уже истек

50 = Предупреждение: подписка не инициализирована

40 = Попытка повторно выполнить команду, завершившуюся неудачно

30 = Не выполняется (завершено успешно)

20 = Выполняется (запуск, выполнение или бездействие)

Для публикаций слиянием.

60 = Ошибка

56 = Предупреждение: критическое для производительности

54 = Предупреждение: длительное слияние;

52 = Предупреждение: скоро истекает срок действия;

50 = Предупреждение: подписка не инициализирована;

40 = Попытка повторно выполнить команду, завершившуюся неудачно;

30 = Выполняется (запуск, выполнение или бездействие);

20 = Не выполняется (завершено успешно).

distributionagentjobid

binary(16)

Идентификатор задания агента распространителя для подписки на публикацию транзакций.

mergeagentjobid

binary(16)

Идентификатор задания агента слияния для подписки на публикацию слиянием.

distributionagentid

int

Идентификатор задания агента распространителя для подписки.

distributionagentprofileid

int

Идентификатор профиля агента распространителя.

mergeagentid

int

Идентификатор задания агента слияния для подписки.

mergeagentprofileid

int

Идентификатор профиля агента слияния.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Процедура sp_replmonitorhelpsubscription применима для всех типов репликации.

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

Разрешения

Только члены предопределенной роли db_owner или replmonitor базы данных распространителя могут выполнять хранимую процедуру sp_replmonitorhelpsubscription.

См. также

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

Наблюдение за репликацией программным образом