從命令列執行 Data Migration Assistant
重要
Data Migration Assistant (DMA) 已被取代。 如需從 SQL Server 移轉至 Azure SQL 的選項,請參閱 SQL Server 至 Azure SQL 的移轉選項。
使用 2.1 版和更新版本時,當您安裝 Data Migration Assistant 時,也會在 %ProgramFiles%\Microsoft Data Migration Assistant
中安裝 dmacmd.exe
。 以自動模式使用 DMACMD 評估資料庫,並將結果輸出為 JSON 或 CSV 檔案。 這個方法在評估多個資料庫或大型資料庫時特別實用。
DMACMD 僅支援執行評量。 此時不支援移轉。
使用命令列介面 (CLI) 的評量
dmacmd.exe /AssessmentName="string"
/AssessmentDatabases="connectionString1" ["connectionString2"]
[/AssessmentSourcePlatform="SourcePlatform"]
[/AssessmentTargetPlatform="TargetPlatform"]
/AssessmentEvaluateFeatureParity|/AssessmentEvaluateCompatibilityIssues
[/AssessmentOverwriteResult]
/AssessmentResultJson="file"|/AssessmentResultCsv="file"
引數 | 描述 | 必要 (是/否) |
---|---|---|
/help or /? |
如何使用 dmacmd.exe 說明文字 | N |
/AssessmentName |
評量專案的名稱 | Y |
/AssessmentDatabases |
以空格分隔的連接字串清單。 資料庫名稱 (初始目錄) 區分大小寫。 | Y |
/AssessmentSourcePlatform |
評量的來源平台: 評定的支援值: SqlOnPrem 、RdsSqlServer (預設值)目標整備評量的支援值: SqlOnPrem 、RdsSqlServer 、Cassandra (預覽) |
否 |
/AssessmentTargetPlatform |
評量的目標平台: 評定的支援值: AzureSqlDatabase 、ManagedSqlServer 、SqlServer2012 、SqlServer2014 、SqlServer2016 、SqlServerLinux2017 和 SqlServerWindows2017 (預設值)目標整備評量的支援值: ManagedSqlServer (預設)、CosmosDB (預覽) |
否 |
/AssessmentEvaluateFeatureParity |
執行功能同位規則。 如果來源平台是 RdsSqlServer,則目標平台 AzureSqlDatabase 不支援功能同位評估 | Y (需要 AssessmentEvaluateCompatibilityIssues 或 AssessmentEvaluateFeatureParity 。) |
/AssessmentEvaluateCompatibilityIssues |
執行相容性規則 | Y ( AssessmentEvaluateCompatibilityIssues 或 AssessmentEvaluateFeatureParity 為必要專案。) |
/AssessmentOverwriteResult |
覆寫結果檔案 | N |
/AssessmentResultJson |
JSON 結果檔案的完整路徑 | Y ( AssessmentResultJson 或 AssessmentResultCsv 為必要專案) |
/AssessmentResultCsv |
CSV 結果檔案的完整路徑 | Y ( AssessmentResultJson 或 AssessmentResultCsv 為必要專案) |
/AssessmentResultDma |
.dma 結果檔案的完整路徑 |
否 |
/Action |
使用 SkuRecommendation 取得 SKU 建議。使用 AssessTargetReadiness 執行目標整備評量。用來 AzureMigrateUpload 上傳 中的所有 AssessmentResultInputFolder DMA 評量檔案,以大量上傳至 Azure Migrate。 Action 種類使用方式 /Action=AzureMigrateUpload |
否 |
/SourceConnections |
以空格分隔的連接字串清單。 資料庫名稱 (初始目錄) 為選用。 如果未提供任何資料庫名稱,則會評估來源上的所有資料庫。 | Y ( Action 和 AssessTargetReadiness 為必要項) |
/TargetReadinessConfiguration |
XML 檔案的完整路徑,描述名稱、來源連線和結果檔案的值。 | Y ( TargetReadinessConfiguration 或 SourceConnections 為必要專案) |
/FeatureDiscoveryReportJson |
功能探索 JSON 報表的路徑。 如果產生此檔案,則可將其用來再次執行目標整備評量,不需要連線至來源。 | N |
/ImportFeatureDiscoveryReportJson |
稍早建立的功能探索 JSON 報表路徑。 會使用此檔案,而不是來源連線。 | 否 |
/EnableAssessmentUploadToAzureMigrate |
啟用將評量結果上傳和發佈至 Azure Migrate | N |
/AzureCloudEnvironment |
選取要連線的 Azure 雲端環境,預設為 Azure 公用雲端。 支援的值:Azure (預設值)、AzureChina 、AzureGermany 、AzureUSGovernment 。 |
否 |
/SubscriptionId |
Azure 訂用帳戶識別碼。 | 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
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 公用雲端 (預設) 中的 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 SQL Database/Azure SQL 受控執行個體/Azure VM SKU 建議上的 SQL Server
使用 5.4 版和更新版本時,當您安裝 Data Migration Assistant 時,也會在 %ProgramFiles%\Microsoft Data Migration Assistant\SQLAssessmentConsole
中安裝 SqlAssessment.exe
。 使用 SqlAssessment.exe 收集 SQL 執行個體在一段長時間中的效能資料,並將結果輸出成 JSON 或 CSV 檔案。
這些命令同時支援針對 Azure SQL Database 單一資料庫、Azure SQL 受控執行個體以及 Azure VM 部署選項上的 SQL Server 所提出的建議。
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
引數 | 描述 | 必要 (是/否) |
---|---|---|
PerfDataCollection |
開始收集效能資料。 | Y |
GetSkuRecommendation |
執行已收集效能資料的彙總和分析,並判斷 SKU 建議。 | Y |
GetMetadata |
執行目標 SQL 執行個體的中繼資料集合,包括伺服器執行個體的數目和屬性、資料庫和資料庫檔案、使用者定義物件等。完整報表會匯出成 MetadataReport.json 。 |
Y |
--outputFolder |
寫入/讀取效能資料、報表和記錄的資料夾。 | 否 (預設:目前的目錄) |
--sqlConnectionStrings |
目標 SQL 執行個體的形式連接字串 (以引號括住)。 | Y |
--overwrite |
是否要覆寫任何現有評量或 SKU 建議報表。 | 否 (預設值: 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 執行個體名稱。 | 否 ( GetSkuRecommendation 動作特定) |
--targetPercentile |
在彙總效能資料期間要使用的資料點百分位數。 | N ( GetSkuRecommendation 動作特定。 僅用於基準 (非彈性) 策略。 預設:95 ) |
--scalingFactor |
在 SKU 建議期間使用的縮放比例 (緩和) 因素。 | N ( GetSkuRecommendation 動作特定。預設:100 ) |
--startTime |
在彙總期間以 "YYYY-MM-DD HH:MM" 格式考慮的效能資料點 UTC 開始時間。 |
N ( GetSkuRecommendation 動作特定。 僅用於基準 (非彈性) 策略。 |
--endTime |
在彙總期間以 "YYYY-MM-DD HH:MM" 格式考慮的效能資料點 UTC 結束時間 |
N ( GetSkuRecommendation 動作特定。 僅用於基準 (非彈性) 策略。 |
--elasticStrategy |
是否根據統計資源使用方式分析,針對 SKU 建議使用彈性策略。 彈性策略目前適用於 Azure SQL Database 和 SQL 受控執行個體,尚不適用於 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 受控執行個體/Azure VM SKU 建議上的 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
包含自訂彙總時間表之 Azure VM SKU 建議上的 SQL Server
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--startTime "2021-06-05 00:00"
--endTime "2021-06-07 00:00"