다음을 통해 공유


명령줄에서 Data Migration Assistant 실행

Important

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

버전 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, SqlServerLinux2017SqlServerWindows2017 (기본값)
대상 준비 평가에 지원되는 값: 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
(ActionAssessTargetReadiness인 경우 필수입니다)
/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
(ActionAzureMigrateUpload인 경우 필수입니다)

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"