다음을 통해 공유


Azure VM의 SQL Server에 대한 SQL 모범 사례 평가

적용 대상: Azure VM 기반 SQL Server

Azure Portal의 SQL 모범 사례 평가 기능은 가능한 성능 문제를 식별하고 Azure Virtual Machines(VM)의 SQL Server가 SQL 평가 API에서 제공하는 다양한 규칙 집합을 사용하여 모범 사례를 따르도록 구성되어 있는지 평가합니다.

자세히 알아보려면 SQL 모범 사례 평가에 대한 다음 동영상을 시청합니다.

개요

SQL 모범 사례 평가 기능이 활성화되면 SQL Server 인스턴스 및 데이터베이스를 스캔하여 인덱스, 사용되지 않는 기능, 활성화 또는 누락된 추적 플래그, 통계 등과 같은 항목에 대한 권장 사항을 제공합니다. 권장 사항은 Azure PortalSQL VM 관리 페이지에 표시됩니다.

평가 결과는 Azure Monitor 에이전트(AMA)를 사용하여 Log Analytics 작업 영역에 업로드됩니다. AMA 익스텐션은 아직 설치되지 않은 경우 SQL Server VM에 설치되며 DCE, DCR 등의 AMA 리소스가 만들어지고 지정된 Log Analytics 작업 영역에 연결됩니다.

평가 런타임은 환경(데이터베이스, 개체 수 등)에 따라 달라지며, 기간은 몇 분에서 최대 1시간까지입니다. 마찬가지로 평가 결과의 크기도 환경에 따라 달라집니다. 평가는 인스턴스 및 해당 인스턴스의 모든 데이터베이스에 대해 실행됩니다. 테스트에서 평가 실행이 컴퓨터에 최대 5~10%의 CPU 영향을 미칠 수 있음을 관찰했습니다. 이 테스트에서 평가는 TPC-C와 같은 애플리케이션이 SQL Server에 대해 실행되는 동안 수행되었습니다.

필수 조건

SQL 모범 사례 평가 기능을 사용하려면 다음 필수 조건이 있어야 합니다.

사용 권한

SQL 모범 사례 평가를 사용하도록 설정하려면 다음 권한이 필요합니다.

  • 기본 가상 머신 리소스의 가상 머신 기여자 입니다.
  • SQL 가상 머신 리소스의 가상 머신 기여자 입니다.
  • 로그 분석 작업 영역이 포함된 리소스 그룹에 로그 분석 기여자를 추가합니다.
  • Azure Monitor 에이전트 리소스가 만들어지는 리소스 그룹에 대한 읽기 권한자입니다. SQL 모범 사례 평가 기능을 사용하도록 설정할 때 리소스 그룹에 대한 구성 옵션을 확인합니다.

Enable

Azure Portal 또는 Azure CLI를 사용하여 SQL 모범 사례 평가를 사용하도록 설정할 수 있습니다.

Azure Portal을 사용하여 SQL 모범 사례 평가를 사용하도록 설정할 수 있습니다.

  1. Azure 포털에 로그인하고 SQL 가상 머신 리소스로 이동합니다.
  2. 설정에서 SQL 모범 사례 평가를 선택합니다.
  3. SQL 모범 사례 평가 사용 또는 구성을 선택하여 구성 페이지로 이동합니다.
  4. SQL 모범 사례 평가 사용 확인란을 선택하고 다음을 제공합니다.
    1. 평가가 업로드될 Log Analytics 작업 영역 드롭다운에서 구독의 기존 작업 영역을 선택합니다.
    2. Azure Monitor 에이전트 리소스 DCEDCR을 만들 리소스 그룹을 선택합니다. 여러 SQL Server VM에서 동일한 리소스 그룹을 지정하면 이러한 리소스가 다시 사용됩니다.
    3. 규칙 예약 수요에 따라 평가를 실행하거나 일정에 따라 자동으로 실행하도록 선택할 수 있습니다. 일정을 선택하는 경우 빈도(매주 또는 매월), 요일, 되풀이(1~6주마다), 평가를 시작해야 하는 시간(로컬에서 VM 시간)을 제공합니다.
  5. 적용을 선택하여 변경 내용을 저장하고 Azure Monitor 에이전트가 아직 배포되지 않은 경우 SQL Server VM에 배포합니다. SQL 모범 사례 평가 기능이 SQL Server VM에 준비되면 Azure Portal 알림이 알려줍니다.

SQL Server VM 평가

평가는 다음을 실행합니다.

  • 일정에 따라
  • 주문형

예약된 평가 실행

Azure Portal 및 Azure CLI를 사용하여 일정에 따라 평가를 구성할 수 있습니다.

구성 창에서 일정을 설정하면 지정된 날짜 및 시간에서 평가가 자동으로 실행됩니다. 구성을 선택하고 평가 일정을 수정합니다. 새 일정을 제공하면 이전 일정을 덮어씁니다.

주문형 평가 실행

Azure Portal 또는 Azure CLI를 통해 SQL Server VM에 SQL 모범 사례 평가 기능을 사용하도록 설정한 후에는 필요에 따라 평가를 실행할 수 있습니다.

Azure 포털을 사용하여 주문형 평가를 실행하려면 Azure 포털의 SQL 가상 머신 리소스 페이지에 있는 SQL 모범 사례 평가 창에서 평가 실행을 선택합니다.

결과 보기

SQL 모범 사례 평가 페이지의 평가 결과 섹션에는 가장 최근의 평가 실행 목록이 표시됩니다. 각 행은 실행의 시작 시간 및 상태(예약, 실행, 업로드 결과, 완료 또는 실패)를 표시됩니다. 각 평가 실행에는 인스턴스를 평가하고 결과를 Log Analytics 작업 영역으로 업로드하는 두 가지 부분이 있습니다. 상태 필드는 두 부분을 모두 다 포함합니다. 평가 결과는 Azure 통합 문서에 표시됩니다.

다음 세 가지 방법으로 평가 결과 Azure 통합 문서에 액세스합니다.

  • SQL 모범 사례 평가 페이지에서 성공적인 최신 평가 보기 단추를 선택합니다.
  • SQL 모범 사례 평가 페이지의 평가 결과 섹션에서 완료된 실행을 선택합니다.
  • SQL VM 리소스 페이지의 개요 페이지에 표시된 상위 10개 권장 사항에서 평가 결과 보기를 선택합니다.

통합 문서가 열리면 드롭다운을 사용하여 이전 실행을 선택할 수 있습니다. 결과 페이지를 사용하여 단일 실행의 결과를 보거나 추세 페이지를 사용하여 기록 추세를 검토할 수 있습니다.

결과 페이지

결과 페이지에는 다음에 대한 탭을 사용하여 권장 사항이 정리되어 있습니다.

  • 모두: 현재 실행 중인 모든 권장 사항
  • 새로 만들기: 새 권장 사항(이전 실행의 델타)
  • 확인됨: 이전 실행에서 확인된 권장 사항입니다.
  • 인사이트: 가장 반복되는 문제와 가장 많은 문제가 있는 데이터베이스를 식별합니다.

그래프 그룹 평가 결과는 심각도(높음, 중간, 낮음 및 정보)의 다양한 범주로 나뉩니다. 각 범주를 선택하여 권장 사항 목록을 보거나 검색 상자에서 핵심 구를 검색합니다. 가장 심각한 권장 사항으로 시작하고 목록을 아래로 이동하는 것이 가장 최선입니다.

첫 번째 그리드에는 각 권장 사항과 해당 문제가 발생한 환경의 인스턴스 수가 표시됩니다. 첫 번째 그리드에서 행을 선택하면 두 번째 그리드에 해당 특정 권장 사항에 대한 모든 인스턴스가 나열됩니다. 첫 번째 그리드에 선택 항목이 없는 경우 두 번째 그리드에는 모든 추천 항목이 표시되며, 목록이 길어질 수도 있습니다. 그리드 위의 드롭다운(이름, 심각도, 태그, 확인 ID)을 사용하여 결과를 필터링할 수 있습니다. 각 그리드의 오른쪽 상단에 있는 작은 아이콘을 선택하여 Excel로 내보내기로그 보기에서 마지막 실행 쿼리 열기 옵션을 사용할 수도 있습니다.

그래프의 전달됨 섹션에서는 시스템이 이미 따르는 권장 사항을 식별합니다.

메시지 필드(예: 긴 설명 및 관련 온라인 리소스)를 선택하여 각 권장 사항의 자세한 정보를 봅니다.

추세 페이지에는 모든 문제, 새 문제 및 해결된 문제의 시간 경과에 따른 변경 내용을 보여주는 세 가지 차트가 있습니다. 차트를 통해 진행 상황을 확인할 수 있습니다. 해결된 문제의 수가 올라가는 동안 권장 사항 수가 내려가는 것이 가장 이상적입니다. 범례는 각 심각도 수준에 대한 평균 문제 수를 보여줍니다. 막대 위에 마우스를 대고 각 실행에 대한 개별 베일을 볼 수 있습니다.

단일 일에 여러 실행이 있는 경우 최신 실행만 추세 페이지의 그래프에 포함됩니다.

구독의 모든 VM에 사용하도록 설정

Azure CLI를 사용하여 구독 내의 모든 SQL Server VM에서 SQL 모범 사례 평가 기능을 사용하도록 설정할 수 있습니다. 이렇게 하려면 다음 예제 스크립트를 사용합니다.

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.
 
$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
# Resource Group where the Azure Monitor Agent resources will be created
$myAgentRg = 'myAgentRg'
 
# Ensure in correct subscription
az account set --subscription $subscriptionId
 
$sqlvms = az sql vm list | ConvertFrom-Json 
 
foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name
  
  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name  
 
  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

알려진 문제

SQL 모범 사례 평가를 사용할 때 다음과 같은 알려진 문제가 발생할 수 있습니다.

AMA(Azure Monitor 에이전트)로 마이그레이션

이전에는 SQL 모범 사례 평가 기능에서 MMA(Microsoft 모니터링 에이전트)를 사용하여 로그 분석 작업 영역에 평가를 업로드했습니다. Microsoft Monitoring Agent가 AMA(Azure Monitor Agent)로 대체되었습니다. 기존 SQL 모범 사례 평가를 MMA에서 AMA로 마이그레이션하려면 SQL Server VM을 삭제한 다음 확장에 다시 등록해야 합니다. 평가를 사용하도록 설정한 후에도 기존 결과를 계속 사용할 수 있습니다. MMA가 다른 서비스에서 사용되지 않는 경우 제거할 수 있습니다. 마이그레이션하기 전에 SQL Server VM이 배포된 지역에서 Azure Monitor Log Analytics가 지원되는지 확인하세요.

평가를 사용하도록 설정하지 못했습니다.

실패한 작업과 관련된 오류 메시지를 보려면 SQL VM이 포함된 리소스 그룹의 배포 기록을 참조하세요.

평가를 실행하지 못했습니다.

Azure Portal에서 평가 실행 상태를 확인합니다. 상태가 실패하면 상태를 선택하여 오류 메시지를 봅니다. 또한 VM에 로그인하여 C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Y의 확장 로그에서 실패한 평가에 대한 자세한 오류 메시지를 검토할 수 있습니다(여기서 2.0.X.Y는 확장 버전입니다).

평가를 실행하는 데 문제가 있는 경우:

  • 사용 중인 환경이 모든 전제 조건을 충족하는지 확인하세요.
  • SQL IaaS 에이전트 서비스가 VM에서 실행 중이고 SQL IaaS 에이전트 확장이 정상 상태인지 확인합니다. SQL IaaS 에이전트 확장이 비정상인 경우 확장을 복구하여 문제를 해결하고 SQL Server 가동 중지 시간 없이 최신 버전으로 업그레이드합니다.
  • NT SERVICE\SqlIaaSExtensionQuery에 대한 로그인 실패가 표시되면 해당 계정이 SQL Server에 Server permission - CONTROL SERVER 권한으로 존재하는지 확인하세요.

Log Analytics 작업 영역에 결과를 업로드하지 못했습니다.

이 오류는 MMA(Microsoft Monitoring Agent)가 예상 시간 내에 결과를 업로드할 수 없음을 나타냅니다.

결과가 Log Analytics 작업 영역에 업로드되지 않는 경우 다음을 시도합니다.

Log Analytics를 사용하는 잘못된 TLS 구성 오류

가장 일반적인 TLS 오류는 Log Analytics 엔드포인트에 연결할 때 MMA(Microsoft Monitoring Agent) 확장이 SSL 핸드셰이크를 설정할 수 없는 경우에 발생합니다. 이는 일반적으로 TLS 1.0이 OS 수준에서 레지스트리 또는 GPO에 의해 적용되지만 .NET 프레임워크에 대해 업데이트되지 않을 때 발생합니다. 채널별 레지스트리 키에 설명된 대로 Windows에서 TLS 1.0 이상을 적용하고 이전 SSL 프로토콜을 사용하지 않도록 설정한 경우 .NET Framework가 강력한 암호화를 사용하도록 구성되어 있는지도 확인해야 합니다.

SQL 평가를 구성한 후 Log Analytics 작업 영역을 변경할 수 없습니다.

VM이 Log Analytics 작업 영역과 연결된 후에는 SQL 가상 머신 리소스에서 변경할 수 없습니다. Log Analytics가 다른 사용 사례에 사용되지 않도록 하기 위해서 입니다. Azure 포털의 가상 머신 페이지에서 로그 분석 리소스 블레이드를 사용하여 VM 연결을 끊을 수 있습니다.

Log Analytics 작업 영역 데이터 보존으로 인해 결과가 만료됨

이는 결과가 해당 보존 정책에 따라 Log Analytics 작업 영역에 더 이상 보존되지 않음을 나타냅니다. 작업 영역의 보존 기간을 변경할 수 있습니다.