managed_backup.fn_get_health_status (Transact-SQL)

Applies to: SQL Server 2016 (13.x) and later versions

Returns a table of 0, one or more rows of aggregated count of the errors reported by Extended Events for a specified period of time.

The function is used to report health status of services under Smart Admin. Currently SQL Server managed backup to Microsoft Azure is supported under the Smart Admin umbrella. So the errors returned are related to SQL Server managed backup to Microsoft Azure.

Transact-SQL syntax conventions

Syntax

managed_backup.fn_get_health_status([@begin_time = ] 'time_1' , [ @end_time = ] 'time_2')  

Arguments

[@begin_time]
The start of the time period from which the aggregated count of errors is calculated. The @begin_time parameter is DATETIME. The default value is NULL. When the value is NULL the function will process events reported as early as 30 minutes before current time.

[ @end_time]
The end of the time period from which the aggregated count of errors is calculated. The @end_time parameter is DATETIME with a default value of NULL. When the value is NULL the function will process extended events as up to the current time.

Table Returned

Column Name Data Type Description
number_of_storage_connectivity_errors int Number of connection errors when the program connects to the Azure storage account.
number_of_sql_errors int Number of errors returned when the program connects to SQL Server Engine.
number_of_invalid_credential_errors int Number of errors returned when the program tries to authenticate using SQL Credentials.
number_of_other_errors int Number of errors in other categories besides connectivity, SQL, or credential.
number_of_corrupted_or_deleted_backups int Number of deleted or corrupted backup files.
number_of_backup_loops int The number of times backup agent scans all the databases configured with SQL Server managed backup to Microsoft Azure.
number_of_retention_loops int The number of times the databases are scanned to assess set retention period.

Best Practices

These aggregated counts can be used to monitor system health. For example, if the number_ of_retention_loops column is 0 in 30 minutes, it is possible that the retention management is taking long time or even not working correctly. Non-zero error columns may indicate problems and Extended events logs should be checked to learn of the any problems. Alternately, use the stored procedure managed_backup.sp_get_backup_diagnostics to get a list of Extended events to find the details of the error.

Security

Permissions

Requires SELECT permissions on the function.

Examples

  • The following example returns aggregated error counts for the last 30 minutes from the time it was executed.

    SELECT *  
    FROM managed_backup.fn_get_health_status(NULL, NULL)  
    
    
  • The following example returns the aggregated error counts for the current week:

    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)