Aktivera prestandaövervakning för Microsoft SQL (förhandsgranskning)

Den här artikeln förklarar hur man aktiverar och inaktiverar prestandaövervakning för Microsoft SQL-tjänster så att prestandadata visas på Prestandasidan i Databashubben. Att aktivera prestandaövervakning medför ingen extra kostnad. Du behöver inte distribuera eller underhålla övervakningsagenter, datalager eller annan övervakningsinfrastruktur.

Important

Den här funktionen är i förhandsversion.

Stegen för att aktivera prestandaövervakning skiljer sig åt beroende på tjänst. Efter att du har aktiverat övervakning skickar varje tjänst prestandadata till samma telemetripipeline. Databashubben använder denna data för att identifiera prestandaproblem och skapa instrumentpaneler. Du kan också fråga telemetrin direkt med KQL. För mer information, se Telemetri för övervakning av frågeprestanda. Denna artikel täcker följande tjänster:

Du kan se Microsoft SQL-resurser i Database Hub från Azure, Fabric och lokalt. Följande resurstyper ingår:

  • Azure SQL Database
  • Hanterad instans i Azure SQL
  • SQL Server på virtuella Azure-datorer
  • SQL Server aktiverat av Azure Arc
  • Azure SQL Database elastiska pooler
  • SQL-databasen i Fabric

Följande resurstyper är synliga i Databashubben, men Prestandasidan stöder dem ännu inte:

  • SQL-databasen i Fabric
  • Azure SQL Database elastiska pooler
  • Hanterad instans i Azure SQL
  • Prestandaövervakning samlar inte in data från databaser i Azure SQL Database-elastic pools eller från sekundära repliker.

Regional tillgänglighet och datahantering

Prestandaövervakning finns tillgänglig för Microsoft SQL-resurser i följande Azure-regioner. Regering, suveräna och luftgapade moln stöds inte under förhandsvisningen. För mer information, se Tillgänglighet för Fabric-regioner.

  • Syd-Brasilien
  • Canada Central
  • Canada East
  • Central US
  • East US
  • USA, östra delen 2
  • Norra centrala USA
  • Södra centrala USA
  • Västra centrala USA
  • West US
  • Västra USA 2
  • Västra USA 3

Prestandaövervakning samlar in prestandadata från dynamiska förvaltningsvyer (DMV) på dina SQL-resurser. Prestandaövervakning samlar inte in någon personlig data eller kundinnehåll, och datan lagras inte i vila utanför geografin för den övervakade SQL-resursen.

Registrera Azure-resursprovidern

För att se prestandaövervakningsdata, registrera resursleverantören Microsoft.AzureArcData i varje prenumeration som innehåller databasresurser du vill övervaka. För mer information, se az provider register.

az provider register --namespace Microsoft.AzureArcData

För att kontrollera registreringsstatusen, kör följande kommando. Registreringen är klar när kommandot återvänder Registered.

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

Aktivera prestandaövervakning för Azure SQL Database

Använd någon av följande metoder:

  • Gå till sidan Estate i databasen, välj resursen och välj sedan Aktivera prestandaövervakning.
  • Kör följande T-SQL-skript på varje användardatabas du vill övervaka. Kör inte skriptet i databasen master . För att tillämpa skriptet på flera servrar samtidigt, överväg multiserver-frågor i SQL Server Management Studio (SSMS). Lägg till den utökade egenskapen MS_EnablePerformanceMonitoringPreview i varje användardatabas du vill övervaka.
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

Hur man inaktiverar prestandaövervakning för Azure SQL Database

För att sluta samla in prestandadata för en användardatabas, byt @value = N'true' till @value = N'false' i båda proceduranropen och kör sedan T-SQL-skriptet på den databasen igen.

Aktivera prestandaövervakning för SQL Server på Azure-VM:er

För att möjliggöra prestandaövervakning för SQL Server på Azure-VM:ar, lägg till DatabaseWatcheronAzureVM funktionsflaggan i de publika inställningarna för SQL IaaS Agent-tillägget. Tillägget samlar sedan in prestandadata från SQL Server-instansen och använder VM:ns systemtilldelade hanterade identitet för att ladda upp den till en regional telemetri-endpoint. Övervakningen konfigureras per VM. Att aktivera funktionsflaggan på en VM aktiverar inte övervakning på andra VM:ar.

För verifiering, felsökning och hela listan över insamlade dataset, se Aktivera prestandaövervakning för SQL Server på Azure-VM:ar.

Förutsättningar för SQL Server på Azure VM:er

  • Prestandaövervakning stödjer SQL Server 2016 SP1 och senare versioner på Azure-VM:ar. SQL Server-versioner som är äldre än SQL Server 2016 SP1 stöds inte.
  • Prestandaövervakning samlar in alla datamängder för SQL Server Enterprise och Standard-utgåvorna. För SQL Server Developer, Express och Evaluation-utgåvorna samlar prestandaövervakning endast in klientanslutningsdata.
  • Du måste installera SQL IaaS Agent-tilläggsversionen2.0.229.0 eller senare i full hanteringsläge. Du måste aktivera utvidgningen, och dess provisioneringstillstånd måste vara Succeeded.
  • VM:n måste ha en systemtilldelad hanterad identitet aktiverad.
  • SQL Server-instansresursen måste vara tillgänglig via ett enhetligt inventarie.
  • Du måste registrera resursleverantören Microsoft.AzureArcData för prenumerationen.
  • VM:n måste tillåta utgående HTTPS-anslutning på porten 443 till telemetry.<region>.arcdataservices.com, där <region> är Azure-regionen som är värd för VM:n.
  • Du behöver den senaste versionen av Azure CLI.
  • Du behöver behörighet för att visa och uppdatera tillägg på VM:n, såsom medlemskap i rollen Virtual Machine Contributor .

Hur man aktiverar prestandaövervakning för SQL Server på Azure-VM:ar

Important

SQL IaaS Agent Extension-inställningar är inte kumulativa. När du uppdaterar tillägget, inkludera alla befintliga publika inställningar för att undvika att oavsiktligt inaktivera en annan funktion.

Följande PowerShell-steg hämtar de aktuella publika inställningarna, lägger till flaggan för prestandaövervakning och applicerar de sammanslagna inställningarna på tillägget.

  1. Öppna PowerShell i en miljö där Azure CLI är installerad, och logga sedan in på Azure.

    az login
    
  2. Ställ in variablerna för din SQL Server VM.

    $subscriptionId = "<subscription-id>"
    $resourceGroup = "<resource-group>"
    $vmName = "<vm-name>"
    
    az account set --subscription $subscriptionId
    
  3. Hämta de aktuella inställningarna för SQL IaaS Agent-tillägget.

    $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. Lägg till DatabaseWatcheronAzureVM funktionsflaggan samtidigt som de befintliga funktionsflaggorna bevaras.

    $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. Spara de sammanslagna inställningarna och applicera dem på SQL IaaS Agent-tillägget.

    $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. Upprepa dessa steg för varje VM du vill övervaka.

Tillägget laddar automatiskt om de publika inställningarna. Du behöver inte starta om SQL Server IaaS Agent-tjänsten eller VM:n. De flesta prestandadata finns tillgängliga inom 3 till 5 minuter efter att inställningen trätt i kraft. Viss inventariebaserad data kan ta upp till 15 minuter.

För att bekräfta att övervakningen körs, kontrollera statusen på tillägget:

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

När prestandaövervakningen körs och data laddas upp utan problem visas statusen med DatabaseMonitorArcPlugin: {"State":"Running","MetricsUploadStatus":"OK"}. För att bekräfta att datan är tillgänglig, kör anslutningstestfrågan i Telemetri för övervakning av frågeprestanda.

Inaktivera prestandaövervakning för SQL Server på Azure-VM:er

För att sluta samla in ny prestandadata för en VM, sätt DatabaseWatcheronAzureVM funktionsflaggan till false. Slå ihop ändringen med de befintliga publika inställningarna så att andra SQL IaaS Agent-tilläggsfunktioner inte påverkas.

  1. Slutför steg 1 till 3 i Aktivera prestandaövervakning för SQL Server på Azure-VM:ar för att logga in, ställa in variablerna och hämta aktuella inställningar.

  2. Ställ in funktionsflaggan DatabaseWatcheronAzureVM till false utan att ändra de befintliga funktionsflaggorna.

    $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. Slutför steg 5 i Aktivera prestandaövervakning för SQL Server på Azure-VM:ar för att tillämpa de sammanslagna inställningarna på tillägget.

Tillåt några minuter för att den nya inställningen ska träda i kraft, och kontrollera sedan förlängningsstatusen igen för att bekräfta ändringen.

Aktivera prestandaövervakning för SQL Server aktiverad av Azure Arc

Prestandaövervakning för SQL Server som aktiveras av Azure Arc är aktiverad som standard. När en instans uppfyller alla förutsättningar i detta avsnitt samlar den in prestandadata automatiskt, och du behöver inte vidta några andra steg. För mer information, se Monitor SQL Server aktiverad av Azure Arc.

Förutsättningar för SQL Server möjliggjord av Azure Arc

  • Azure-tillägget för SQL Server (WindowsAgent.SqlServer) måste vara version 1.1.2504.99 eller senare versioner.
  • SQL Server måste köras på Windows. SQL Server på Linux stöds inte. SQL Server på Windows Server 2012 R2 och tidigare versioner stöds inte.
  • SQL Server måste vara Standard- eller Enterprise-utgåva.
  • SQL Server måste vara version 2016 SP1 eller nyare versioner.
  • Servern måste ha anslutning till *.<region>.arcdataservices.com. Mer information finns i nätverkskraven.
  • Licenstypen på SQL Server som aktiveras av Azure Arc måste vara Software Assurance eller pay-as-you-go.
  • Du behöver en Azure-roll som inkluderar åtgärdenMicrosoft.AzureArcData/sqlServerInstances/getTelemetry/. Den inbyggda rollen Azure Hybrid Database Administrator - Read Only Service inkluderar denna åtgärd. Mer information finns i Inbyggda roller i Azure.
  • Failover-klusterinstanser stöds inte för tillfället.

Hur man aktiverar prestandaövervakning för SQL Server som aktiveras av Azure Arc

Följande kommandon möjliggör insamling av prestandadata. Kommandona kan köras framgångsrikt, men systemet samlar in prestandadata endast när instansen uppfyller alla förutsättningar i detta avsnitt.

För att slå på eller av samling i Azure-portalen:

  1. På resurssidan för SQL Server aktiverad av Azure Arc väljer du Prestandaöversikt (förhandsversion).
  2. Längst upp i fönstret Prestandainstrumentpanel väljer du Konfigurera.
  3. I panelen Konfigurera övervakningsinställningar , använd växlen för att slå på insamling av övervakningsdata.
  4. Välj Använd inställningar.

För att aktivera insamling med Azure CLI, kör följande kommando. Ersätt platshållarna för prenumerations-ID, resursgrupp och resursnamn.

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

Hur man inaktiverar prestandaövervakning för SQL Server som aktiveras av Azure Arc

För att slå på eller av samling i Azure-portalen:

  1. På resurssidan för SQL Server aktiverad av Azure Arc väljer du Prestandaöversikt (förhandsversion).
  2. Längst upp i fönstret Prestandainstrumentpanel väljer du Konfigurera.
  3. I panelen Konfigurera övervakningsinställningar , använd växlen för att stänga av insamling av övervakningsdata.
  4. Välj Använd inställningar.

För att inaktivera insamling genom att använda Azure CLI, kör följande kommando. Ersätt platshållarna för prenumerations-ID, resursgrupp och resursnamn.

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ästa steg