managed_backup.fn_get_health_status (Transact-SQL)
适用于:SQL Server 2016 (13.x) 及更高版本
返回 0 行、一行或多行的表,行中是扩展事件在指定的一段时间内报告的错误总数。
该函数用于报告 Smart 管理员 下服务的运行状况状态。目前,智能管理员伞支持将 SQL Server 托管备份到 Microsoft Azure。 因此,返回的错误与 SQL Server 托管备份到 Microsoft Azure 相关。
语法
managed_backup.fn_get_health_status([@begin_time = ] 'time_1' , [ @end_time = ] 'time_2')
参数
[@begin_time]
计算错误总数的起始时间。 参数 @begin_time 为 DATETIME。 默认值为 NULL。 当值为 NULL 时,此函数将处理当前时间最长 30 分钟之前报告的事件。
[ @end_time]
计算错误总数的结束时间。 参数 @end_time 为 DATETIME,默认值为 NULL。 当值为空 NULL 时,此函数将处理截至当前时间的扩展事件。
返回的表
列名称 | 数据类型 | 描述 |
---|---|---|
number_of_storage_connectivity_errors | int | 程序连接到 Azure 存储帐户时的连接错误数。 |
number_of_sql_errors | int | 当程序连接到 SQL Server Engine 时返回的错误数。 |
number_of_invalid_credential_errors | int | 当程序尝试使用 SQL 凭据进行身份验证时返回的错误数。 |
number_of_other_errors | int | 连接、SQL 或凭据以外其他类别中的错误数。 |
number_of_corrupted_or_deleted_backups | int | 删除或损坏的备份文件数。 |
number_of_backup_loops | int | 备份代理扫描使用 SQL Server 托管备份配置的所有数据库到 Microsoft Azure 的次数。 |
number_of_retention_loops | int | 扫描数据库以评估所设置的保持期的次数。 |
最佳方案
这些聚合的计数可用于监视系统运行状况。 例如,如果 number_of_retention_loops 列在 30 分钟内为 0,则保持管理可能占用较长时间,甚至没有正常工作。 非零错误列可能表示有问题,应检查扩展事件日志以了解任何问题。 或者,使用存储过程 managed_backup.sp_get_backup_诊断 获取扩展事件列表,以查找错误的详细信息。
安全性
权限
需要对函数具有 标准版LECT 权限。
示例
下例返回其执行之前 30 分钟内的错误总数。
SELECT * FROM managed_backup.fn_get_health_status(NULL, NULL)
下例返回本周的错误总数:
Use msdb Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SELECT * FROM managed_backup.fn_get_health_status(@startofweek, @endofweek)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈