本文說明如何啟用或停用 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 步驟會取得目前的公開設定,新增效能監控功能旗標,並將合併後的設定套用到擴充功能中。
在安裝了 Azure CLI 的環境中開啟 PowerShell,然後登入 Azure。
az login設定你的 SQL Server 虛擬機變數。
$subscriptionId = "<subscription-id>" $resourceGroup = "<resource-group>" $vmName = "<vm-name>" az account set --subscription $subscriptionId取得目前的 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 }在保留現有功能旗幟的同時,新增
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儲存合併後的設定,並套用到 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 }對你想監控的每個虛擬機重複這些步驟。
擴充功能會自動重新載入公開設定。 你不需要重啟 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 到 3 步驟,請在 Azure VM 啟用 SQL Server 效能監控,登入、設定變數並取得目前設定。
將
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完成步驟 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 入口網站中開啟或關閉收集功能:
- 在透過 Azure Arc 啟用的 SQL Server 的資源頁面上,選取 [效能儀表板 (預覽)]。
- 在 [效能儀表板] 窗格頂端,選取 [設定]。
- 在 「設定監控設定 」面板中,使用切換開關開啟監控資料收集。
- 請點擊套用設定。
要使用 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 入口網站中開啟或關閉收集功能:
- 在透過 Azure Arc 啟用的 SQL Server 的資源頁面上,選取 [效能儀表板 (預覽)]。
- 在 [效能儀表板] 窗格頂端,選取 [設定]。
- 在 「配置監控設定 」面板中,使用開關關閉監控資料收集。
- 請點擊套用設定。
要使用 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