sp_replmonitorsubscriptionpendingcmds (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure

Restituisce informazioni sul numero di comandi in sospeso per una sottoscrizione di una pubblicazione transazionale e una stima approssimativa del tempo necessario per l'elaborazione di tali comandi. Questa stored procedure restituisce una riga per ogni sottoscrizione restituita. Questa stored procedure, utilizzata per il monitoraggio della replica, viene eseguita nel database di distribuzione del server di distribuzione.

Convenzioni di sintassi Transact-SQL

Sintassi

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

Argomenti

[ @publisher = ] 'publisher'

Nome del server di pubblicazione. publisher è sysname, senza impostazione predefinita.

[ @publisher_db = ] 'publisher_db'

Nome del database pubblicato. publisher_db è sysname, senza impostazione predefinita.

[ @publication = ] 'publication'

Nome della pubblicazione. publication è sysname, senza impostazione predefinita.

[ @subscriber = ] 'subscriber'

Nome del Sottoscrittore. subscriber è sysname, senza impostazione predefinita.

[ @subscriber_db = ] 'subscriber_db'

Nome del database di sottoscrizione. subscriber_db è sysname, senza impostazione predefinita.

[ @subscription_type = ] subscription_type

Tipo di sottoscrizione subscription_type è int, senza valore predefinito e può essere uno di questi valori.

Valore Descrizione
0 Sottoscrizione push
1 Sottoscrizione pull

[ @subdb_version = ] subdb_version

Oggetto dbversion del database di sottoscrizione. subdb_version è un parametro facoltativo di tipo int, con un valore predefinito pari a 0.

Set di risultati

Nome colonna Tipo di dati Descrizione
pendingcmdcount int Numero di comandi in sospeso per la sottoscrizione.
estimatedprocesstime int Stima del numero di secondi necessari per recapitare tutti i comandi in sospeso al sottoscrittore.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_replmonitorsubscriptionpendingcmds viene usato con la replica transazionale.

Prima di SQL Server 2019 (15.x) CU17, sp_replmonitorsubscriptionpendingcmds non era supportato con la replica peer-to-peer e restituiva un numero errato di comandi in sospeso quando veniva usata per eseguire query sulla topologia di replica peer-to-peer. In SQL Server 2019 (15.x) CU 17 è stato aggiunto il supporto per rendere sp_replmonitorsubscriptionpendingcmds compatibile con le pubblicazioni peer-to-peer.

Tuttavia, anche con SQL Server 2019 (15.x) CU17 o versione successiva, sp_replmonitorsubscriptionpendingcmds potrebbe segnalare un numero errato di comandi in sospeso quando viene usata con la replica peer-to-peer se la tabella MSrepl_originators contiene una voce non aggiornata di una versione non corretta del database di sottoscrizione. Per risolvere il problema, eliminare tutte le voci non aggiornate da MSrepl_originators o passare il corretto dbversion del database di sottoscrizione quando si usa l'argomento subdb_version per la sp_replmonitorsubscriptionpendingcmds stored procedure.

Per informazioni dettagliate su come determinare dbversion, vedere KB5017009 .

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin nel server di distribuzione o nei membri del ruolo predefinito del database db_owner nel database di distribuzione possono eseguire sp_replmonitorsubscriptionpendingcmds. I membri dell'elenco di accesso alla pubblicazione per una pubblicazione che utilizza il database di distribuzione possono essere eseguiti sp_replmonitorsubscriptionpendingcmds per restituire i comandi in sospeso per tale pubblicazione.