コマンド ラインから 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 評価プロジェクトの名前
/AssessmentDatabases 接続文字列のスペース区切りの一覧。 データベース名 (初期カタログ) では、大文字と小文字が区別されます。 Y
/AssessmentSourcePlatform 評価のソース プラットフォーム:
評価でサポートされている値: SqlOnPrem、RdsSqlServer (既定値)
ターゲット対応性評価でサポートされている値: SqlOnPrem、RdsSqlServer (既定値)、Cassandra (プレビュー)
N
/AssessmentTargetPlatform 評価のターゲット プラットフォーム:
評価でサポートされている値: AzureSqlDatabase、ManagedSqlServer、SqlServer2012、SqlServer2014、SqlServer2016、SqlServerLinux2017、SqlServerWindows2017 (既定値)
ターゲット対応性評価でサポートされている値: ManagedSqlServer (既定値)、CosmosDB (プレビュー)
N
/AssessmentEvaluateFeatureParity 機能パリティ ルールを実行します。 ソース プラットフォームが RdsSqlServer の場合、ターゲット プラットフォーム AzureSqlDatabase では機能パリティ評価はサポートされません
(AssessmentEvaluateCompatibilityIssues または AssessmentEvaluateFeatureParity のいずれかが必要です)。
/AssessmentEvaluateCompatibilityIssues 互換性ルールを実行します Y
(AssessmentEvaluateCompatibilityIssues または AssessmentEvaluateFeatureParity のいずれかが必要です)。
/AssessmentOverwriteResult 結果ファイルを上書きします N
/AssessmentResultJson JSON 結果ファイルへの完全なパス Y
(AssessmentResultJson または AssessmentResultCsv のいずれかが必要です)
/AssessmentResultCsv CSV 結果ファイルへの完全なパス Y
(AssessmentResultJson または AssessmentResultCsv のいずれかが必要です)
/AssessmentResultDma dma 結果ファイルへの完全なパス N
/Action SkuRecommendation を使用して SKU 推奨を取得します。
AssessmentTargetReadiness を使用してターゲット対応性評価を実行します。
Azure Migrate に一括アップロードするには、AzureMigrateUpload を使用して AzzessmentResultInputFolder 内のすべての DMA 評価ファイルをアップロードします。Action 型の使用方法 /Action= AzureMigrateUpload
N
/SourceConnections 接続文字列のスペース区切りの一覧。 データベース名 (初期カタログ) は省略可能です。 データベース名が指定されていない場合は、ソース上のすべてのデータベースが評価されます。
(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.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 へのアップロード (既定)

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 / Azure VM 上の SQL Server の 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、Azure VM 上の SQL Server の両方のデプロイ オプションに関する推奨事項がサポートされます。

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlManagedInstance
引数 説明 必須 (Y/N)
PerfDataCollection パフォーマンス データの収集を開始します。
GetSkuRecommendation 収集されたパフォーマンス データの集計と分析を実行し、SKU 推奨を決定します。
GetMetadata サーバー インスタンス、データベースとデータベース ファイル、ユーザー定義オブジェクトなどの数とプロパティを含む、ターゲット SQL インスタンスのメタデータ収集を実行します。完全なレポートが MetadataReport.json にエクスポートされます。 Y
--outputFolder パフォーマンス データ、レポート、ログの書き込み先/読み取り元のフォルダー。 N
(既定値: 現在のディレクトリ)
--sqlConnectionStrings ターゲット SQL インスタンスの引用符で囲まれた正式な接続文字列。
--overwrite 既存の評価または SKU 推奨レポートを上書きするかどうか。 N
(既定値: true)
--perfQueryIntervalInSec パフォーマンス データのクエリを実行する間隔 (秒単位)。 N
(PerfDataCollection アクションに固有。既定値 30)
--staticQueryIntervalInSec 静的構成データのクエリを実行して保持する間隔 (秒単位)。 N
(PerfDataCollection アクションに固有。既定値 30)
--numberOfIterations ファイルに保持する前に実行するパフォーマンス データ収集の反復回数。 N
(PerfDataCollection アクションに固有。既定値 20)
--perfQueryIntervalInSec パフォーマンス データのクエリが実行された間隔 (秒単位)。 N
(GetSkuRecommendation アクションに固有。これは、パフォーマンス データの収集中に最初に使用された値と一致する必要があります。既定値: 30)
--targetPlatform SKU 推奨のターゲット プラットフォーム: AzureSqlDatabaseAzureSqlManagedInstanceAzureSqlVirtualMachine、または 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 で使用できます。Azure VM ターゲットの SQL Server ではまだ使用できません。 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 / Azure VM 上の SQL Server の 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

カスタム集計タイムラインを使用する Azure VM 上の SQL Server の SKU 推奨

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

こちらもご覧ください