managed_backup.fn_get_health_status (Transact-SQL)

適用於:SQL Server 2016 (13.x) 和更新版本

傳回數據表 0,一或多個匯總的匯總計數,由擴充事件報告一段時間的錯誤。

函式是用來報告 Smart 管理員 下服務的健康情況狀態。目前,Smart 管理員 保護傘支援 SQL Server 受控備份至 Microsoft Azure。 因此,傳回的錯誤與 SQL Server 受控備份至 Microsoft Azure 相關。

Transact-SQL 語法慣例

語法

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 引擎時傳回的錯誤數目。
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_diagnostics 來取得擴充事件清單,以尋找錯誤的詳細數據。

安全性

權限

需要函式的 SELECT 許可權。

範例

  • 下列範例會傳回執行前 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)