sp_replmonitorhelpmergesession (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

返回给定复制合并代理的以前会话的信息,并为每个符合筛选条件的会话返回一行。 此用于监视合并复制的存储过程在分发服务器的分发数据库上执行,或在订阅服务器的订阅数据库上执行。

Transact-SQL 语法约定

语法

sp_replmonitorhelpmergesession
    [ [ @agent_name = ] N'agent_name' ]
    [ , [ @hours = ] hours ]
    [ , [ @session_type = ] session_type ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @publication = ] N'publication' ]
[ ; ]

参数

[ @agent_name = ] N'agent_name'

代理的名称。 @agent_namenvarchar(100),没有默认值。

[ @hours = ] 小时

返回历史代理会话信息的时间范围(以小时为单位)。 @hours为 int,可以是以下范围之一。

说明
< 0 返回代理过去运行的信息,最多返回 100 条运行信息。
0(默认值) 返回代理过去运行的所有信息。
> 0 返回过去几个小时发生的代理运行的信息。

[ @session_type = ] session_type

基于会话最终结果筛选结果集。 @session_type为 int,可以是这些值之一。

说明
1(默认值) 具有重试或成功结果的代理会话。
0 具有失败结果的代理会话。

[ @publisher = ] N'publisher'

发布服务器的名称。 @publisher为 sysname,默认值为 NULL. 在订阅服务器上执行 sp_replmonitorhelpmergesession 时使用此参数。

[ @publisher_db = ] N'publisher_db'

发布数据库的名称。 @publisher_db为 sysname,默认值为 NULL. 在订阅服务器上执行 sp_replmonitorhelpmergesession 时使用此参数。

[ @publication = ] N'publication'

发布的名称。 @publication为 sysname,默认值为 NULL. 在订阅服务器上执行 sp_replmonitorhelpmergesession 时使用此参数。

结果集

列名称 数据类型 说明
Session_id int 代理作业会话的 ID。
Status int 代理运行状态:

1 = Start

2 = 成功

3 = 正在进行中

4 = 空闲

5 = 重试

6 = 失败
StartTime datetime 时间代理作业会话开始。
EndTime datetime 时间代理作业会话已完成。
Duration int 此作业会话的累计时间(以秒为单位)。
UploadedCommands int 在代理会话过程中上载的命令的数目。
DownloadedCommands int 在代理会话过程中下载的命令的数目。
ErrorMessages int 在代理会话过程中生成的错误消息的数目。
ErrorID int 发生的错误的 ID。
PercentageDone decimal 已经在活动会话中传递的全部更改的估计百分比。
TimeRemaining int 估计的活动会话所剩秒数。
CurrentPhase int 活动会话的当前阶段,可以是下列状态之一。

1 = 上传

2 = 下载
LastMessage nvarchar(500) 会话期间合并代理记录的最后一条消息。

返回代码值

0(成功)或 1(失败)。

备注

sp_replmonitorhelpmergesession用于监视合并副本 (replica)。

在订阅服务器上执行时,sp_replmonitorhelpmergesession仅返回最近五个合并代理会话的信息。

权限

只有分发服务器上的分发数据库或订阅数据库上的db_owner或 replmonitor 固定数据库角色的成员才能执行sp_replmonitorhelpmergesession