managed_backup.fn_get_health_status (Transact-SQL)
適用対象: SQL Server 2016 (13.x) 以降のバージョン
指定した期間の拡張イベントによって報告されたエラーの集計カウントの 0 行以上のテーブルを返します。
この関数は、スマート管理者のサービスの正常性状態を報告するために使用されます。現在、Microsoft Azure への SQL Server マネージド バックアップは、Smart Admin の傘の下でサポートされています。 そのため、返されるエラーは、Microsoft Azure への SQL Server マネージド バックアップに関連しています。
構文
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_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)