Хранимая процедура 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
Только для внутреннего использования.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
Имя столбца | Тип данных | Описание |
---|---|---|
status |
int |
Максимальное значение состояния, берущееся по всем агентам репликации, связанным с публикацией; принимает одно из следующих значений: 1 = Запущен; 2 = Выполнен; 3 = Выполняется; 4 = Бездействует; 5 = Повтор; 6 = Ошибка. |
warning |
int |
Максимальный уровень предупреждений, выдаваемых подпиской, принадлежащей публикации; это значение может быть результатом операции логического OR над одним или несколькими из следующих значений: 1 = expiration — подписка на публикацию транзакций не была синхронизирована с пороговым сроком хранения; 2 = latency — превышение времени, требуемого для репликации данных из распространителя транзакций подписчиком, над пороговым значением, в секундах; 4 = mergeexpiration — подписка на публикацию слиянием не была синхронизирована с пороговым сроком хранения; 8 = mergefastrunduration — превышение времени, потребовавшегося для завершения синхронизации подписки слиянием через быстрое сетевое соединение, над пороговым значением, в секундах; 16 = mergeslowrunduratio — превышение времени, потребовавшегося для завершения синхронизации подписки слиянием через медленное или модемное сетевое соединение, над пороговым значением, в секундах; 32 = mergefastrunspeed — скорость доставки строк во время синхронизации подписки слиянием через быстрое сетевое соединение оказалась ниже пороговой, в строках в секунду; 64 = mergeslowrunspeed — скорость доставки строк во время синхронизации подписки слиянием через медленное или модемное сетевое соединение оказалась ниже пороговой, в строках в секунду. |
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 |
Идентификатор профиля агента слияния. |
Замечания
Процедура sp_replmonitorhelpsubscription применима для всех типов репликации.
Она упорядочивает набор результатов в зависимости от серьезности состояния подписки, которая определяется по значению параметра monitorranking. Например, строки всех подписок в состоянии ошибки находятся выше строк подписок с предупреждениями.
Разрешения
Только члены фиксированной роли db_owner или replmonitor базы данных распространителя могут выполнять хранимую процедуру sp_replmonitorhelpsubscription.
См. также
Другие ресурсы
How to: Programmatically Monitor Replication (Replication Transact-SQL Programming)