Aktivieren Sie die Leistungsüberwachung für Microsoft SQL (Vorschau)

Dieser Artikel erklärt, wie man die Leistungsüberwachung für Microsoft SQL-Dienste aktiviert und deaktiviert, sodass Leistungsdaten auf der Performance-Seite des Database Hub erscheinen. Das Aktivieren der Leistungsüberwachung verursacht keine zusätzlichen Kosten. Sie müssen keine Überwachungsagenten, Datenspeicher oder andere Überwachungsinfrastrukturen einsetzen oder warten.

Important

Dieses Feature befindet sich in der Vorschauphase.

Die Schritte zur Aktivierung der Leistungsüberwachung unterscheiden sich je nach Dienst. Nachdem Sie die Überwachung aktiviert haben, sendet jeder Dienst Leistungsdaten an dieselbe Telemetriepipeline. Das Database Hub nutzt diese Daten, um Leistungsprobleme zu identifizieren und Dashboards zu erstellen. Sie können die Telemetrie auch direkt mit KQL abfragen. Weitere Informationen finden Sie unter Telemetrie zur Überwachung der Abfrageleistung. Dieser Artikel behandelt die folgenden Dienstleistungen:

Sie können Microsoft SQL-Ressourcen im Database Hub von Azure, Fabric und On-Premises aus ansehen. Die folgenden Ressourcentypen sind enthalten:

  • Azure SQL-Datenbank
  • Verwaltete Azure SQL-Instanz
  • SQL Server auf Azure-VMs
  • SQL Server durch Azure Arc aktiviert
  • Elastische Pools für Azure SQL-Datenbank
  • SQL-Datenbank in Fabric

Die folgenden Ressourcentypen sind im Datenbankhub sichtbar, aber die Performance-Seite unterstützt sie noch nicht:

  • SQL-Datenbank in Fabric
  • Elastische Pools für Azure SQL-Datenbank
  • Verwaltete Azure SQL-Instanz
  • Performance Monitoring sammelt keine Daten aus Datenbanken in Azure SQL-Datenbank Elastic Pools oder von sekundären Replikaten.

Regionale Verfügbarkeit und Datenverarbeitung

Leistungsüberwachung ist für Microsoft SQL-Ressourcen in den folgenden Azure-Regionen verfügbar. Behörden-, Sovereign- und Air-Gapped-Clouds werden in der Vorschauphase nicht unterstützt. Weitere Informationen finden Sie unter Regionale Verfügbarkeit für Fabric.

  • Brasilien Süd
  • Canada Central
  • Canada East
  • Central US
  • East US
  • Ost-USA 2
  • Nord-Mittel-USA
  • Süd-Mittel-USA
  • Zentralwesten der USA
  • West US
  • Westliches USA 2
  • Westliches USA 3

Leistungsüberwachung sammelt Leistungsdaten aus dynamischen Verwaltungsansichten (DMVs) auf Ihren SQL-Ressourcen. Leistungsüberwachung sammelt keine persönlichen Daten oder Kundeninhalte, und die Daten werden nicht außerhalb der geografischen Geografie der überwachten SQL-Ressource in Ruhe gespeichert.

Registrieren des Azure-Ressourcenanbieters

Um die Leistungsüberwachungsdaten einzusehen, registrieren Sie den Microsoft.AzureArcData Ressourcenanbieter in jedem Abonnement, das Datenbankressourcen enthält, die Sie überwachen möchten. Weitere Informationen finden Sie im Provider Register von Arizona.

az provider register --namespace Microsoft.AzureArcData

Um den Registrierungszustand zu überprüfen, führen Sie den folgenden Befehl aus. Die Registrierung ist abgeschlossen, wenn der Befehl Registered zurückgibt.

az provider show --namespace Microsoft.AzureArcData --query "registrationState" --output tsv

Aktivieren Sie die Leistungsüberwachung für Azure SQL-Datenbank

Verwenden Sie eine der folgenden beiden Methoden:

  • Gehen Sie im Database Hub zur Seite Estate, wählen Sie die Ressource aus, und wählen Sie dann Leistungsüberwachung aktivieren.
  • Führe das folgende T-SQL-Skript auf jeder Benutzerdatenbank aus, die du überwachen möchtest. Führe das Skript nicht in der master Datenbank aus. Um das Skript gleichzeitig auf mehrere Server anzuwenden, sollten Sie Multiserver-Abfragen in SQL Server Management Studio (SSMS) in Betracht ziehen. Füge die erweiterte MS_EnablePerformanceMonitoringPreview Eigenschaft zu jeder Benutzerdatenbank hinzu, die du überwachen möchtest.
IF EXISTS (
    SELECT 1
    FROM sys.extended_properties
    WHERE class = 0
      AND name = N'MS_EnablePerformanceMonitoringPreview'
)
BEGIN
    EXEC sys.sp_updateextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END
ELSE
BEGIN
    EXEC sys.sp_addextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END;
GO

Wie man Performance Monitoring für Azure SQL-Datenbank deaktiviert

Um das Sammeln von Leistungsdaten für eine Benutzerdatenbank zu beenden, ändern Sie @value = N'true' in beiden Prozeduraufrufen in @value = N'false' und führen Sie das T-SQL-Skript dann für diese Datenbank erneut aus.

Aktivieren Sie Performance-Monitoring für SQL Server auf Azure-VMs

Um die Leistungsüberwachung für SQL Server auf Azure-VMs zu ermöglichen, fügen Sie das DatabaseWatcheronAzureVM Feature-Flag in die öffentlichen Einstellungen der SQL IaaS Agent-Erweiterung hinzu. Die Erweiterung sammelt dann Leistungsdaten aus der SQL Server-Instanz und nutzt die systemzugewiesene verwaltete Identität der VM, um diese auf einen regionalen Telemetrie-Endpunkt hochzuladen. Das Monitoring ist pro VM konfiguriert. Das Aktivieren des Feature-Flags auf einer VM aktiviert das Monitoring auf anderen VMs nicht.

Für Verifikation, Fehlerbehebung und die vollständige Liste der gesammelten Datensätze siehe Enable Performance Monitoring for SQL Server on Azure VMs.

Voraussetzungen für SQL Server auf Azure-VMs

  • Performance Monitoring unterstützt SQL Server 2016 SP1 und spätere Versionen auf Azure-VMs. SQL Server-Versionen, die älter als SQL Server 2016 SP1 sind, werden nicht unterstützt.
  • Die Leistungsüberwachung sammelt alle Datensätze für SQL Server Enterprise und Standard-Editionen. Für die SQL Server Developer-, Express- und Evaluation-Editionen sammelt die Performance Monitoring nur die Client-Verbindungsdaten.
  • Du musst die SQL IaaS Agent-Erweiterungsversion2.0.229.0 oder später im vollständigen Verwaltungsmodus installieren. Du musst die Erweiterung aktivieren, und ihr Bereitstellungszustand muss Succeeded sein.
  • Die VM muss eine systemzugewiesene verwaltete Identität aktiviert haben.
  • Die SQL Server-Instanzressource muss über das einheitliche Inventar verfügbar sein.
  • Sie müssen den Microsoft.AzureArcData Ressourcenanbieter für das Abonnement registrieren.
  • Die VM muss ausgehende HTTPS-Verbindung auf Port 443 zu telemetry.<region>.arcdataservices.comzulassen, wobei <region> die Azure-Region ist, die die VM hostet.
  • Du brauchst die neueste Version der Azure CLI.
  • Sie benötigen die Berechtigung, Erweiterungen auf der VM anzuzeigen und zu aktualisieren, wie zum Beispiel die Mitgliedschaft in der Rolle Virtual Machine Contributor .

Wie man Performance-Monitoring für SQL Server auf Azure-VMs aktiviert

Important

Die Einstellungen der SQL IaaS Agent-Erweiterung sind nicht kumulativ. Wenn du die Erweiterung aktualisierst, füge alle vorhandenen öffentlichen Einstellungen hinzu, um zu vermeiden, dass eine weitere Funktion unbeabsichtigt deaktiviert wird.

Die folgenden PowerShell-Schritte rufen die aktuellen öffentlichen Einstellungen ab, fügen die Performance-Monitoring-Flagge hinzu und wenden die zusammengeführten Einstellungen auf die Erweiterung an.

  1. Öffnen Sie PowerShell in einer Umgebung, in der die Azure CLI installiert ist, und melden Sie sich dann bei Azure an.

    az login
    
  2. Setze die Variablen für deine SQL Server-VM.

    $subscriptionId = "<subscription-id>"
    $resourceGroup = "<resource-group>"
    $vmName = "<vm-name>"
    
    az account set --subscription $subscriptionId
    
  3. Rufen Sie die aktuellen Einstellungen der SQL IaaS Agent-Erweiterung ab.

    $extension = az vm extension show `
      --resource-group $resourceGroup `
      --vm-name $vmName `
      --name SqlIaasExtension `
      --query "{settings:settings,typeHandlerVersion:typeHandlerVersion}" `
      --output json | ConvertFrom-Json
    
    if ($null -eq $extension.settings) {
      $settings = [pscustomobject]@{}
    }
    else {
      $settings = $extension.settings
    }
    
  4. Füge die DatabaseWatcheronAzureVM Feature-Flag hinzu, während die bestehenden Feature-Flags erhalten bleiben.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $true
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  5. Speichere die zusammengeführten Einstellungen und wende sie auf die SQL IaaS Agent-Erweiterung an.

    $settingsPath = Join-Path $env:TEMP "sqlvm-performance-monitoring-settings.json"
    
    try {
      $settings |
        ConvertTo-Json -Depth 50 |
        Out-File -FilePath $settingsPath -Encoding utf8
    
      az vm extension set `
        --resource-group $resourceGroup `
        --vm-name $vmName `
        --publisher Microsoft.SqlServer.Management `
        --name SqlIaaSAgent `
        --extension-instance-name SqlIaasExtension `
        --settings "@$settingsPath"
    }
    finally {
      Remove-Item $settingsPath -ErrorAction SilentlyContinue
    }
    
  6. Wiederholen Sie diese Schritte für jede VM, die Sie überwachen möchten.

Die Erweiterung lädt die öffentlichen Einstellungen automatisch neu. Du musst den SQL Server IaaS Agent-Service oder die VM nicht neu starten. Die meisten Leistungsdaten sind innerhalb von 3 bis 5 Minuten nach Inkrafttreten der Einstellung verfügbar. Einige inventarbasierte Daten können bis zu 15 Minuten dauern.

Um sicherzustellen, dass die Überwachung läuft, überprüfen Sie den Status der Erweiterung:

az vm extension show `
  --resource-group $resourceGroup `
  --vm-name $vmName `
  --name SqlIaasExtension `
  --instance-view `
  --query "instanceView.statuses[0].message" `
  --output tsv

Wenn die Leistungsüberwachung aktiv ist und Daten erfolgreich hochlädt, enthält der Status DatabaseMonitorArcPlugin: {"State":"Running","MetricsUploadStatus":"OK"}. Um zu bestätigen, dass die Daten verfügbar sind, führen Sie die Verbindungstestanfrage in der Telemetrie zur Abfrageleistungsüberwachung aus.

Deaktivieren Sie die Performance Monitoring für SQL Server auf Azure-VMs

Um das Sammeln neuer Leistungsdaten für eine VM zu stoppen, setzen Sie das DatabaseWatcheronAzureVM Feature-Flag auf false. Führen Sie die Änderung mit den bestehenden öffentlichen Einstellungen zusammen, damit andere Funktionen der SQL IaaS Agent-Erweiterungen nicht betroffen sind.

  1. Erfüllen Sie die Schritte 1 bis 3 in Aktivieren der Leistungsüberwachung für SQL Server auf Azure-VMs, um sich anzumelden, die Variablen zu setzen und die aktuellen Einstellungen abzurufen.

  2. Setze das Feature-Flag DatabaseWatcheronAzureVM auf false, wobei die bestehenden Feature-Flags beibehalten werden.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $false
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  3. Abschließen Sie Schritt 5 bei Aktivieren der Leistungsüberwachung für SQL Server auf Azure-VMs, um die zusammengeführten Einstellungen auf die Erweiterung anzuwenden.

Lassen Sie ein paar Minuten ein, bis die neue Einstellung in Kraft tritt, und überprüfen Sie dann erneut den Status der Erweiterung, um die Änderung zu bestätigen.

Aktivieren Sie die Leistungsüberwachung für SQL Server, aktiviert durch Azure Arc

Die Leistungsüberwachung für SQL Server, die von Azure Arc aktiviert wird, ist standardmäßig aktiviert. Wenn eine Instanz alle Voraussetzungen in diesem Abschnitt erfüllt, sammelt sie automatisch Leistungsdaten, und Sie müssen keine weiteren Schritte unternehmen. Weitere Informationen finden Sie unter Monitor SQL Server, aktiviert von Azure Arc.

Voraussetzungen für SQL Server, ermöglicht durch Azure Arc

  • Die Azure-Erweiterung für SQL Server (WindowsAgent.SqlServer) muss Version 1.1.2504.99 oder neuere Versionen sein.
  • SQL Server muss unter Windows laufen. SQL Server für Linux wird nicht unterstützt. SQL Server auf Windows Server 2012 R2 und früheren Versionen wird nicht unterstützt.
  • SQL Server muss Standard- oder Enterprise-Edition sein.
  • SQL Server muss Version 2016 SP1 oder neuere Versionen sein.
  • Der Server muss eine Verbindung zu *.<region>.arcdataservices.comhaben. Weitere Informationen finden Sie unter den Netzwerkanforderungen.
  • Der Lizenztyp auf SQL Server, der durch Azure Arc aktiviert wird, muss Software Assurance oder Pay-as-you-go sein.
  • Du brauchst eine Azure-Rolle, die die Aktion Microsoft.AzureArcData/sqlServerInstances/getTelemetry/ beinhaltet. Die integrierte Azure Hybrid Database Administrator - Read Only Service Role beinhaltet diese Aktion. Weitere Informationen finden Sie unter integrierte Azure-Rollen.
  • Failover-Cluster-Instanzen werden derzeit nicht unterstützt.

Wie man Performance-Monitoring für SQL Server aktiviert, ermöglicht durch Azure Arc

Die folgenden Befehle ermöglichen die Erfassung von Leistungsdaten. Die Befehle könnten erfolgreich ausgeführt werden, aber das System sammelt Leistungsdaten nur, wenn die Instanz alle Voraussetzungen in diesem Abschnitt erfüllt.

Um die Sammlung im Azure-Portal ein- oder auszuschalten:

  1. Wählen Sie auf der Ressourcenseite für SQL Server mit Azure Arc-Unterstützung Leistungsdashboard (Vorschau) aus.
  2. Klicken Sie oben im Bereich Leistungsdashboard auf die Schaltfläche Konfigurieren.
  3. Im Menü "Überwachungseinstellungen konfigurieren" verwenden Sie den Schalter, um die Sammlung von Überwachungsdaten zu aktivieren.
  4. Wählen Sie Einstellungen übernehmen.

Um die Sammlung über die Azure CLI zu aktivieren, führen Sie folgenden Befehl aus. Ersetzen Sie die Platzhalter für Abonnement-ID, Ressourcengruppe und Ressourcengruppennamen.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=true' --api-version 2023-09-01-preview

So deaktivieren Sie die Leistungsüberwachung für einen über Azure Arc aktivierten SQL Server

Um die Sammlung im Azure-Portal ein- oder auszuschalten:

  1. Wählen Sie auf der Ressourcenseite für SQL Server mit Azure Arc-Unterstützung Leistungsdashboard (Vorschau) aus.
  2. Klicken Sie oben im Bereich Leistungsdashboard auf die Schaltfläche Konfigurieren.
  3. Im Menü "Überwachungseinstellungen konfigurieren" verwenden Sie den Schalter, um die Sammlung von Überwachungsdaten auszuschalten.
  4. Wählen Sie Einstellungen übernehmen.

Um die Sammlung über die Azure CLI zu deaktivieren, führen Sie folgenden Befehl aus. Ersetzen Sie die Platzhalter für Abonnement-ID, Ressourcengruppe und Ressourcengruppennamen.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=false' --api-version 2023-09-01-preview

Nächster Schritt