명령줄에서 Data Migration Assistant 실행
Important
DMA(Data Migration Assistant)는 더 이상 사용되지
버전 2.1 이상 버전에서는 Data Migration Assistant를 설치할 때 dmacmd.exe
에 %ProgramFiles%\Microsoft Data Migration Assistant
도 설치됩니다.
DMACMD를 사용하여 무인 모드에서 데이터베이스를 평가하고 결과를 JSON 또는 CSV 파일에 출력합니다. 이 방법은 여러 데이터베이스 또는 대규모 데이터베이스를 평가할 때 특히 유용합니다.
DMACMD는 평가 실행만 지원합니다. 현재 마이그레이션은 지원되지 않습니다.
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 을 사용하여 AssessmentResultInputFolder 에 있는 모든 DMA 평가 파일을 Azure Migrate에 일괄 업로드합니다.
Action 유형 사용/Action=AzureMigrateUpload |
N |
/SourceConnections |
공백으로 구분된 연결 문자열 목록입니다. 데이터베이스 이름(초기 카탈로그)은 선택 사항입니다. 데이터베이스 이름이 제공되지 않으면 원본의 모든 데이터베이스가 평가됩니다. | Y ( Action 가 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 ( Action 가 AzureMigrateUpload 인 경우 필수입니다) |
CLI를 사용하는 평가의 예
DMACMD
dmacmd.exe /?
또는
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
과 /AssessmentTargetPlatform
는 선택 사항입니다.)
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를 설치할 때 SqlAssessment.exe
에 %ProgramFiles%\Microsoft Data Migration Assistant\SQLAssessmentConsole
도 설치합니다. 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"