sp_replmonitorhelpsubscription (Transact-SQL)
适用于: SQL Server Azure SQL 托管实例
返回发布服务器上属于一个或多个发布的订阅的当前状态信息,并为每个返回的订阅返回一行。 在分发服务器的分发数据库上执行此存储过程,用于监视复制。
语法
sp_replmonitorhelpsubscription
[ [ @publisher = ] N'publisher' ]
[ , [ @publisher_db = ] N'publisher_db' ]
[ , [ @publication = ] N'publication' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @mode = ] mode ]
[ , [ @topnum = ] topnum ]
[ , [ @exclude_anonymous = ] exclude_anonymous ]
[ , [ @refreshpolicy = ] refreshpolicy ]
[ ; ]
参数
[ @publisher = ] N'publisher'
正在监视其状态的发布服务器的名称。 @publisher为 sysname,默认值为 NULL
. 如果 为 null,则会为使用分发服务器的所有发布服务器返回信息。
[ @publisher_db = ] N'publisher_db'
已发布的数据库的名称。 @publisher_db为 sysname,默认值为 NULL
. 如果 NULL
,则为发布服务器上的所有已发布数据库返回信息。
[ @publication = ] N'publication'
要监视的发布的名称。 @publication为 sysname,默认值为 NULL
.
[ @publication_type = ] publication_type
发布的类型。 @publication_type 为 int,可以是以下值之一。
值 | 说明 |
---|---|
0 |
事务发布。 |
1 |
快照发布。 |
2 |
合并发布。 |
NULL (默认值) |
由复制来确定发布类型。 |
[ @mode = ] 模式
返回订阅监视信息时要使用的筛选模式。 @mode为 int,可以是这些值之一。
值 | 说明 |
---|---|
0 (默认值) |
返回所有订阅。 |
1 |
只返回带错误的订阅。 |
2 |
仅返回生成阈值指标警告的订阅。 |
3 |
仅返回错误或生成阈值指标警告的订阅。 |
4 |
返回表现最差的前 25 个订阅。 |
5 |
返回执行情况最差的 50 个订阅。 |
6 |
只返回当前同步的订阅。 |
7 |
仅返回当前未同步的订阅。 |
[ @topnum = ] topnum
将结果集限制为返回数据顶部的指定订阅编号。 @topnum为 int,默认值为 NULL
.
[ @exclude_anonymous = ] exclude_anonymous
如果从结果集中排除匿名拉取订阅。 @exclude_anonymous 为 位,默认值为 0
.
- 一个值
1
意味着排除匿名订阅。 0
一个值,表示它们已包含。
[ @refreshpolicy = ] refreshpolicy
标识为仅供参考。 不支持。 不保证以后的兼容性。
结果集
列名称 | 数据类型 | 描述 |
---|---|---|
status |
int | 检查与该发布关联的所有复制代理的状态,并返回按以下顺序找到的最高级状态:6 = 失败5 = 重试2 = 已停止4 = 空闲3 = 正在进行中1 = Started |
warning |
int | 由属于该发布的订阅所生成的最大阈值警告,可以是下列一个或多个值进行逻辑或运算的结果。1 = expiration - 事务发布的订阅未在保留期阈值内同步。2 = latency - 将数据从事务发布服务器复制到订阅服务器所花费的时间超过阈值(以秒为单位)。4 = mergeexpiration - 合并发布的订阅未在保留期阈值内同步。8 = mergefastrunduration - 完成合并订阅同步所需的时间超过了通过快速网络连接的阈值(以秒为单位)。16 = mergeslowrunduration - 完成合并订阅同步所花费的时间超过了网络连接缓慢的阈值(以秒为单位)。32 = mergefastrunspeed - 合并订阅同步期间行的传递速率未能通过快速网络连接保持阈值速率(以每秒行为单位)。64 = mergeslowrunspeed - 合并订阅同步期间行的传递速率未能通过网络连接缓慢保持阈值速率(以每秒行为单位)。 |
subscriber |
sysname | 订阅服务器的名称。 |
subscriber_db |
sysname | 用于订阅的数据库的名称。 |
publisher_db |
sysname | 发布数据库的名称。 |
publication |
sysname | 发布的名称。 |
publication_type |
int | 发布的类型,可以是以下值之一:0 = 事务发布1 = 快照发布2 = 合并发布 |
subtype |
int | 订阅类型,可以是以下值之一:0 = 推送1 = 拉取2 = 匿名 |
latency |
int | 在事务发布中,由日志读取器代理或分发代理传播的数据更改的最长滞后时间(以秒为单位)。 |
latencythreshold |
int | 事务发布的最大延迟,高于该发布引发警告。 |
agentnotrunning |
int | 代理未运行的时间长度(以小时为单位)。 |
agentnotrunningthreshold |
int | 在引发警告之前代理未运行的时间长度(以小时为单位)。 |
timetoexpiration |
int | 订阅过期(以小时为单位)的时间长度(如果尚未同步)。 |
expirationthreshold |
int | 订阅到期前的时间(以小时为单位)引发警告。 |
last_distsync |
datetime | 上次运行分发代理的日期/时间。 |
distribution_agentname |
sysname | 事务发布的订阅的分发代理作业的名称。 |
mergeagentname |
sysname | 合并发布的订阅的合并代理作业的名称。 |
mergesubscriptionfriendlyname |
sysname | 提供给订阅的友好名称。 |
mergeagentlocation |
sysname | 运行合并代理的服务器的名称。 |
mergeconnectiontype |
int | 将订阅同步到合并发布时使用的连接,可以是下列值之一:1 = 局域网 (LAN)2 = 拨号网络连接3 = Web 同步。 |
mergePerformance |
int | 订阅的上次同步相对于其所有同步而言的性能,用上次同步的传递速率除以之前所有传递速率的平均值。 |
mergerunspeed |
float | 订阅上次同步的传递速率。 |
mergerunduration |
int | 完成订阅上次同步的时间长度。 |
monitorranking |
int | 用于对结果集中的订阅进行排序的排名值,可以是以下值之一: 对于事务发布: 60 = 错误56 = 警告:性能严重52 = 警告:即将过期或已过期50 = 警告:订阅未初始化40 = 重试失败的命令30 = 未运行(成功)20 = 正在运行(正在启动、运行或空闲)对于合并发布: 60 = 错误56 = 警告:性能严重54 = 警告:长时间运行的合并52 = 警告:即将过期50 = 警告:订阅未初始化40 = 重试失败的命令30 = 正在运行(正在启动、运行或空闲)20 = 未运行(成功) |
distributionagentjobid |
binary(16) | 事务发布订阅的分发代理作业的 ID。 |
mergeagentjobid |
binary(16) | 合并发布订阅的合并代理作业的 ID。 |
distributionagentid |
int | 订阅的分发代理作业的 ID。 |
distributionagentprofileid |
int | 分发代理使用的代理配置文件的 ID。 |
mergeagentid |
int | 订阅的合并代理作业的 ID。 |
mergeagentprofileid |
int | 合并代理使用的代理配置文件的 ID。 |
返回代码值
0
(成功)或 1
(失败)。
注解
sp_replmonitorhelpsubscription
用于所有类型的复制。
sp_replmonitorhelpsubscription
根据订阅状态的严重性对结果集进行排序,该状态由值 monitorranking
确定。 例如,处于错误状态的所有订阅的各行排在处于警告状态的订阅的各行之上。
权限
只有分发数据库上db_owner或 replmonitor 固定数据库角色的成员才能执行sp_replmonitorhelpsubscription
。