從命令列執行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 建議。
使用 AssessmentTargetReadiness 來執行目標整備評估。
使用 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 訂用帳戶識別碼。 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資料庫的單一資料庫評量、將結果儲存至 .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資料庫的單一資料庫評量、將結果儲存至 .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="https://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

批次將 DMA 評量檔案上傳至 Azure Public Cloud 中的 Azure Migrate (預設)

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 VM SKU 建議上Azure SQL資料庫/Azure SQL 受控執行個體/SQL Server

使用 5.4 版和更新版本時,當您安裝 Data Migration Assistant 時,也會在 %ProgramFiles%\Microsoft Data Migration Assistant\SQLAssessmentConsole 中安裝SqlAssessment.exe。 使用SqlAssessment.exe收集 SQL 實例的效能資料一段時間,並將結果輸出至 JSON 或 CSV 檔案。

這些命令支援 Azure VM 部署選項上Azure SQL資料庫單一資料庫、Azure SQL 受控執行個體和SQL Server的建議。

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlManagedInstance
引數 描述 必要 (Y/N)
PerfDataCollection 開始收集效能資料。 Y
GetSkuRecommendation 執行所收集效能資料的匯總和分析,並決定 SKU 建議。 Y
GetMetadata 執行目標 SQL 實例的元資料集合 () ,包括伺服器實例的數目和屬性、資料庫和資料庫檔案、使用者定義物件等。完整報表會匯出至 MetadataReport.json Y
--outputFolder 將寫入/讀取效能資料、報告和記錄的資料夾。 N
(預設值:目前目錄)
--sqlConnectionStrings 目標 SQL 實例的引號括住型式連接字串 (s) (s) 。 Y
--overwrite 是否要覆寫任何現有的評量或 SKU 建議報告。 N
(預設值: true)
--perfQueryIntervalInSec 查詢效能資料的間隔,以秒為單位。 N
(特定動作。 PerfDataCollection 預設 30)
--staticQueryIntervalInSec 查詢和保存靜態組態資料的間隔,以秒為單位。 N
(特定動作。 PerfDataCollection 預設 30)
--numberOfIterations 在保存至檔案之前,要執行的效能資料收集反復專案數目。 N
(特定動作。 PerfDataCollection 預設 20)
--perfQueryIntervalInSec 查詢效能資料的間隔,以秒為單位。 N
(特定動作 GetSkuRecommendation 。這必須符合原本在效能資料收集期間使用的值。預設值: 30)
--targetPlatform SKU 建議的目標平臺: AzureSqlDatabaseAzureSqlManagedInstanceAzureSqlVirtualMachineAny 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資料庫和SQL 受管理執行個體,尚不適用於 Azure VM 目標上的SQL Server。 N
(特定動作。 GetSkuRecommendation 預設值: false)
--databaseAllowList 要納入 SKU 建議之資料庫名稱的空間分隔清單 N
(特定動作。 GetSkuRecommendation 預設值: null)
--databaseDenyList 要針對 SKU 建議排除之資料庫名稱的空間分隔清單。 只設定下列其中一項或兩者: databaseAllowListdatabaseDenyList N
(特定動作。 GetSkuRecommendation 預設值: null)
--displayResult 是否要將 SKU 建議結果列印到主控台。 只設定下列其中一項或兩者: databaseAllowListdatabaseDenyList 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 VM SKU 建議上的Azure SQL資料庫/Azure SQL 受控執行個體/SQL Server

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

Azure SQL 受控執行個體 SKU 建議,其中包含資料點和自訂縮放比例的特定匯總百分比

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

使用自訂匯總時程表SQL Server Azure VM SKU 建議

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

另請參閱