sys.sp_replmonitorsubscriptionpendingcmds(Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

返回有关对事务发布的订阅的等待命令数以及处理这些命令的粗略估计时间的信息。 此存储过程针对每个返回的订阅返回一行。 在分发服务器的分发数据库上执行此存储过程,用于监视复制。

Transact-SQL 语法约定

语法

sys.sp_replmonitorsubscriptionpendingcmds
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @subscriber = ] N'subscriber'
    , [ @subscriber_db = ] N'subscriber_db'
    , [ @subscription_type = ] subscription_type
    [ , [ @subdb_version = ] subdb_version ]
[ ; ]

参数

[ @publisher = ] N'publisher'

发布服务器的名称。 @publisher为 sysname,无默认值。

[ @publisher_db = ] N'publisher_db'

已发布的数据库的名称。 @publisher_dbsysname,无默认值。

[ @publication = ] N'publication'

发布的名称。 @publicationsysname,无默认值。

[ @subscriber = ] N'subscriber'

订阅服务器的名称。 @subscribersysname,无默认值。

[ @subscriber_db = ] N'subscriber_db'

订阅数据库的名称。 @subscriber_db为 sysname,无默认值。

[ @subscription_type = ] subscription_type

订阅的类型。 @subscription_typeint,没有默认值,可以是这些值之一。

说明
0 推送订阅
1 请求订阅

[ @subdb_version = ] subdb_version

dbversion订阅数据库。 @subdb_version 是一个可选的参数类型为 int,默认值为 0。

结果集

列名称 数据类型 说明
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

权限

只有分发服务器上的 sysadmin 固定服务器角色的成员sp_replmonitorsubscriptionpendingcmds 使用分发数据库的发布的发布访问列表的成员可以执行 sp_replmonitorsubscriptionpendingcmds 该发布以返回该发布的挂起命令。