명령줄에서 Data Migration Assistant 실행

버전 2.1 이상에서는 Data Migration Assistant를 설치할 때 %ProgramFiles%\Microsoft Data Migration Assistant\에 dmacmd.exe도 설치합니다. dmacmd.exe를 사용하여 무인 모드에서 데이터베이스를 평가하고 결과를 JSON 또는 CSV 파일에 출력합니다. 이 방법은 여러 데이터베이스 또는 대규모 데이터베이스를 평가할 때 특히 유용합니다.

참고 항목

Dmacmd.exe는 평가 실행만 지원합니다. 현재 마이그레이션은 지원되지 않습니다.

CLI(명령줄 인터페이스)를 사용한 평가

DmaCmd.exe /AssessmentName="string"
/AssessmentDatabases="connectionString1" \["connectionString2"\]
\[/AssessmentSourcePlatform="SourcePlatform"]
\[/AssessmentTargetPlatform="TargetPlatform"\]
/AssessmentEvaluateFeatureParity|/AssessmentEvaluateCompatibilityIssues
\[/AssessmentOverwriteResult\]
/AssessmentResultJson="file"|/AssessmentResultCsv="file"
인수 설명 필수(Y/N)
/help or /? dmacmd.exe 도움말 텍스트를 사용하는 방법 N
/AssessmentName 평가 프로젝트의 이름 Y
/AssessmentDatabases 공백으로 구분된 연결 문자열 목록입니다. 데이터베이스 이름(초기 카탈로그)은 대/소문자를 구분합니다. Y
/AssessmentSourcePlatform 평가를 위한 원본 플랫폼:
평가에 지원되는 값: SqlOnPrem, RdsSqlServer(기본값)
대상 준비 평가에 지원되는 값: SqlOnPrem, RdsSqlServer(기본값), Cassandra(미리 보기)
N
/AssessmentTargetPlatform 평가를 위한 대상 플랫폼:
평가에 지원되는 값: AzureSqlDatabase, ManagedSqlServer, SqlServer2012, SqlServer2014, SqlServer2016, SqlServerLinux2017, SqlServerWindows2017(기본값)
대상 준비 평가에 지원되는 값: ManagedSqlServer(기본값), CosmosDB(미리 보기)
N
/AssessmentEvaluateFeatureParity 기능 패리티 규칙을 실행합니다. 원본 플랫폼이 RdsSqlServer인 경우 대상 플랫폼 AzureSqlDatabase에 대해 기능 패리티 평가가 지원되지 않습니다. Y
(AssessmentEvaluateCompatibilityIssues 또는 AssessmentEvaluateFeatureParity가 필요합니다.)
/AssessmentEvaluateCompatibilityIssues 호환성 규칙 실행 Y
(AssessmentEvaluateCompatibilityIssues 또는 AssessmentEvaluateFeatureParity가 필요합니다.)
/AssessmentOverwriteResult 결과 파일 덮어쓰기 N
/AssessmentResultJson JSON 결과 파일의 전체 경로 Y
(AssessmentResultJson 또는 AssessmentResultCsv가 필요합니다.)
/AssessmentResultCsv CSV 결과 파일의 전체 경로 Y
(AssessmentResultJson 또는 AssessmentResultCsv가 필요합니다.)
/AssessmentResultDma dma 결과 파일의 전체 경로 N
/Action SkuRecommendation을 사용하여 SKU 권장 사항을 가져옵니다.
AssessTargetReadiness를 사용하여 대상 준비 평가를 수행합니다.
AzureMigrateUpload를 통해 AzzessmentResultInputFolder의 모든 DMA 평가 파일을 업로드하여 Azure Migrate.Action 형식 사용 /Action= AzureMigrateUpload에 대량 업로드합니다.
N
/SourceConnections 공백으로 구분된 연결 문자열 목록입니다. 데이터베이스 이름(초기 카탈로그)은 선택 사항입니다. 데이터베이스 이름이 제공되지 않으면 원본의 모든 데이터베이스가 평가됩니다. Y
(작업이 ‘AssessTargetReadiness’인 경우 필요)
/TargetReadinessConfiguration 이름, 원본 연결 및 결과 파일의 값을 설명하는 XML 파일의 전체 경로입니다. Y
(TargetReadinessConfiguration 또는 SourceConnections가 필요합니다.)
/FeatureDiscoveryReportJson 기능 검색 JSON 보고서의 경로입니다. 이 파일이 생성되면 원본에 연결하지 않고 대상 준비 평가를 다시 실행하는 데 사용할 수 있습니다. N
/ImportFeatureDiscoveryReportJson 이전에 만든 기능 검색 JSON 보고서의 경로입니다. 원본 연결 대신 이 파일이 사용됩니다. N
/EnableAssessmentUploadToAzureMigrate 평가 결과를 Azure Migrate에 업로드 및 게시할 수 있습니다. N
/AzureCloudEnvironment 연결할 Azure 클라우드 환경을 선택합니다. 기본값은 Azure 퍼블릭 클라우드입니다. 지원되는 값: Azure(기본값), AzureChina, AzureGermany, AzureUSGovernment. N
/SubscriptionId Azure 구독 ID입니다. Y
(EnableAssessmentUploadToAzureMigrate 인수가 지정된 경우 필요)
/AzureMigrateProjectName 평가 결과를 업로드할 Azure Migrate 프로젝트 이름입니다. Y
(EnableAssessmentUploadToAzureMigrate 인수가 지정된 경우 필요)
/ResourceGroupName Azure Migrate 리소스 그룹 이름입니다. Y
(EnableAssessmentUploadToAzureMigrate 인수가 지정된 경우 필요)
/AssessmentResultInputFolder Azure Migrate에 업로드할 DMA 평가 파일을 포함하는 입력 폴더 경로입니다. Y
(작업이 AzureMigrateUpload인 경우 필요)

CLI를 사용하는 평가의 예

Dmacmd.exe

Dmacmd.exe /? or DmaCmd.exe /help

Windows 인증 사용하고 호환성 규칙을 실행하여 단일 데이터베이스 평가

DmaCmd.exe /AssessmentName="TestAssessment"
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;Integrated Security=true"
/AssessmentEvaluateCompatibilityIssues /AssessmentOverwriteResult
/AssessmentResultJson="C:\\temp\\Results\\AssessmentReport.json"

SQL Server 인증을 사용하고 기능 패리티를 실행하여 단일 데이터베이스 평가

DmaCmd.exe /AssessmentName="TestAssessment"
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;User Id=myUsername;Password=myPassword;"
/AssessmentEvaluateFeatureParity /AssessmentOverwriteResult
/AssessmentResultCsv="C:\\temp\\Results\\AssessmentReport.csv"

대상 플랫폼 SQL Server 2012에 대한 단일 데이터베이스 평가, .json 및 .csv 파일에 결과 저장

DmaCmd.exe /AssessmentName="TestAssessment"
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;Integrated Security=true"
/AssessmentTargetPlatform="SqlServer2012"
/AssessmentEvaluateFeatureParity /AssessmentOverwriteResult
/AssessmentResultJson="C:\\temp\\Results\\AssessmentReport.json"
/AssessmentResultCsv="C:\\temp\\Results\\AssessmentReport.csv"

대상 플랫폼 Azure SQL Database에 대한 단일 데이터베이스 평가, .json 및 .csv 파일에 결과 저장

DmaCmd.exe /AssessmentName="TestAssessment" 
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;Integrated Security=true"
/AssessmentTargetPlatform="AzureSqlDatabaseV12"
/AssessmentEvaluateCompatibilityIssues /AssessmentEvaluateFeatureParity
/AssessmentOverwriteResult 
/AssessmentResultCsv="C:\\temp\\AssessmentReport.csv" 
/AssessmentResultJson="C:\\temp\\AssessmentReport.json"

다중 데이터베이스 평가

DmaCmd.exe /AssessmentName="TestAssessment"
/AssessmentDatabases="Server=SQLServerInstanceName1;Initial
Catalog=DatabaseName1;Integrated Security=true"
"Server=SQLServerInstanceName1;Initial Catalog=DatabaseName2;Integrated
Security=true" "Server=SQLServerInstanceName2;Initial
Catalog=DatabaseName3;Integrated Security=true"
/AssessmentTargetPlatform="SqlServer2016"
/AssessmentEvaluateCompatibilityIssues /AssessmentOverwriteResult
/AssessmentResultCsv="C:\\temp\\Results\\AssessmentReport.csv"
/AssessmentResultJson="C:\\Results\\test2016.json"

Windows 인증을 사용하여 단일 데이터베이스 대상 준비 상태 평가

DmaCmd.exe /Action=AssessTargetReadiness 
/AssessmentName="TestAssessment" 
/SourceConnections="Server=SQLServerInstanceName;Initial Catalog=DatabaseName;Integrated Security=true" 
/AssessmentOverwriteResult 
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json"

SQL Server 인증을 사용하여 단일 데이터베이스 대상 준비 상태 평가

DmaCmd.exe /Action=AssessTargetReadiness 
/AssessmentName="TestAssessment" 
/SourceConnections="Server=SQLServerInstanceName;Initial Catalog=DatabaseName;User Id=myUsername;Password=myPassword;" /AssessmentEvaluateFeatureParity 
/AssessmentOverwriteResult 
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json" 

대상 플랫폼 Azure SQL Database에 대한 단일 데이터베이스 평가, .json 및 .csv 파일에 결과 저장

DmaCmd.exe /AssessmentName="TestAssessment" 
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;Integrated Security=true"
/AssessmentSourcePlatform="SqlOnPrem"
/AssessmentTargetPlatform="AzureSqlDatabase"
/AssessmentEvaluateCompatibilityIssues /AssessmentEvaluateFeatureParity
/AssessmentOverwriteResult 
/AssessmentResultCsv="C:\\temp\\AssessmentReport.csv" 
/AssessmentResultJson="C:\\temp\\AssessmentReport.json"

다중 데이터베이스 대상 준비 상태 평가

DmaCmd.exe /Action=AssessTargetReadiness
/AssessmentName="TestAssessment"
/AssessmentSourcePlatform=SourcePlatform
/AssessmentTargetPlatform=TargetPlatform
/SourceConnections="Server=SQLServerInstanceName1;Initial Catalog=DatabaseName1;Integrated Security=true" "Server=SQLServerInstanceName1;Initial Catalog=DatabaseName2;Integrated Security=true" "Server=SQLServerInstanceName2;Initial Catalog=DatabaseName3;Integrated Security=true"
/AssessmentOverwriteResult  
/AssessmentResultJson="C:\Results\test2016.json"

(/AssessmentSourcePlatform and /AssessmentTargetPlatform are optional.)

Windows 인증 사용하여 서버의 모든 데이터베이스에 대한 대상 준비 평가

DmaCmd.exe /Action=AssessTargetReadiness
/AssessmentName="TestAssessment"
/SourceConnections="Server=SQLServerInstanceName;Integrated Security=true"
/AssessmentOverwriteResult
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json"

이전에 만든 기능 검색 보고서를 가져와서 대상 준비 평가

DmaCmd.exe /Action=AssessTargetReadiness
/AssessmentName="TestAssessment"
/ImportFeatureDiscoveryReportJson="c:\temp\feature_report.json" 
/AssessmentOverwriteResult
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json"

구성 파일을 제공하여 대상 준비 평가

DmaCmd.exe /Action=AssessTargetReadiness 
/TargetReadinessConfiguration=.\Config.xml

원본 연결을 사용할 때 구성 파일 콘텐츠:

<?xml version="1.0" encoding="utf-8" ?>
<TargetReadinessConfiguration xmlns="http://microsoft.com/schemas/SqlServer/Advisor/TargetReadinessConfiguration">
  <AssessmentName>name</AssessmentName>
  <SourcePlatform>Source Platform</SourcePlatform> <!-- Optional. The default is SqlOnPrem -->
  <TargetPlatform>TargetPlatform</TargetPlatform> <!-- Optional. The default is ManagedSqlServer -->
  <SourceConnections>
    <SourceConnection>connection string 1</SourceConnection>
    <SourceConnection>connection string 2</SourceConnection>
    <!-- ... -->
    <SourceConnection>connection string n</SourceConnection>
  </SourceConnections>
  <AssessmentResultJson>path\to\file.json</AssessmentResultJson>
  <FeatureDiscoveryReportJson>path\to\featurediscoveryreport.json</FeatureDiscoveryReportJson>
  <OverwriteResult>true</OverwriteResult> <!-- or false -->
</TargetReadinessConfiguration>

기능 검색 보고서를 가져올 때 구성 파일 콘텐츠:

<TargetReadinessConfiguration xmlns="http://microsoft.com/schemas/SqlServer/Advisor/TargetReadinessConfiguration">
  <AssessmentName>name</AssessmentName>
  <ImportFeatureDiscoveryReportJson>path\to\featurediscoveryfile.json</ImportFeatureDiscoveryReportJson>
  <AssessmentResultJson>path\to\resultfile.json</AssessmentResultJson>
  <OverwriteResult>true</OverwriteResult><!-- or false -->
</TargetReadinessConfiguration>

Azure 퍼블릭 클라우드에서 Azure Migrate 평가 및 Azure Migrate에 업로드(기본값)

DmaCmd.exe
/Action="Assess" 
/AssessmentSourcePlatform=SqlOnPrem 
/AssessmentTargetPlatform=ManagedSqlServer
/AssessmentEvaluateCompatibilityIssues 
/AssessmentEvaluateFeatureParity 
/AssessmentOverwriteResult 
/AssessmentName="assess-myDatabase"
/AssessmentDatabases="Server=myServer;Initial Catalog=myDatabase;Integrated Security=true" 
/AssessmentResultDma="C:\assessments\results\assess-1.dma"
/SubscriptionId="Subscription Id" 
/AzureMigrateProjectName="Azure Migrate project ame" 
/ResourceGroupName="Resource Group name" 
/AzureAuthenticationInteractiveAuthentication
/AzureAuthenticationTenantId="Azure Tenant Id"
/EnableAssessmentUploadToAzureMigrate

Azure 퍼블릭 클라우드에서 Azure Migrate에 DMA 평가 파일 일괄 업로드(기본값)

DmaCmd.exe 
/Action="AzureMigrateUpload" 
/AssessmentResultInputFolder="C:\assessments\results" 
/SubscriptionId="Subscription Id" 
/AzureMigrateProjectName="Azure Migrate project name" 
/ResourceGroupName="Resource Group name" 
/AzureAuthenticationInteractiveAuthentication
/AzureAuthenticationTenantId="Azure Tenant Id"
/EnableAssessmentUploadToAzureMigrate

CLI를 사용하는 Azure SQL Database/Azure SQL Managed Instance/SQL Server on Azure VM SKU 권장 사항

버전 5.4 이상에서는 Data Migration Assistant를 설치할 때 %ProgramFiles%\Microsoft Data Migration Assistant\SQLAssessmentConsole에 SqlAssessment.exe도 설치합니다. SqlAssessment.exe를 사용하여 오랜 기간 동안 SQL 인스턴스에 대한 성능 데이터를 수집하고 결과를 JSON 또는 CSV 파일로 출력합니다.

이 명령은 Azure SQL Database 단일 데이터베이스, Azure SQL Managed Instance, SQL Server on Azure VM 배포 옵션 모두에 대한 권장 사항을 지원합니다.

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlManagedInstance
인수 설명 필수(Y/N)
PerfDataCollection 성능 데이터 수집을 시작합니다. Y
GetSkuRecommendation 수집된 성능 데이터의 집계 및 분석을 수행하고 SKU 권장 사항을 결정합니다. Y
GetMetadata 서버 인스턴스, 데이터베이스, 데이터베이스 파일, 사용자 정의 개체 등의 개수와 속성을 포함하여 대상 SQL 인스턴스의 메타데이터 수집을 수행합니다. 전체 보고서를 MetadataReport.json으로 내보냅니다. Y
--outputFolder 성능 데이터, 보고서, 로그를 쓸/읽을 폴더입니다. N
(기본값: 현재 디렉터리)
--sqlConnectionStrings 대상 SQL 인스턴스에 대한 따옴표로 묶인 정식 연결 문자열입니다. Y
--overwrite 기존 평가 또는 SKU 권장 사항 보고서를 덮어쓸지 여부입니다. N
(기본값: true)
--perfQueryIntervalInSec 성능 데이터를 쿼리할 간격(초)입니다. N
(PerfDataCollection 작업에만 해당합니다. 기본값: 30)
--staticQueryIntervalInSec 정적 구성 데이터를 쿼리하고 유지할 간격(초)입니다. N
(PerfDataCollection 작업에만 해당합니다. 기본값: 30)
--numberOfIterations 파일에 유지하기 전에 수행할 성능 데이터 수집의 반복 횟수입니다. N
(PerfDataCollection 작업에만 해당합니다. 기본값: 20)
--perfQueryIntervalInSec 성능 데이터를 쿼리한 간격(초)입니다. N
(GetSkuRecommendation 작업에만 해당합니다. 이 값은 성능 데이터 수집 중에 원래 사용된 값과 일치해야 합니다. 기본값: 30)
--targetPlatform SKU 권장 사항에 대한 대상 플랫폼: AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachine 또는 Any 중 하나입니다. N
(GetSkuRecommendation 작업에만 해당합니다. 기본값: Any)
--targetSqlInstance SKU 권장 사항이 대상으로 지정할 SQL 인스턴스의 이름입니다. N
(GetSkuRecommendation 작업에만 해당합니다.)
--targetPercentile 성능 데이터를 집계하는 동안 사용할 데이터 포인트의 백분위수입니다. N
(GetSkuRecommendation 작업에만 해당합니다.) 기준(비 탄력적) 전략에만 사용됩니다. 기본값: 95)
--scalingFactor SKU 권장 사항 중에 사용되는 스케일링 인수(쾌적 인자)입니다. N
(GetSkuRecommendation 작업에만 해당합니다. 기본값: 100)
--startTime 집계 중에 고려해야 할 성능 데이터 포인트의 UTC 시작 시간입니다("YYYY-MM-DD HH:MM" 형식). N
(GetSkuRecommendation 작업에만 해당합니다.) 기준(비탄력적) 전략에만 사용됩니다.
--endTime 집계 중에 고려해야 할 성능 데이터 포인트의 UTC 종료 시간입니다("YYYY-MM-DD HH:MM" 형식). N
(GetSkuRecommendation 작업에만 해당합니다.) 기준(비탄력적) 전략에만 사용됩니다.
--elasticStrategy 통계 리소스 사용 프로파일링을 기반으로 SKU 권장 사항에 탄력적 전략을 사용할지 여부입니다. 탄력적 전략은 현재 Azure SQL Database 및 SQL Managed Instance에 사용할 수 있으며, 아직 SQL Server on Azure VM에 사용할 수 없습니다. N
(GetSkuRecommendation 작업에만 해당합니다. 기본값: false)
--databaseAllowList SKU 권장 사항에 포함할 공백으로 구분된 데이터베이스 이름 목록입니다. N
(GetSkuRecommendation 작업에만 해당합니다. 기본값: null)
--databaseDenyList SKU 권장 사항에서 제외할 공백으로 구분된 데이터베이스 이름 목록입니다. 다음 중 하나만 설정하거나 둘 다 설정하지 않습니다. databaseAllowList, databaseDenyList N
(GetSkuRecommendation 작업에만 해당합니다. 기본값: null)
--displayResult SKU 권장 사항 결과를 콘솔에 출력할지 여부입니다. 다음 중 하나만 설정하거나 둘 다 설정하지 않습니다. databaseAllowList, databaseDenyList N
(GetSkuRecommendation 작업에만 해당합니다. 기본값: true)

CLI를 사용하는 SKU 평가의 예

SqlAssessment.exe

SqlAssessment.exe --help

온-프레미스 SQL Server 인스턴스에 대한 데이터 수집 프로세스 시작

.\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

Azure SQL Database/Azure SQL Managed Instance/SQL Server on Azure VM SKU 권장 사항

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

데이터 포인트 및 사용자 지정 스케일링 인수에 대한 특정 집계 백분율을 사용하는 Azure SQL Managed Instance SKU 권장 사항

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlManagedInstance
--targetPercentile 90
--scalingFactor 80

사용자 지정 집계 타임라인을 사용하는 SQL Server on Azure VM SKU 권장 사항

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlVirtualMachine
--startTime "2021-06-05 00:00"
--endTime "2021-06-07 00:00"

참고 항목