sp_replmonitorsubscriptionpendingcmds (Transact-SQL)
Gilt für: SQL Server Azure 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
(erfolgreich) 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.