managed_backup.fn_get_health_status (Transact-SQL)
適用於: SQL Server 2016 (13.x) 和更新版本
傳回數據表 0,一或多個匯總的匯總計數,由擴充事件報告一段時間的錯誤。
函式可用來報告 Smart Admin 下服務的健康情況狀態。目前,Smart Admin 保護傘支援將 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 引擎時傳回的錯誤數目。 |
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)