Freigeben über


managed_backup.fn_get_health_status (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höhere Versionen

Gibt eine Tabelle mit keiner, einer oder mehreren Zeilen der aggregierten Anzahl der Fehler zurück, die durch erweiterte Ereignisse während eines bestimmten Zeitraums gemeldet wurden.

Die Funktion wird verwendet, um den Integritätsstatus von Diensten unter "Smart Admin" zu melden. Derzeit wird sql Server managed backup to Microsoft Azure unter dem Dach des Smart Admin unterstützt. Die zurückgegebenen Fehler beziehen sich also auf die verwaltete SQL Server-Sicherung auf Microsoft Azure.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[@begin_time]
Der Beginn des Zeitraums, von dem an die aggregierte Anzahl von Fehlern berechnet wird. Der @begin_time Parameter ist DATETIME. Der Standardwert ist NULL. Wenn der Wert NULL ist, verarbeitet die Funktion die Ereignisse, die bereits 30 Minuten vor der aktuellen Zeit gemeldet wurden.

[ @end_time]
Das Ende des Zeitraums, von dem an die aggregierte Anzahl von Fehlern berechnet wird. Der @end_time Parameter ist DATETIME mit dem Standardwert NULL. Wenn der Wert NULL ist, verarbeitet die Funktion erweiterte Ereignisse bis zur aktuellen Zeit.

Zurückgegebene Tabelle

Spaltenname Datentyp Beschreibung
number_of_storage_connectivity_errors int Die Anzahl der Verbindungsfehler, wenn das Programm eine Verbindung mit dem Azure-Speicherkonto herstellt.
number_of_sql_errors int Die Anzahl der Fehler, die zurückgegeben werden, wenn das Programm eine Verbindung mit der SQL Server Engine herstellt.
number_of_invalid_credential_errors int Die Anzahl der Fehler, die zurückgegeben werden, wenn das Programm versucht, sich mit den SQL-Anmeldeinformationen zu authentifizieren.
number_of_other_errors int Die Anzahl der Fehler aus anderen Kategorien außer Konnektivität, SQL oder Anmeldeinformationen.
number_of_corrupted_or_deleted_backups int Die Anzahl der gelöschten oder beschädigte Sicherungsdateien.
number_of_backup_loops int Die Anzahl der Überprüfungen aller Datenbanken, die mit sql Server verwalteter Sicherung in Microsoft Azure konfiguriert sind.
number_of_retention_loops int Die Anzahl der Datenbankscans, die zur Ermittlung der festgelegten Beibehaltungsdauer ausgeführt werden.

Bewährte Methoden

Anhand dieser aggregierten Anzahl kann die Systemintegrität überwacht werden. Wenn die Spalte number_ of_retention_loops nach 30 Minuten beispielsweise 0 ist, dauert die Überwachung der Beibehaltungsdauer entweder sehr lange oder funktioniert nicht ordnungsgemäß. Spalten mit Werten ungleich 0 können auf Probleme hindeuten. Sie sollten die Protokolle der erweiterten Ereignisse prüfen, um das Problem einzugrenzen. Verwenden Sie alternativ die gespeicherte Prozedur managed_backup.sp_get_backup_diagnostics , um eine Liste der erweiterten Ereignisse abzurufen, um die Details des Fehlers zu finden.

Sicherheit

Berechtigungen

Erfordert SELECT-Berechtigungen für die Funktion.

Beispiele

  • Das folgende Beispiel gibt die aggregierte Fehleranzahl für die letzten 30 Minuten seit der Ausführung zurück.

    SELECT *  
    FROM managed_backup.fn_get_health_status(NULL, NULL)  
    
    
  • Im folgenden Beispiel wird die aggregierte Fehleranzahl für die aktuelle Woche zurückgegeben:

    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)