啟用 Microsoft SQL 的效能監控(預覽版)

本文說明如何啟用或停用 Microsoft SQL 服務的效能監控,使效能資料顯示在資料庫中心的效能頁面。 啟用效能監控不會產生額外費用。 你不需要部署或維護監控代理、資料儲存或其他監控基礎設施。

Important

這項功能目前處於預覽階段。

啟用效能監控的步驟因服務而異。 開啟監控後,每個服務都會將效能資料傳送到同一條遙測管線。 資料庫中心利用這些資料協助識別效能問題並建立儀表板。 你也可以直接用 KQL 查詢遙測數據。 欲了解更多資訊,請參閱查詢效能監控遙測。 本文涵蓋以下服務:

你可以在資料庫中心透過 Azure、Fabric 及本地端存取 Microsoft SQL 資源。 包含以下資源類型:

  • Azure SQL Database
  • Azure SQL 受控執行個體
  • Azure VM 上的 SQL Server
  • 透過 Azure Arc 啟用的 SQL Server
  • Azure SQL Database 彈性集區
  • Fabric 中的 SQL 資料庫

以下資源類型在資料庫中心可見,但 效能 頁面尚未支援:

  • Fabric 中的 SQL 資料庫
  • Azure SQL Database 彈性集區
  • Azure SQL 受控執行個體
  • 效能監控不會從 Azure SQL Database 彈性池或次要副本中收集資料。

區域可用性與資料處理

以下 Azure 區域可對 Microsoft SQL 資源進行效能監控。 預覽期間不支援政府雲、主權雲和空隙雲。 如需詳細資訊,請參閱 Fabric 區域可用性。

  • Brazil South
  • 加拿大中部
  • 加拿大東部
  • Central US
  • 美國東部
  • 美國東部 2
  • 美國中北部
  • 美國中南部
  • 美國中西部
  • 美國西部
  • 美國西部 2
  • 美國西部 3

效能監控會從你的 SQL 資源動態管理視圖(DMV)收集效能資料。 效能監控不會收集任何個人資料或客戶內容,且資料不會儲存在被監控的 SQL 資源地理範圍之外。

註冊 Azure 資源提供者

要查看效能監控資料,請在每個包含你想監控的資料庫資源的訂閱中註冊資源提供者。Microsoft.AzureArcData 欲了解更多資訊,請參閱 az 提供者登記處。

az provider register --namespace Microsoft.AzureArcData

要檢查註冊狀態,請執行以下指令。 當指令返回 Registered時,註冊完成。

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

啟用 Azure SQL Database 的效能監視

請使用下列其中一個方法:

  • 在資料庫中心,前往 Estate 頁面,選擇資源,然後選擇 啟用效能監控。
  • 對每個你想監控的使用者資料庫執行以下 T-SQL 腳本。 不要在資料庫上執行腳本 master 。 若要同時套用多台伺服器,請考慮在 SQL Server Management Studio(SSMS)中進行多伺服器查詢。 將 MS_EnablePerformanceMonitoringPreview 延伸屬性新增至您要監視的每個使用者資料庫。
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

如何停用 Azure SQL Database 的效能監控

若要停止收集使用者資料庫的效能資料,請在兩個程序呼叫中都更改 @value = N'true' 為 , @value = N'false' 然後在該資料庫上重新執行 T-SQL 腳本。

啟用 Azure VM 上 SQL Server 的效能監視

要啟用 Azure 虛擬機上的 SQL Server 效能監控,請在 SQL IaaS 代理擴充套件的公開設定中新增DatabaseWatcheronAzureVM功能旗標。 擴充套件接著從 SQL Server 實例收集效能資料,並利用虛擬機系統指派的管理身份將資料上傳至區域遙測端點。 監控是依虛擬機設定的。 在一台虛擬機啟用功能標誌,並不會啟用其他虛擬機的監控。

關於驗證、故障排除及完整資料集清單,請參見啟用 Azure VM 上的 SQL Server 效能監控。

Azure VM 上 SQL Server 的必要條件

  • 效能監控支援 Azure 虛擬機上的 SQL Server 2016 SP1 及更新版本。 早於 SQL Server 2016 SP1 的 SQL Server 版本不受支援。
  • 效能監控會收集 SQL Server Enterprise 與 Standard 版本的所有資料集。 對於 SQL Server Developer、Express 和 Evaluation 版本,效能監控僅收集用戶端連線資料。
  • 您必須安裝 SQL IaaS Agent 擴充套件 版本 2.0.229.0 或更高版本,並以完整管理模式安裝。 你必須啟用該擴充,且其配置狀態必須為 成功。
  • 虛擬機必須啟用 系統指派的管理身份 。
  • SQL Server 實例資源必須透過統一庫存系統提供。
  • 您必須註冊Microsoft.AzureArcData訂閱的資源提供者。
  • 虛擬機器必須允許透過連接埠 443 對 telemetry.<region>.arcdataservices.com 進行輸出 HTTPS 連線,其中 <region> 是裝載該虛擬機器的 Azure 區域。
  • 你需要最新版本的 Azure CLI。
  • 您需要權限才能查看和更新虛擬機的擴充功能,例如虛擬 機貢獻 者角色的成員資格。

如何在 Azure VM 上啟用 SQL Server 的效能監控

Important

SQL IaaS 代理程式擴充功能的設定並非累積的。 更新擴充功能時,請包含所有現有的公開設定,以避免無意中停用其他功能。

以下 PowerShell 步驟會取得目前的公開設定,新增效能監控功能旗標,並將合併後的設定套用到擴充功能中。

  1. 在安裝了 Azure CLI 的環境中開啟 PowerShell,然後登入 Azure。

    az login
    
  2. 設定你的 SQL Server 虛擬機變數。

    $subscriptionId = "<subscription-id>"
    $resourceGroup = "<resource-group>"
    $vmName = "<vm-name>"
    
    az account set --subscription $subscriptionId
    
  3. 取得目前的 SQL IaaS 代理擴充設定。

    $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. 在保留現有功能旗幟的同時,新增 DatabaseWatcheronAzureVM 功能旗標。

    $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. 儲存合併後的設定,並套用到 SQL IaaS Agent 擴充功能。

    $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. 對你想監控的每個虛擬機重複這些步驟。

擴充功能會自動重新載入公開設定。 你不需要重啟 SQL Server IaaS 代理服務或虛擬機。 大多數效能數據會在設定生效後3到5分鐘內取得。 有些基於庫存的資料可能需要長達15分鐘。

要確認監控是否正在執行,請檢查擴充功能狀態:

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

當效能監控成功執行並上傳資料時,狀態會包含 DatabaseMonitorArcPlugin: {"State":"Running","MetricsUploadStatus":"OK"}。 要確認資料是否可用,請在 查詢效能監控遙測中執行連線測試查詢。

停用 Azure VM 上 SQL Server 的效能監視

若要停止為虛擬機收集新的效能資料,請將功能標誌設 DatabaseWatcheronAzureVM 為 false。 將變更與現有的公開設定合併,避免其他 SQL IaaS Agent 擴充功能受影響。

  1. 完成步驟 1 到 3 步驟,請在 Azure VM 啟用 SQL Server 效能監控,登入、設定變數並取得目前設定。

  2. 將 DatabaseWatcheronAzureVM 功能旗標設為 false,同時保留現有的功能旗標。

    $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. 完成步驟 5 在 Azure VM 啟用 SQL Server 效能監控,將合併的設定套用到擴充功能上。

等幾分鐘讓新設定生效,然後再檢查擴充功能狀態確認變更。

啟用由Azure Arc啟用的SQL Server效能監控

Azure Arc 啟用的 SQL Server 效能監控預設是開啟的。 當實例符合本節所有前置條件時,它會自動收集效能資料,無需採取其他步驟。 如需詳細資訊,請參閱 監視已啟用 Azure Arc 的 SQL Server。

已啟用 Azure Arc 的 SQL Server 必要條件

  • 適用於 SQL Server 的 Azure 擴充功能(WindowsAgent.SqlServer)必須為版本 1.1.2504.99 或更新版本。
  • SQL Server 必須在 Windows 上執行。 不支援 Linux 上的 SQL Server。 Windows Server 2012 R2 及更早版本的 SQL Server 不被支援。
  • SQL Server 必須是標準版或企業版。
  • SQL Server 必須是 2016 SP1 或更新版本。
  • 伺服器必須可連線到 *.<region>.arcdataservices.com。 如需詳細資訊,請參閱網路需求。
  • 已啟用 Azure Arc 的 SQL Server 其授權類型必須為軟體保證 (Software Assurance) 或隨用隨付。
  • 你需要一個包含 Microsoft.AzureArcData/sqlServerInstances/getTelemetry/ 動作的 Azure 角色。 內建的 Azure 混合資料庫管理員 - 唯讀服務角色包含此操作。 如需詳細資訊,請參閱<Azure 內建角色>。
  • 目前尚不支援故障轉移叢集實例。

如何啟用由 Azure Arc 啟用的 SQL Server 效能監控

以下指令可啟用效能資料收集。 指令可能能成功執行,但系統僅在實例符合本節所有前提條件時收集效能資料。

若要在 Azure 入口網站中開啟或關閉收集功能:

  1. 在透過 Azure Arc 啟用的 SQL Server 的資源頁面上,選取 [效能儀表板 (預覽)]。
  2. 在 [效能儀表板] 窗格頂端,選取 [設定]。
  3. 在 「設定監控設定 」面板中,使用切換開關開啟監控資料收集。
  4. 請點擊套用設定。

要使用 Azure CLI 啟用 collection ,請執行以下指令。 替換訂用帳戶 ID、資源群組和資源名稱的佔位符。

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

如何停用由 Azure Arc 啟用的 SQL Server 效能監控

若要在 Azure 入口網站中開啟或關閉收集功能:

  1. 在透過 Azure Arc 啟用的 SQL Server 的資源頁面上,選取 [效能儀表板 (預覽)]。
  2. 在 [效能儀表板] 窗格頂端,選取 [設定]。
  3. 在 「配置監控設定 」面板中,使用開關關閉監控資料收集。
  4. 請點擊套用設定。

要使用 Azure CLI 停用集合,請執行以下指令。 替換訂用帳戶 ID、資源群組和資源名稱的佔位符。

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

後續步驟