managed_backup.fn_get_health_status (Transact-SQL)

適用対象: SQL Server 2016 (13.x) 以降のバージョン

指定した期間の拡張イベントによって報告されたエラーの集計カウントの 0 行以上のテーブルを返します。

この関数は、スマート 管理のサービスの正常性状態を報告するために使用されます。現在、Microsoft Azure への SQL Server マネージド バックアップは、Smart 管理 の傘の下でサポートされています。 そのため、返されるエラーは、Microsoft Azure への SQL Server マネージド バックアップに関連しています。

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 、既定値が NULL の DATETIME です。 値が 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 バックアップ エージェントが、Microsoft Azure への SQL Server マネージド バックアップで構成されているすべてのデータベースをスキャンする回数。
number_of_retention_loops int 保有期間を評価するためにデータベースがスキャンされた回数。

ベスト プラクティス

これらの集計されたカウントは、システムの正常性を監視するために使用できます。 たとえば、number_ of_retention_loops列が 30 分で 0 の場合、保持管理に時間がかかったり、正しく動作しない場合があります。 0 以外のエラー列は問題を示している可能性があり、拡張イベント ログは問題を知るためにチェックする必要があります。 または、ストアド プロシージャ managed_backup.sp_get_backup_診断 を使用して拡張イベントの一覧を取得し、エラーの詳細を見つけます。

セキュリティ

アクセス許可

関数Standard Edition 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)