sp_replmonitorsubscriptionpendingcmds (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Gibt Informationen zur Anzahl der ausstehenden Befehle für ein Abonnement einer Transaktionsveröffentlichung zurück sowie eine grobe Schätzung, wie viel Zeit ihre Verarbeitung in Anspruch nimmt. Die gespeicherte Prozedur gibt eine Zeile für jedes zurückgegebene Abonnement zurück. Diese gespeicherte Prozedur, die zur Überwachung der Replikation verwendet wird, wird auf dem Verteiler für die Verteilungsdatenbank ausgeführt.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @publisher = ] 'publisher'

Der Name des Herausgebers. Publisher ist "sysname" ohne Standard.

[ @publisher_db = ] 'publisher_db'

Der Name der veröffentlichten Datenbank. publisher_db ist "sysname" ohne Standard.

[ @publication = ] 'Publikation'

Der Name der Veröffentlichung. Publikation ist sysname, ohne Standard.

[ @subscriber = ] 'Subscriber'

Den Namen des Abonnenten. subscriber is sysname, with no default.

[ @subscriber_db = ] 'subscriber_db'

Der Name der Abonnementdatenbank. subscriber_db ist "sysname" ohne Standard.

[ @subscription_type = ] subscription_type

Der Abonnementtyp. subscription_type ist int, ohne Standard und kann einer dieser Werte sein.

Wert Beschreibung
0 Pushabonnement
1 Pullabonnement

[ @subdb_version = ] subdb_version

Die dbversion Abonnementdatenbank. subdb_version ist ein optionaler Parameter vom Typ "int" mit dem Standardwert 0.

Resultset

Spaltenname Datentyp BESCHREIBUNG
pendingcmdcount int Die Anzahl der für das Abonnement ausstehenden Befehle.
estimatedprocesstime int Schätzung der Anzahl der Sekunden, die erforderlich sind, um alle ausstehenden Befehle an den Abonnenten zu übermitteln.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler).

Hinweise

sp_replmonitorsubscriptionpendingcmds wird mit der Transaktionsreplikation verwendet.

Vor SQL Server 2019 (15.x) CU17 wurde die Peer-to-Peer-Replikation nicht unterstützt und eine falsche Anzahl von ausstehenden Befehlen zurückgegeben, sp_replmonitorsubscriptionpendingcmds wenn peer-to-Peer-Replikationstopologie abgefragt wird. In SQL Server 2019 (15.x) CU 17 wurde Unterstützung hinzugefügt, um mit Peer-to-Peer-Publikationen kompatibel zu machen sp_replmonitorsubscriptionpendingcmds .

Selbst bei SQL Server 2019 (15.x) CU17 oder höher könnte jedoch eine falsche Anzahl von ausstehenden Befehlen angezeigt werden, wenn sie bei der Peer-to-Peer-Replikation verwendet werden, sp_replmonitorsubscriptionpendingcmds wenn die Tabelle MSrepl_originators einen veralteten Eintrag einer falschen Version der Abonnementdatenbank enthält. Um das Problem zu beheben, löschen Sie entweder alle veralteten Einträge aus MSrepl_originators der Abonnementdatenbank, oder übergeben Sie die richtige dbversion Datenbank, wenn Sie das subdb_version Argument für die sp_replmonitorsubscriptionpendingcmds gespeicherte Prozedur verwenden.

Weitere Informationen zur Ermittlung finden Sie unter KB5017009.dbversion

Berechtigungen

Es können nur Mitglieder der festen Serverrolle "sysadmin " am Verteiler oder den Mitgliedern der db_owner festen Datenbankrolle in der Verteilungsdatenbank ausgeführt werden sp_replmonitorsubscriptionpendingcmds. Elemente der Publikationszugriffsliste für eine Publikation, die die Verteilerdatenbank verwendet, können ausgeführt werden sp_replmonitorsubscriptionpendingcmds , um ausstehende Befehle für diese Publikation zurückzugeben.