Поделиться через


sp_replmonitorsubscriptionpendingcmds (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_replmonitorsubscriptionpendingcmds [ @publisher = ] 'publisher'
    , [ @publisher_db = ] 'publisher_db'
    , [ @publication = ] 'publication'
    , [ @subscriber = ] 'subscriber'
    , [ @subscriber_db = ] 'subscriber_db'
    , [ @subscription_type = ] subscription_type
    , [ @subdb_version = ] subdb_version

Аргументы

[ @publisher = ] 'publisher'

Имя издателя. publisher — sysname, без значения по умолчанию.

[ @publisher_db = ] 'publisher_db'

Имя опубликованной базы данных. publisher_db — sysname без значения по умолчанию.

[ @publication = ] 'publication'

Имя публикации. публикацияsysname, без значения по умолчанию.

[ @subscriber = ] 'подписчик'

Имя подписчика. подписчик — sysname, без значения по умолчанию.

[ @subscriber_db = ] 'subscriber_db'

Имя базы данных подписки. subscriber_db — sysname без значения по умолчанию.

[ @subscription_type = ] subscription_type

Тип подписки. subscription_type является int, без значения по умолчанию и может быть одним из этих значений.

значение Описание
0 Принудительная подписка
1 Подписка по запросу

[ @subdb_version = ] subdb_version

База dbversion данных подписки. subdb_version является необязательным параметром типа int с значением по умолчанию 0.

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

Имя столбца Тип данных Description
pendingcmdcount int Число команд для подписки, ожидающих завершения
estimatedprocesstime int Оценка количества секунд, необходимых для доставки всех ожидающих команд подписчику.

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

0 (успешно) или 1 (сбой).

Замечания

sp_replmonitorsubscriptionpendingcmds используется с репликацией транзакций.

До SQL Server 2019 (15.x) CU17 sp_replmonitorsubscriptionpendingcmds не поддерживается с одноранговой репликацией и возвращает неверное количество ожидающих команд при выполнении запроса топологии одноранговой репликации. В SQL Server 2019 (15.x) CU 17 добавлена поддержка для обеспечения sp_replmonitorsubscriptionpendingcmds совместимости с одноранговых публикаций.

Однако даже при использовании SQL Server 2019 (15.x) CU17 или более поздней версии sp_replmonitorsubscriptionpendingcmds может сообщать о неправильном количестве ожидающих команд при использовании с одноранговой репликацией, если таблица MSrepl_originators содержит устаревшую запись неправильной версии базы данных подписки. Чтобы устранить проблему, удалите все устаревшие записи из MSrepl_originators базы данных подписки или передайте правильность dbversion базы данных подписки при использовании subdb_version аргумента хранимой sp_replmonitorsubscriptionpendingcmds процедуры.

Дополнительные сведения об определении dbversionсм. в KB5017009.

Разрешения

Могут выполняться sp_replmonitorsubscriptionpendingcmdsтолько члены предопределенных ролей сервера sysadmin на распространителю или членах предопределенных ролей базы данных db_owner в базе данных распространителя. Члены списка доступа к публикации для публикации, которая использует базу данных распространителя, может выполняться sp_replmonitorsubscriptionpendingcmds для возврата ожидающих команд для этой публикации.