Microsoft SQL 성능 모니터링 활성화 (preview)

이 글에서는 Microsoft SQL 서비스의 성능 모니터링을 활성화하고 비활성화하여 Database Hub의 성능 페이지에 성능 데이터가 나타나도록 하는 방법을 설명합니다. 성능 모니터링을 활성화하는 데 추가 비용이 발생하지 않습니다. 모니터링 에이전트, 데이터 저장소 또는 기타 모니터링 인프라를 배포하거나 유지할 필요가 없습니다.

Important

이 기능은 프리뷰 상태입니다.

성능 모니터링을 켜는 단계는 서비스마다 다릅니다. 모니터링을 켜면 모든 서비스가 동일한 텔레메트리 파이프라인으로 성능 데이터를 전송합니다. 데이터베이스 허브는 이 데이터를 활용해 성능 문제를 식별하고 대시보드를 생성하는 데 도움을 줍니다. 또한 KQL로 텔레메트리를 직접 쿼리할 수도 있습니다. 자세한 내용은 쿼리 성능 모니터링 원격 분석을(를) 참조하세요. 이 글에서는 다음 서비스에 대해 다룹니다:

Azure, Fabric, 온프레미스에서 데이터베이스 허브에서 Microsoft SQL 리소스를 볼 수 있습니다. 다음 자원 유형이 포함되어 있습니다:

  • Azure SQL 데이터베이스
  • Azure SQL Managed Instance(애저 SQL 매니지드 인스턴스)
  • Azure VM 위의 SQL Server
  • Azure Arc로 지원되는 SQL Server
  • Azure SQL Database 탄력적 풀
  • Fabric 내의 SQL 데이터베이스

다음 리소스 유형은 데이터베이스 허브에서 확인할 수 있지만, 성능 페이지에서는 아직 지원하지 않습니다:

  • Fabric 내의 SQL 데이터베이스
  • Azure SQL Database 탄력적 풀
  • Azure SQL Managed Instance(애저 SQL 매니지드 인스턴스)
  • 성능 모니터링은 Azure SQL Database elastic pool이나 2차 복제본의 데이터베이스에서 데이터를 수집하지 않습니다.

지역 가용성 및 데이터 처리

Microsoft SQL 리소스에 대한 성능 모니터링은 다음 Azure 지역에서 제공됩니다. 정부, 주권, 에어갭 클라우드는 미리보기 동안 지원되지 않습니다. 자세한 내용은 Fabric 지역별 가용성을 참조하세요.

  • Brazil South
  • Canada Central
  • Canada East
  • Central US
  • East US
  • 미국 동부 2
  • 미국 중북부
  • 미국 중남부
  • 미국 중서부
  • West US
  • 미국 서부 2
  • 미국 서부 3

성능 모니터링은 SQL 리소스의 동적 관리 뷰(DMV)에서 성능 데이터를 수집합니다. 성능 모니터링은 개인 데이터나 고객 콘텐츠를 수집하지 않으며, 데이터는 모니터링되는 SQL 리소스의 지리적 범위 밖에 저장되지 않습니다.

SQL 리소스 제공자를 등록하세요

성능 모니터링 데이터를 보려면, 모니터링하고자 하는 데이터베이스 자원이 포함된 각 구독에 리소스 제공자를 등록하세요 Microsoft.Sql . 자세한 내용은 az 제공자 등록부를 참조하세요.

az provider register --namespace Microsoft.Sql

등록 상태를 확인하려면 다음 명령을 실행하세요. 명령이 Registered를 반환하면 등록이 완료됩니다.

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

Azure SQL Database에 대한 성능 모니터링 활성화

다음 방법 중 하나를 사용할 수 있습니다.

  • 데이터베이스 허브에서 에스테이트 페이지로 가서 리소스를 선택한 후 성능 모니터링 활성화를 선택하세요.
  • 모니터링하고 싶은 각 사용자 데이터베이스에 다음 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 VMs on SQL Server의 성능 모니터링 활성화

Azure VM에서 SQL Server의 성능 모니터링을 가능하게 하려면 SQL IaaS Agent 확장 프로그램의 공개 설정에 기능 플래그를 추가 DatabaseWatcheronAzureVM 하세요. 확장 프로그램은 SQL Server 인스턴스에서 성능 데이터를 수집하여 VM의 시스템 할당 관리 식별 정보를 사용해 지역 텔레메트리 엔드포인트에 업로드합니다. 모니터링은 VM별로 설정됩니다. 한 VM에서 기능 플래그를 활성화해도 다른 VM에서는 모니터링이 활성화되지 않습니다.

검증, 문제 해결 및 수집된 데이터셋 전체 목록은 Azure VM에서 SQL Server 성능 모니터링 활성화를 참조하세요.

Azure VM의 SQL Server 필수 구성 요소

  • 성능 모니터링은 Azure VM에서 SQL Server 2016 SP1 및 이후 버전을 지원합니다. SQL Server 2016 SP1 이전 버전의 SQL Server는 지원되지 않습니다.
  • 성능 모니터링은 SQL Server 엔터프라이즈 및 스탠다드 에디션의 모든 데이터셋을 수집합니다. SQL Server Developer, Express, Evaluation 에디션의 경우, 성능 모니터링은 클라이언트 연결 데이터만 수집합니다.
  • SQL IaaS 에이전트 확장 버전 2.0.229.0 또는 그 이후의 완전한 관리 모드로 반드시 설치해야 합니다. 확장을 활성화해야 하며, 프로비저닝 상태는 성공 상태여야 합니다.
  • VM은 시스템 할당 관리 식별 이 활성화되어 있어야 합니다.
  • SQL Server 인스턴스 자원은 통합 인벤토리를 통해 제공되어야 합니다.
  • 구독을 위해 자원 제공자를 Microsoft.Sql등록해야 합니다.
  • VM은 포트 443를 통해 telemetry.<region>.arcdataservices.com에 대한 아웃바운드 HTTPS 연결을 허용해야 합니다. 여기서 <region>는 VM을 호스팅하는 Azure 지역입니다.
  • 최신 버전의 Azure CLI가 필요합니다.
  • 가상 머신 기여자 역할의 멤버십과 같은 확장 기능을 보고 업데이트하려면 권한이 필요합니다.

Azure VMs에서 SQL Server 성능 모니터링을 활성화하는 방법

Important

SQL IaaS 에이전트 확장 설정은 누적되는 것이 아닙니다. 확장 프로그램을 업데이트할 때는 다른 기능을 의도치 않게 비활성화하지 않도록 모든 기존 공개 설정을 포함하세요.

다음 PowerShell 단계에서는 현재 공개 설정을 가져오고, 성능 모니터링 기능 플래그를 추가하며, 병합된 설정을 확장 프로그램에 적용합니다.

  1. Azure CLI가 설치된 환경에서 PowerShell을 열고 Azure에 로그인하세요.

    az login
    
  2. SQL Server VM의 변수를 설정하세요.

    $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. 모니터링하고 싶은 각 VM마다 이 단계를 반복하세요.

확장 프로그램은 공개 설정을 자동으로 다시 불러옵니다. SQL Server IaaS 에이전트 서비스나 VM을 재시작할 필요는 없습니다. 대부분의 성능 데이터는 설정 적용 후 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"}. 데이터가 사용 가능한지 확인하려면 Query 성능 모니터링 텔레메트리에서 연결 테스트 쿼리를 실행하세요.

Azure VMs에서 SQL Server의 성능 모니터링을 비활성화하세요

VM의 새로운 성능 데이터를 수집하는 것을 멈추려면 기능 플래그를 false로 설정 DatabaseWatcheronAzureVM 하세요. 변경 사항을 기존 공개 설정과 병합하여 다른 SQL IaaS 에이전트 확장 기능들이 영향을 받지 않도록 하세요.

  1. Azure VM에서 SQL Server 성능 모니터링 활성화 항목에서 1단계부터 3단계까지 완료하여 로그인, 변수 설정, 현재 설정을 가져오세요.

  2. 기존 기능 플래그는 유지하면서 false 기능 플래그를 DatabaseWatcheronAzureVM로 설정하세요.

    $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. Azure VM에서 SQL Server 성능 모니터링 활성화 단계에서 5단계를 완료하여 병합된 설정을 확장에 적용하세요.

새 설정이 적용될 때까지 몇 분간 기다린 후, 변경 사항을 확인하기 위해 연장 상태를 다시 확인하세요.

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에서 실행되어야 합니다. SQL Server on Linux는 지원되지 않습니다. 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를 사용하여 컬렉션을 활성화하려면 다음 명령을 실행하세요. 구독 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

다음 단계: