다음을 통해 공유


온-프레미스 데이터베이스에 적합한 Azure VM SKU의 Azure SQL Database, Azure SQL Managed Instance 또는 SQL Server 식별

Important

DMA(Data Migration Assistant)는 더 이상 사용되지 않습니다. SQL Server에서 Azure SQL로의 마이그레이션 옵션은 SQL Server에서 Azure SQL로의 마이그레이션 옵션을 참조하세요.

데이터베이스를 클라우드로 마이그레이션하는 작업은 복잡할 수 있습니다. 특히 데이터베이스에 대한 Azure VM 대상 및 SKU에서 최상의 Azure SQL Database, SQL Managed Instance 또는 SQL Server를 선택하려고 할 때 그렇습니다.

DMA(Database Migration Assistant)는 사용자 친화적인 출력에서 이러한 SKU 권장 사항을 제공하여 이러한 질문을 해결하고 데이터베이스 마이그레이션 환경을 더 쉽게 만들 수 있도록 도와줍니다. 이제 성능 데이터 DMA를 사용하여 적절한 대상 Azure SQL SKU를 추천하고 권장 사항에 대한 설명을 추천할 수 있습니다.

SKU 권장 사항 기능을 사용하면 데이터베이스를 호스트하는 원본 SQL Server 인스턴스에서 성능 데이터를 수집하고, 수집된 데이터를 기반으로 Azure VM SKU에서 최소 Azure SQL Database, Azure SQL Managed Instance 또는 SQL Server를 권장할 수 있습니다. 이 기능은 가격 책정 계층, 컴퓨팅 수준, 데이터 크기와 관련된 권장 사항을 제공합니다. 이 기능은 현재 CLI(명령줄 인터페이스)를 통해서만 사용할 수 있습니다.

다음은 SKU 권장 사항을 확인하고 DMA를 사용하여 Azure에서 해당 데이터베이스를 프로비저닝하는 데 도움이 되는 지침입니다.

참고 항목

VMware에서 전체 SQL Server 데이터 자산을 대규모로 평가하는 경우 Azure Migrate를 사용하여 Azure SQL 배포 권장 사항, 대상 크기 조정 및 월별 추정치를 가져옵니다.

필수 조건

  • 최신 버전의 DMA를 다운로드하여 설치합니다. 도구의 이전 버전이 이미 있는 경우 해당 도구를 열면 DMA를 업그레이드하라는 메시지가 표시됩니다.
  • SKU 권장 사항 콘솔 응용 프로그이 실행 중인 도구 컴퓨터에 최소 버전 .NET Core 6.0을 설치합니다.
  • SQL Server 온-프레미스 원본에 연결하는 데 사용되는 계정에 sysadmin 권한이 있는지 확인합니다.

참고 항목

잠재적인 오버헤드를 최소화하기 위해 SQL Server 자체를 호스팅하는 컴퓨터가 아닌 대상 SQL 인스턴스에 연결된 별도의 도구(클라이언트) 컴퓨터에서 도구를 사용하는 것이 좋습니다. SKU 권장 사항에 대한 성능 데이터를 수집할 때는 사용량이 적은 워크로드와 사용량이 많은 워크로드를 모두 처리하고 인덱스 다시 빌드 또는 백업 데이터베이스와 같은 유지 관리 작업을 제외하고 몇 시간 동안 기본 옵션 값으로 도구를 실행하는 것이 좋습니다. 유지 관리 작업은 CPU, 메모리, IO 사용량에 영향을 미칠 수 있으며 이후 권장 SKU 계층을 높일 수 있습니다.

성능 데이터 수집

수집된 데이터에는 서버의 하드웨어 구성에 대한 제한된 정보와 CPU, 메모리, 스토리지 사용량, IO 처리량, IO 대기 시간과 같은 시스템 DMV(동적 관리 뷰)의 집계된 SQL 관련 성능 데이터가 포함됩니다. 수집된 데이터는 추가 집계 및 분석을 위해 머신에 로컬로 저장됩니다. 원본 인스턴스의 성능 특성은 워크로드에 가장 적합하고 동시에 비용 효과적인 Azure SQL 제품(Azure VM의 SQL Database, SQL Managed Instance, SQL 포함)에 대한 SKU 권장 사항을 사용하도록 분석됩니다.

DMA 설치 경로에서 SQLAssessmentConsole 폴더 및 SqlAssessment.exe 응용 프로그램을 찾습니다.

DMA 설치 폴더 위치에 표시된 SKUConsoleApplication.exe 파일의 스크린샷

데이터 수집 프로세스를 시작하려면 다음 인수를 사용하여 콘솔 애플리케이션에서 PerfDataCollection 작업을 지정합니다.

  • sqlConnectionStrings: (필수) 대상 SQL 인스턴스에 대한 따옴표로 묶인 정식 연결 문자열입니다.
  • perfQueryIntervalInSec (선택 사항): 성능 데이터를 쿼리할 간격(초)입니다. (기본값: 30).
  • staticQueryIntervalInSec (선택 사항): 정적 구성 데이터를 쿼리하고 유지할 간격(초)입니다. (기본값: 60).
  • numberOfIterations (선택 사항): 파일에 유지하기 전에 수행할 성능 데이터 수집의 반복 횟수입니다. 예를 들어 기본값을 사용하면 성능 데이터가 30초 * 20회 반복 = 10분마다 유지합니다. (기본값: 20).
  • outputFolder (선택 사항): 성능 데이터, 보고서, 로그를 쓰는/읽는 폴더입니다. (기본값: %LocalAppData%/Microsoft/SqlAssessmentConsole).

다음 예제는 샘플 호출입니다.

.\SqlAssessment.exe PerfDataCollection
--sqlConnectionStrings "Data Source=Server1;Initial Catalog=master;Integrated Security=True;" "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
--outputFolder C:\Output

또는 JSON 구성 파일에서 적절한 인수를 제공하고 다음과 같이 작업 없이 실행 파일을 실행하여 구성 파일을 도구에 전달하여 데이터 수집 프로세스를 호출할 수 있습니다.

.\SqlAssessment.exe --configFile C:\path\to\config.json

다음은 앞에서 설명한 성능 데이터 수집 작업에 해당하는 샘플 ConfigFile입니다.

  {
    "action": "PerfDataCollection",
    "sqlConnectionStrings": [
    "Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
    "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
    ],
    "outputFolder": "C:\\Output"
  }

모든 작업에 대한 샘플 구성 파일은 DMA 설치 경로 아래의 Example 폴더에서 찾을 수 있습니다(GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json, GetSkuRecommendationSampleConfigFile.json).

명령이 실행된 후 성능 및 구성 데이터 요소는 각각 서버 및 인스턴스 이름을 포함하는 대상 인스턴스당 3개의 *_Counters.csv 파일 집합으로 저장됩니다. 이 파일을 프로세스의 다음 부분에 대한 입력으로 사용할 수 있습니다. 그러면 Azure VM에서 Azure SQL Database, Azure SQL Managed Instance 또는 SQL Server에 대한 SKU 권장 사항을 제공합니다.

콘솔 애플리케이션을 사용하여 SKU 권장 사항 가져오기

이전 단계에서 수집한 데이터 요소는 SKU 권장 사항 프로세스의 입력으로 사용합니다.

단일 데이터베이스 옵션의 경우 DMA는 Azure SQL Database 단일 데이터베이스 계층, 컴퓨팅 수준, SQL 인스턴스의 각 데이터베이스에 권장되는 스토리지 구성에 대한 권장 사항을 제공합니다.

Azure VM의 Azure SQL Managed Instance 및 SQL Server의 경우 권장 사항은 리프트 앤 시프트 시나리오를 지원합니다. 따라서 SKU 권장 사항 콘솔 앱은 Azure SQL Managed Instance에 대한 권장 사항 또는 Azure VM 계층, 컴퓨팅 수준, SQL 인스턴스의 데이터베이스 집합에 권장되는 스토리지 구성에 대한 SQL Server를 제공할 수 있습니다. SKU 권장 사항에서 포함하거나 제외할 데이터베이스의 하위 집합만 지정할 수도 있습니다.

GetSkuRecommendation은 기본적으로 워크로드를 나타내는 수집된 성능 데이터 값(지정된 백분위수 값 기준)을 오른쪽 Azure SQL SKU에 매핑하는 기준 전략을 사용합니다. 또한 이미 Azure SQL로 마이그레이션한 고객을 기반으로 모델에 대한 워크로드 패턴을 분석하여 수집된 성능 데이터를 기반으로 고유한 가격 대 성능 곡선을 생성하는 탄력적 전략(통계적 접근 방식)을 제공합니다.

SKU 권장 사항 프로세스를 시작하려면 다음 인수를 사용하여 콘솔 애플리케이션에서 GetSkuRecommendation 작업을 지정합니다.

  • perfQueryIntervalInSec (선택 사항): 성능 데이터를 쿼리한 간격(초)입니다. 참고: 제공된 값은 성능 데이터 수집 중에 원래 사용된 값과 일치해야 합니다. (기본값: 30)
  • targetPlatform (선택 사항): SKU 권장 사항에 대한 대상 플랫폼: AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachine 또는 Any 중 하나입니다. Any를 선택하면 세 대상 플랫폼 모두에 대한 SKU 권장 사항을 평가할 수 있으며 가장 적합한 플랫폼이 반환됩니다. (기본값: Any)
  • targetSqlInstance (선택 사항): SKU 권장 사항이 대상으로 하는 SQL 인스턴스의 이름입니다. (기본값: PerfDataCollection 작업에서 만든 파일에 대해 outputFolder가 검색되고 발견된 모든 인스턴스에 대해 권장 사항이 제공됨)
  • targetPercentile (선택 사항): 성능 데이터를 집계하는 동안 사용할 데이터 포인트의 백분위수입니다. 기준(비 탄력적) 전략에만 사용됨). 기준(비 탄력적) 전략에만 사용됩니다. (기본값: 95)
  • scalingFactor (선택 사항): SKU 권장 사항 중에 사용되는 스케일링(‘편안함’) 인수입니다. 예를 들어 스케일링 인수가 150%인 vCore CPU 요구 사항이 4개인 것으로 확인되면 실제 CPU 요구 사항은 vCore 6개입니다. (기본값: 100)
  • startTime (선택 사항): 집계 중에 고려해야 할 성능 데이터 포인트의 UTC 시작 시간입니다(yyyy-MM-dd HH:mm 형식). 기준(비 탄력적) 전략에만 사용됩니다. (기본값: 수집된 모든 데이터 요소가 고려됨)
  • endTime (선택 사항): 집계 중에 고려해야 할 성능 데이터 포인트의 UTC 종료 시간입니다(yyyy-MM-dd HH:mm 형식). 기준(비 탄력적) 전략에만 사용됩니다. (기본값: 수집된 모든 데이터 요소가 고려됨)
  • elasticStrategy (선택 사항): 리소스 사용 프로파일링 및 비용 성능 분석을 기반으로 SKU 권장 사항에 탄력적 전략을 사용할지 여부입니다. 탄력적 전략은 현재 Azure SQL Database 및 SQL Managed Instance에 사용할 수 있으며, 아직 SQL Server on Azure VM에 사용할 수 없습니다. (기본값: false)
  • databaseAllowList (선택 사항): 다른 모든 항목을 제외하면서 SKU 권장 사항을 고려할 수 있도록 데이터베이스 이름의 공백으로 구분된 목록입니다. databaseAllowList, databaseDenyList 중 하나만 설정하거나 둘 다 설정하지 않습니다. (기본값: null)
  • databaseDenyList (선택 사항): SKU 권장 사항에서 제외할 공백으로 구분된 데이터베이스 이름 목록입니다. databaseAllowList, databaseDenyList 중 하나만 설정하거나 둘 다 설정하지 않습니다. (기본값: null)
  • overwrite (선택 사항): 기존 SKU 권장 사항 보고서를 덮어쓸지 여부입니다. (기본값: true)
  • displayResult (선택 사항): SKU 권장 사항 결과를 콘솔에 출력할지 여부입니다. (기본값: true)
  • outputFolder (선택 사항): 성능 데이터, 보고서, 로그를 쓰는/읽는 폴더입니다. (기본값: %LocalAppData%\Microsoft\SqlAssessment)
  • suppressPreviewFeatures (선택 사항): true로 설정된 경우 미리 보기 기간에 있는 Azure 기능은 권장 사항에 포함되지 않습니다. (기본값: false)

SKU 권장 사항에 대한 고급 설정은 루트 디렉터리의 Console.Settings.json 파일에서 찾을 수 있습니다. 현재 다음과 같은 사용자 지정 가능한 매개 변수가 포함되어 있습니다.

CommandTimeoutGroupSetting: 제한 시간이 초과되기 전에 SQL 쿼리 명령이 실행될 때까지 대기할 시간(초).

  • PerfCollectionCommandTimeout: 성능 데이터 수집과 관련된 잠재적으로 장기 실행 쿼리에 대한 명령 시간 제한(기본값: 300)
  • DefaultCollectionCommandTimeout: 다른 모든 쿼리에 대한 명령 시간 제한(기본값: 120)

ThrottlingGroupSetting: 머신의 코어 수에 따라 만들 병렬 작업 수

  • ServerInstancesParallelCount: 병렬로 평가할 서버 인스턴스 수(기본값: 2)
  • DatabasesParallelCount: 병렬로 평가할 데이터베이스 수(기본값: 4)
  • UserDefinedObjectsParallelCountPerDb: 데이터베이스당 병렬로 평가할 사용자 정의 개체(저장 프로시저, 뷰, 트리거 등) 수(기본값: 4)

AllowTelemetry: 익명 기능 사용량 및 진단 데이터를 Microsoft에 수집 및 전송할 수 있는지 여부. (기본값: true)

또는 JSON 구성 파일에서 적절한 인수를 제공하고 다음과 같이 작업 없이 실행 파일을 실행하여 구성 파일을 도구에 전달하여 SKU 권장 사항 프로세스를 호출할 수 있습니다.

.\SqlAssessment.exe --configFile C:\path\to\config.json

다음 ConfigFile은 앞에서 설명한 SKU 권장 사항 작업과 동일합니다.

{
    "action": "GetSkuRecommendation",
    "outputFolder": "C:\\Output",
    "targetPlatform": "AzureSqlDatabase",
    "targetSqlInstance": "Server1",
    "targetPercentile": 95,
    "scalingFactor": 100,
    "startTime": "2020-01-01 00:00",
    "endTime": "2022-01-01 00:00",
    "perfQueryIntervalInSec": 30,
    "overwrite": "true"
}

자동으로 선택하는 대신 특정 Azure SQL 플랫폼에 대한 SKU 권장 사항을 얻으려면 다음과 같이 --targetPlatform 옵션에 대한 값을 제공합니다.

샘플 1: Azure SQL Database에 대한 SKU 권장 사항 가져오기.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlDatabase

샘플 2: Azure SQL Managed Instance에 대한 탄력적 전략을 사용하여 SKU 권장 사항 가져오기.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true

샘플 3: Azure SQL Virtual Machine에 대한 SKU 권장 사항 가져오기.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine

샘플 4: Azure SQL Virtual Machine에 대한 SKU 권장 사항 가져오기 및 미리 보기 기능 숨김

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--suppressPreviewFeatures True

다음 스크린샷은 Azure SQL Database 권장 사항의 예제 출력입니다.

SQLAssessment 콘솔에 표시된 Azure SQL Database SKU 계층 및 크기 권장 사항의 스크린샷

다음 스크린샷은 Azure SQL Managed Instance 권장 사항의 예제 출력입니다.

콘솔에 표시된 Azure SQL Managed Instance SKU 계층 및 크기 권장 사항의 스크린샷

다음 스크린샷은 Azure VM 권장 사항에 대한 SQL Server의 예제 출력입니다.

콘솔에 표시된 Azure VM SKU 계층 및 크기 권장 사항 출력의 SQL Server 스크린샷

SKU 권장 사항의 출력은 JSON 형식의 자세한 보고서와 요약된 읽기 쉬운 HTML 파일로 모두 저장됩니다. 출력은 다음 섹션을 다룹니다.

  • 인스턴스 이름: 온-프레미스 SQL Server 인스턴스의 이름
  • 데이터베이스 이름: 온-프레미스 SQL Server 데이터베이스의 이름
  • SKU 권장 사항: 워크로드를 수용할 수 있는 모든 성능 적격 SKU 중에서 비용 효율적인 최소 SKU 제품.
  • 권장 이유: 권장되는 각 계층에 대해 권장 사항을 구동하는 이유와 수집된 데이터 값을 제공합니다.

해당 계층에 대한 최종 권장 계층 및 구성 값은 온-프레미스 데이터베이스와 비슷한 성공률로 Azure에서 쿼리를 실행하는 데 필요한 최소 SKU를 반영합니다.