Exécuter l’Assistant Migration de données à partir de la ligne de commande

Avec les versions 2.1 et ultérieures, lorsque vous installez l’Assistant Migration de données, il installe également dmacmd.exe dans %ProgramFiles%\Microsoft Data Migration Assistant\. Utilisez dmacmd.exe pour évaluer vos bases de données en mode sans assistance et générer le résultat dans un fichier JSON ou CSV. Cette méthode est particulièrement utile lors de l’évaluation de plusieurs bases de données ou bases de données volumineuses.

Notes

Dmacmd.exe prend uniquement en charge l’exécution d’évaluations. Les migrations ne sont pas prises en charge pour le moment.

Évaluations à l’aide de l’interface de ligne de commande (CLI)

DmaCmd.exe /AssessmentName="string"
/AssessmentDatabases="connectionString1" \["connectionString2"\]
\[/AssessmentSourcePlatform="SourcePlatform"]
\[/AssessmentTargetPlatform="TargetPlatform"\]
/AssessmentEvaluateFeatureParity|/AssessmentEvaluateCompatibilityIssues
\[/AssessmentOverwriteResult\]
/AssessmentResultJson="file"|/AssessmentResultCsv="file"
Argument Description Obligatoire (O/N)
/help or /? Comment utiliser le texte d’aide de dmacmd.exe N
/AssessmentName Nom du projet d’évaluation Y
/AssessmentDatabases Liste délimitée par des espaces de chaînes de connexion. Le nom de la base de données (catalogue initial) respecte la casse. Y
/AssessmentSourcePlatform Plateforme source pour l’évaluation :
Valeurs prises en charge pour l’évaluation : SqlOnPrem, RdsSqlServer (par défaut)
Valeurs prises en charge pour l’évaluation de la préparation cible : SqlOnPrem, RdsSqlServer (par défaut), Cassandra (préversion)
N
/AssessmentTargetPlatform Plateforme cible pour l’évaluation :
Valeurs prises en charge pour l’évaluation : AzureSqlDatabase, ManagedSqlServer, SqlServer2012, SqlServer2014, SqlServer2016, SqlServerLinux2017 et SqlServerWindows2017 (par défaut)
Valeurs prises en charge pour l’évaluation de la préparation cible : ManagedSqlServer (valeur par défaut), CosmosDB (préversion)
N
/AssessmentEvaluateFeatureParity Exécutez des règles de parité des fonctionnalités. Si la plateforme source est RdsSqlServer, l’évaluation de la parité des fonctionnalités n’est pas prise en charge pour la plateforme cible AzureSqlDatabase Y
(AssessmentEvaluateCompatibilityIssues ou AssessmentEvaluateFeatureParity est requis.)
/AssessmentEvaluateCompatibilityIssues Exécuter des règles de compatibilité Y
(AssessmentEvaluateCompatibilityIssues ou AssessmentEvaluateFeatureParity est requis.)
/AssessmentOverwriteResult Remplacer le fichier de résultats N
/AssessmentResultJson Chemin d’accès complet au fichier de résultats JSON Y
(AssessmentResultJson ou AssessmentResultCsv est requis)
/AssessmentResultCsv Chemin d’accès complet au fichier de résultats CSV Y
(AssessmentResultJson ou AssessmentResultCsv est requis)
/AssessmentResultDma Chemin d’accès complet au fichier de résultats dma N
/Action Utilisez SkuRecommendation pour obtenir des recommandations de référence SKU.
Utilisez AssessTargetReadiness pour effectuer l’évaluation de la préparation cible.
Utilisez AzureMigrateUpload pour charger tous les fichiers d’évaluation DMA dans AzzessmentResultInputFolder pour charger en bloc vers l’utilisation du type Azure Migrate.Action /Action= AzureMigrateUpload
N
/SourceConnections Liste délimitée par des espaces de chaînes de connexion. Le nom de la base de données (catalogue initial) est facultatif. Si aucun nom de base de données n’est fourni, toutes les bases de données de la source sont évaluées. Y
(Obligatoire si l’action est « AssessTargetReadiness »)
/TargetReadinessConfiguration Chemin d’accès complet au fichier XML décrivant les valeurs du nom, des connexions sources et du fichier de résultats. Y
(TargetReadinessConfiguration ou SourceConnections est requis)
/FeatureDiscoveryReportJson Chemin d’accès au rapport JSON de découverte de fonctionnalités. Si ce fichier est généré, il peut être utilisé pour réexécuter l’évaluation de la préparation cible sans se connecter à la source. N
/ImportFeatureDiscoveryReportJson Chemin d’accès au rapport JSON de découverte de fonctionnalités créé précédemment. Au lieu des connexions sources, ce fichier sera utilisé. N
/EnableAssessmentUploadToAzureMigrate Active le chargement et la publication des résultats de l’évaluation dans Azure Migrate N
/AzureCloudEnvironment Sélectionner l’environnement cloud Azure auquel se connecter est le cloud public Azure par défaut. Valeurs prises en charge : Azure (par défaut), AzureChina, AzureGermany, AzureUSGovernment. N
/SubscriptionId ID d’abonnement Azure. Y
(Obligatoire si l’argument EnableAssessmentUploadToAzureMigrate est spécifié)
/AzureMigrateProjectName Nom du projet Azure Migrate dans lequel charger les résultats de l’évaluation. Y
(Obligatoire si l’argument EnableAssessmentUploadToAzureMigrate est spécifié)
/ResourceGroupName Nom du groupe de ressources Azure Migrate. Y
(Obligatoire si l’argument EnableAssessmentUploadToAzureMigrate est spécifié)
/AssessmentResultInputFolder Chemin d’accès du dossier d’entrée contenant les fichiers d’évaluation .DMA à charger dans Azure Migrate. Y
(Obligatoire si l’action est AzureMigrateUpload)

Exemples d’évaluations à l’aide de l’interface CLI

Dmacmd.exe

Dmacmd.exe /? or DmaCmd.exe /help

Évaluation de base de données unique à l’aide de l’Authentification Windows et exécution de règles de compatibilité

DmaCmd.exe /AssessmentName="TestAssessment"
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;Integrated Security=true"
/AssessmentEvaluateCompatibilityIssues /AssessmentOverwriteResult
/AssessmentResultJson="C:\\temp\\Results\\AssessmentReport.json"

Évaluation de base de données unique à l’aide de l’authentification SQL Server et de l’exécution de la parité des fonctionnalités

DmaCmd.exe /AssessmentName="TestAssessment"
/AssessmentDatabases="Server=SQLServerInstanceName;Initial
Catalog=DatabaseName;User Id=myUsername;Password=myPassword;"
/AssessmentEvaluateFeatureParity /AssessmentOverwriteResult
/AssessmentResultCsv="C:\\temp\\Results\\AssessmentReport.csv"

Évaluation de base de données unique pour la plateforme cible SQL Server 2012, enregistrez les résultats dans le fichier .json et .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"

Évaluation de base de données unique pour la plateforme cible Azure SQL Database, enregistrez les résultats dans le fichier .json et .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"

Évaluation de plusieurs bases de données

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"

Évaluation de préparation à la cible à base de données unique à l’aide de l’Authentification Windows

DmaCmd.exe /Action=AssessTargetReadiness 
/AssessmentName="TestAssessment" 
/SourceConnections="Server=SQLServerInstanceName;Initial Catalog=DatabaseName;Integrated Security=true" 
/AssessmentOverwriteResult 
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json"

Évaluation de préparation à la cible à base de données unique à l’aide de l’Authentification 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" 

Évaluation de base de données unique pour la plateforme cible Azure SQL Database, enregistrez les résultats dans le fichier .json et .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"

Évaluation de la préparation à la cible de plusieurs bases de données

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.)

Évaluation de la préparation cible pour toutes les bases de données sur un serveur à l’aide de l’Authentification Windows

DmaCmd.exe /Action=AssessTargetReadiness
/AssessmentName="TestAssessment"
/SourceConnections="Server=SQLServerInstanceName;Integrated Security=true"
/AssessmentOverwriteResult
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json"

Évaluation de la préparation cible en important le rapport de découverte de fonctionnalités créé précédemment

DmaCmd.exe /Action=AssessTargetReadiness
/AssessmentName="TestAssessment"
/ImportFeatureDiscoveryReportJson="c:\temp\feature_report.json" 
/AssessmentOverwriteResult
/AssessmentResultJson="C:\temp\Results\AssessmentReport.json"

Évaluation de la préparation cible en fournissant un fichier de configuration

DmaCmd.exe /Action=AssessTargetReadiness 
/TargetReadinessConfiguration=.\Config.xml

Contenu du fichier de configuration lors de l’utilisation des connexions sources :

<?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>

Contenu du fichier de configuration lors de l’importation du rapport de découverte de fonctionnalités :

<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>

Évaluer et charger vers Azure Migrate dans le cloud public Azure (par défaut)

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

Chargement par lot de fichiers d’évaluation DMA vers Azure Migrate dans le cloud public Azure (par défaut)

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

Azure SQL Database/Azure SQL Managed Instance/SQL Server sur les recommandations de référence SKU de machine virtuelle Azure à l’aide de l’interface CLI

Avec les versions 5.4 et ultérieures, lorsque vous installez l’Assistant Migration de données, il installe également SqlAssessment.exe dans %ProgramFiles%\Microsoft Data Migration Assistant\SQLAssessmentConsole. Utilisez SqlAssessment.exe pour collecter des données de performances pour votre instance SQL sur une période prolongée et générer le résultat dans un fichier JSON ou CSV.

Ces commandes prennent en charge les recommandations pour les options de déploiement Azure SQL Database uniques, Azure SQL Managed Instance et SQL Server sur machines virtuelles Azure.

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlManagedInstance
Argument Description Obligatoire (O/N)
PerfDataCollection Démarre la collecte de données de performances. Y
GetSkuRecommendation Effectue l’agrégation et l’analyse des données de performances collectées et détermine les recommandations de référence SKU. Y
GetMetadata Effectue une collection de métadonnées des instances SQL cibles, y compris le nombre et les propriétés des instances de serveur, des bases de données et des fichiers de base de données, des objets définis par l’utilisateur, etc. Un rapport complet est exporté vers MetadataReport.json. Y
--outputFolder Dossier dans lequel les données, rapports et journaux de performances seront écrits/lus. N
(Par défaut : répertoire actif)
--sqlConnectionStrings Chaîne(s) de connexion formelle(s) entre guillemets pour la ou les instances SQL cibles. Y
--overwrite Indique s’il faut remplacer ou non des rapports de recommandations d’évaluation ou de référence SKU existants. N
(Par défaut : true)
--perfQueryIntervalInSec Intervalle auquel interroger les données de performances, en secondes. N
(Spécifique à l’action PerfDataCollection. Par défaut 30)
--staticQueryIntervalInSec Intervalle auquel interroger et conserver les données de configuration statiques, en secondes. N
(Spécifique à l’action PerfDataCollection. Par défaut 30)
--numberOfIterations Nombre d’itérations de collecte de données de performances à effectuer avant la persistance dans le fichier. N
(Spécifique à l’action PerfDataCollection. Par défaut 20)
--perfQueryIntervalInSec Intervalle auquel les données de performances ont été interrogées, en secondes. N
(Spécifique à l’action GetSkuRecommendation. Cela doit correspondre à la valeur qui a été utilisée à l’origine pendant la collecte de données de performances. Valeur par défaut : 30)
--targetPlatform Plateforme cible pour la recommandation de référence SKU : soit AzureSqlDatabase, AzureSqlManagedInstance,AzureSqlVirtualMachineou Any. N
(Spécifique à l’action GetSkuRecommendation. Par défaut : Any)
--targetSqlInstance Nom de l’instance SQL que la recommandation de référence SKU cible. N
(Spécifique à l’action GetSkuRecommendation)
--targetPercentile Centile des points de données à utiliser lors de l’agrégation des données de performances. N
(Spécifique à l’action GetSkuRecommendation Utilisé uniquement pour la stratégie de base (non élastique). Par défaut : 95)
--scalingFactor Facteur de mise à l’échelle (confort) utilisé lors de la recommandation de référence SKU. N
(Spécifique à l’action GetSkuRecommendation. Par défaut : 100)
--startTime Heure de début UTC des points de données de performances à prendre en compte pendant l’agrégation, au format "YYYY-MM-DD HH:MM". N
(Spécifique à l’action GetSkuRecommendation Utilisé uniquement pour la stratégie de base (non élastique).
--endTime Heure de fin UTC des points de données de performances à prendre en compte pendant l’agrégation, au format "YYYY-MM-DD HH:MM" N
(Spécifique à l’action GetSkuRecommendation Utilisé uniquement pour la stratégie de base (non élastique).
--elasticStrategy Indique s’il faut ou non utiliser la stratégie élastique pour les recommandations de référence SKU en fonction du profilage de l’utilisation des ressources statistiques. La stratégie élastique est actuellement disponible pour les bases de données Azure SQL et SQL Managed Instance, mais pas encore pour la cible SQL Server sur machine virtuelle Azure. N
(Spécifique à l’action GetSkuRecommendation. Par défaut : false)
--databaseAllowList Liste séparée par l’espace des noms des bases de données à inclure pour les recommandations de référence SKU N
(Spécifique à l’action GetSkuRecommendation. Par défaut : null)
--databaseDenyList Liste séparée par l’espace des noms des bases de données à inclure pour les recommandations de référence SKU Définissez l’un des éléments suivants ou non : databaseAllowList, databaseDenyList N
(Spécifique à l’action GetSkuRecommendation. Par défaut : null)
--displayResult Indique si vous souhaitez imprimer ou non les résultats de la recommandation de référence SKU dans la console. Définissez l’un des éléments suivants ou non : databaseAllowList, databaseDenyList N
(Spécifique à l’action GetSkuRecommendation. Par défaut : true)

Exemples d’évaluations SKU à l’aide de l’interface CLI

SqlAssessment.exe

SqlAssessment.exe --help

Démarrer le processus de collecte de données pour les instances de SQL Server locales

.\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 sur les recommandations de référence SKU de machine virtuelle Azure

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

Recommandation de référence SKU Azure SQL Managed Instance avec un pourcentage d’agrégation spécifique pour les points de données et le facteur de mise à l’échelle personnalisé

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

SQL Server sur les recommandations de référence SKU de machine virtuelle Azure avec une chronologie d’agrégation personnalisée

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

Voir aussi