sp_replmonitorsubscriptionpendingcmds (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Renvoie des informations sur le nombre de commandes en attente pour un abonnement à une publication transactionnelle et une estimation approximative de la durée de leur traitement. Cette procédure stockée renvoie une ligne pour chaque abonnement renvoyé. Cette procédure stockée, utilisée pour surveiller la réplication, est exécutée sur la base de données du serveur de distribution.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publisher = ] 'publisher'

Nom du serveur de publication. publisher est sysname, sans valeur par défaut.

[ @publisher_db = ] 'publisher_db'

Nom de la base de données publiée. publisher_db est sysname, sans valeur par défaut.

[ @publication = ] 'publication'

Nom de la publication. la publication est sysname, sans valeur par défaut.

[ @subscriber = ] 'subscriber'

Nom de l'Abonné. l’abonné est sysname, sans valeur par défaut.

[ @subscriber_db = ] 'subscriber_db'

Nom de la base de données d’abonnement. subscriber_db est sysname, sans valeur par défaut.

[ @subscription_type = ] subscription_type

Type d’abonnement. subscription_type est int, sans valeur par défaut et peut être l’une de ces valeurs.

Valeur Description
0 Abonnement par envoi de données (push)
1 Abonnement par extraction de données (pull)

[ @subdb_version = ] subdb_version

Base dbversion de données d’abonnement. subdb_version est un paramètre facultatif de type int, avec une valeur par défaut de 0.

Jeu de résultats

Nom de la colonne Type de données Description
pendingcmdcount int Nombre de commandes en attente pour l'abonnement.
estimatedprocesstime int Estimer le nombre de secondes nécessaires pour remettre toutes les commandes en attente à l’abonné.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

sp_replmonitorsubscriptionpendingcmds est utilisé avec la réplication transactionnelle.

Avant SQL Server 2019 (15.x) CU17, sp_replmonitorsubscriptionpendingcmds n’a pas été pris en charge avec la réplication d’égal à égal et a retourné un nombre incorrect de commandes en attente lorsqu’elles sont utilisées pour interroger la topologie de réplication d’égal à égal. Dans SQL Server 2019 (15.x) CU 17, la prise en charge a été ajoutée pour rendre sp_replmonitorsubscriptionpendingcmds compatible avec les publications d’égal à égal.

Toutefois, même avec SQL Server 2019 (15.x) CU17 ou version ultérieure, sp_replmonitorsubscriptionpendingcmds peut signaler un nombre incorrect de commandes en attente lorsqu’elles sont utilisées avec la réplication peer-à-peer si la table MSrepl_originators contient une entrée obsolète d’une version incorrecte de la base de données d’abonnement. Pour corriger le problème, supprimez toutes les entrées obsolètes ou MSrepl_originators transmettez la valeur correcte dbversion de la base de données d’abonnement lors de l’utilisation de l’argument subdb_version de la sp_replmonitorsubscriptionpendingcmds procédure stockée.

Consultez KB5017009 pour plus d’informations sur la façon de déterminer dbversion.

autorisations

Seuls les membres du rôle serveur fixe sysadmin sur le serveur de distribution ou les membres du rôle de base de données fixe db_owner dans la base de données de distribution peuvent s’exécuter sp_replmonitorsubscriptionpendingcmds. Les membres de la liste d’accès à la publication pour une publication qui utilise la base de données de distribution peuvent s’exécuter sp_replmonitorsubscriptionpendingcmds pour retourner des commandes en attente pour cette composition.