sp_dbmmonitorresults (Transact-SQL)

从存储数据库镜像监视历史记录的状态表中返回所监视数据库的状态行,并允许您选择该过程是否预先获得最新状态。

主题链接图标Transact-SQL 语法约定

语法

sp_dbmmonitorresults database_name 
      , rows_to_return
        , update_status 

参数

  • database_name
    指定返回其镜像状态的数据库。

  • rows_to_return
    指定返回的行数:

    0 = 最后一行

    1 = 最后两小时的行

    2 = 最后四小时的行

    3 = 最后八小时的行

    4 = 最后一天的行

    5 = 最后两天的行

    6 = 最后 100 行

    7 = 最后 500 行

    8 = 最后 1,000 行

    9 = 最后 1,000,000 行

  • update_status
    指定返回结果之前,过程:

    0 = 不更新数据库的状态。仅使用最后两行计算结果,其保留时间取决于何时刷新状态表。

    1 = 通过在计算结果之前调用 sp_dbmmonitorupdate 来更新数据库的状态。但是,如果在前 15 秒内已更新状态表,或用户不是 sysadmin 固定服务器角色的成员,则 sp_dbmmonitorresults 将运行,而不更新状态。

返回代码值

结果集

返回指定数据库的所请求行数的历史记录状态。每一行包含以下信息:

列名

数据类型

说明

database_name

sysname

镜像数据库的名称。

role

int

服务器实例的当前镜像角色:

1 = 主体数据库

2 = 镜像数据库

mirroring_state

int

数据库的状态:

0 = 已挂起

1 = 已断开

2 = 正在同步

3 = 挂起故障转移

4 = 已同步

witness_status

int

在数据库的数据库镜像会话中见证服务器的连接状态,可以是:

0 = 未知

1 = 已连接

2 = 已断开

log_generation_rate

int

自上次更新此数据库的镜像状态以来生成的日志量(KB/秒)。

unsent_log

int

在主体的发送队列中未发送日志的大小 (KB)。

send_rate

int

从主体向镜像发送日志的速度(KB/秒)。

unrestored_log

int

镜像中重做队列的大小 (KB)。

recovery_rate

int

镜像中的重做速度(KB/秒)。

transaction_delay

int

所有事务的总计延迟(毫秒)。

transactions_per_sec

int

在主体服务器实例上每秒发生的事务数。

average_delay

int

由于数据库镜像的原因,每个事务在主体服务器实例上的平均延迟。在高性能模式(即 SAFETY 属性设置为 OFF 时)中,此值通常是 0。

time_recorded

datetime

数据库镜像监视器记录行的时间。这是主体的系统时钟时间。

time_behind

datetime

镜像数据库当前跟踪的主体的近似系统时钟时间。此值只有在主体服务器实例上才有意义。

local_time

datetime

更新此行时本地服务器实例上的系统时钟时间。

注释

sp_dbmmonitorresults 只能在 msdb 数据库的上下文中执行。

权限

需要 msdb 数据库中的 sysadmin 固定服务器角色或 dbm_monitor 固定数据库角色的成员身份。dbm_monitor 角色使其成员可以查看数据库镜像状态,但不能更新状态,也不能查看或配置数据库镜像事件。

注意注意

第一次执行 sp_dbmmonitorupdate 时,它将在 msdb 数据库中创建 dbm_monitor 固定数据库角色。sysadmin 固定服务器角色的成员可以向 dbm_monitor 固定数据库角色中添加任何用户。

示例

以下示例返回在前面两个小时内记录的行,但不更新数据库状态。

USE msdb;
EXEC sp_dbmmonitorresults AdventureWorks, 2, 0;